Docker部署Logstash同步Mysql数据到ES

1、准备配置文件文件夹

2、部署logstash & elasticsearch

bash 复制代码
docker pull docker.elastic.co/logstash/logstash:7.15.0
## 替换{你的ES地址}为ES地址
docker run -d --name logstash -p 5044:5044 -p 9600:9600 -v D:\logstash\data\:/usr/share/logstash/data  -v D:\logstash\path\to\mysql-connector-j-8.0.33.jar:/usr/share/logstash/mysql-connector-j-8.0.33.jar -v D:\logstash\config\:/usr/share/logstash/config -v D:\logstash\pipeline\:/usr/share/logstash/pipeline -e "ELASTICSEARCH_HOSTS={你的ES地址}" docker.elastic.co/logstash/logstash:7.15.0
bash 复制代码
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.15.0
## 配置文件如果需要修改,修改完后删除重新启动容器
docker run -d --name elasticsearch -v D:\elasticsearch\config\:/usr/share/elasticsearch/config -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.15.0

页面访问 ip:9200端口,出现下面页面部署成功

3、准备驱动文件

4、编辑配置文件

bash 复制代码
input {
  jdbc {
    jdbc_driver_library => "/usr/share/logstash/mysql-connector-j-8.0.33.jar"
    jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://{你的MYSQL地址}/{你的数据库}"
    jdbc_user => "{数据库账号}"
    jdbc_password => "{数据库密码}"
    statement => "SELECT * FROM user"
    jdbc_paging_enabled => true		 # 开启分页
    jdbc_page_size => 2000			 # 分页每页条数
    schedule => "*/5 * * * * * UTC"  # 每5s执行一次
  }
}
output {
  elasticsearch {
      hosts  => ["{你的ES地址}"]         				# ElasticSearch 的地址和端口
      index  => "user"         							# 指定索引名,如果不存在es会自动创建
      document_id => "%{id}"
      codec  => "json"
  }
}

5、删除容器、重新启动

bash 复制代码
docker rm -f logstash
docker run -d --name logstash -p 5044:5044 -p 9600:9600 -v D:\logstash\data\:/usr/share/logstash/data  -v D:\logstash\path\to\mysql-connector-j-8.0.33.jar:/usr/share/logstash/mysql-connector-j-8.0.33.jar -v D:\logstash\config\:/usr/share/logstash/config -v D:\logstash\pipeline\:/usr/share/logstash/pipeline -e "ELASTICSEARCH_HOSTS={你的ES地址}" docker.elastic.co/logstash/logstash:7.15.0

6、查看日志

bash 复制代码
docker logs -f logstash

成功日志

相关推荐
帝国辉耀15 小时前
docker、docker daemon、k8s、dockershim、containerd之间的关系
docker·容器·kubernetes
明明跟你说过5 小时前
【k8s】资源限制管理:Namespace、Deployment与Pod的实践
运维·docker·云原生·容器·kubernetes·k8s
2301_794333917 小时前
实验室服务器配置|通过Docker实现Linux系统多用户隔离与安全防控
linux·服务器·docker·实验室
JCGKS8 小时前
Docker|“ssh: connect to host xxx.xxx.xxx.xxx port 8000: Connection refused“问题解决
docker·ssh·端口·listen·tcp三次握手
惜.己9 小时前
Docker启动失败 Failed to start Docker Application Container Engine.
spring cloud·docker·eureka
半夏陌离9 小时前
SQL 拓展指南:不同数据库差异对比(MySQL/Oracle/SQL Server 基础区别)
大数据·数据库·sql·mysql·oracle·数据库架构
scugxl9 小时前
centos7 docker离线安装
运维·docker·容器
敬业小码哥10 小时前
记一次:mysql的json及json数组使用组合使用
数据库·mysql·json
练小杰11 小时前
【Mysql-installer-community-8.0.26.0】Mysql 社区版(8.0.26.0) 在Window 系统的默认安装配置
数据库·sql·mysql·adb·配置文件·mysql安装·关系型数据库
计算机小手11 小时前
AI 驱动数据分析:开源 SQLBot 项目探索,基于大模型和 RAG 实现精准问数与图表挖掘
经验分享·docker·开源软件