Docker 搭建并启动 Logstash
Docker 启动 logstash做 mysql 和 elasticsearch 的数据同步1. 使用docker拉取logstash镜像,打包容器启动★ logstash在容器中的绝对路径是/usr/share2. 进入容器: docker exec -it logstash /bin/bash进入logstash文件夹 (此时目录在 usr/share 目录下)进入confi...
·
做 mysql 和 elasticsearch 的数据同步
- 使用docker拉取logstash镜像,打包容器启动
- 进入容器: docker exec -it logstash /bin/bash(logstash在容器中的绝对路径是/usr/share)
- 修改配置文件
- 安装同步插件
- 下载MySQL驱动包
- 修改通道配置
- 启动
进入logstash文件夹 (此时目录在 usr/share 目录下)
进入config文件夹
编辑logstash.yml文件,设置ES配置(连接地址等)
要使用logstash,需要下载插件,例如我想要mysql与ES数据做同步,我就必须下载这两个插件:
● mysql input plugin
● elasticsearch output plugin
把这两个插件安装成功之后,Logstash的插件都装在这个目录里
usr/share/logstash/vendor/bundle/jruby/2.5.0/gems
4. 进入logstash文件夹中的pipeline文件夹
mysql的驱动包也放在了这个目录下。
(因为懒得下载wget,所以我没有通过wget去下载驱动包,是通过宿主机copy到容器中的)
之后进入vi编辑logstash.conf文件
设置input和output参数
input {
jdbc {
jdbc_driver_library => "../pipeline/mysql-connector-java-5.1.46.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://localhost:3306/datebasename"
jdbc_user => "root"
jdbc_password => "123456"
schedule => "* * * * *"
statement => "SELECT * FROM table_name"
use_column_value => true
tracking_column_type => "timestamp"
tracking_column => update_time
last_run_metadata_path => "syncpoint_c_order"
}
}
filter {
json {
source => "message"
remove_field => ["message"]
}
}
output {
elasticsearch {
hosts => ["192.168.0.1"]
user => ""
password => ""
index => "index_name"
document_id => "%{数据库主键}"
}
stdout {
codec => json_lines
}
}
5.启动logstash
进入logstash容器中:docker exec -it logstash /bash/bin
配置好conf之后:进入bin目录 ./logstash -f pipeline/logstash.conf 启动
启动报错,无法启动logstash
原因是logstash存在缓存区,进入data目录中,通过 ls -alh 查找隐藏文件.lock,rm .lock删除此文件。
重新启动,打印了很多日志:
好好读一读日志之后发现,除了提醒我6.x之后type被废除之外,还有一个最关键的是配置源无法找到。也就是我的logstash.conf未找到。原来是因为我进入了bin目录下启动logstash,不通过…/的方式返回上一级目录就无法找到conf文件。
./logstash -f …/pipeline/logstash.conf 继续启动一次
还是有问题,这次又是因为mysql的驱动包没有找到,那一定是mysql的驱动包路径又写错了。那么在conf中找到驱动包配置的路径,配置好了正确的路径之后再启动。
因为配置的是以分钟进行同步,所以他每分钟会执行一遍配置的sql语句
### 后台启动logstash
nohup ./logstash -f ../pipeline/logstash.conf >/dev/null 2>&1 &
更多推荐
已为社区贡献2条内容
所有评论(0)