Logstash docker发布
一 下载Logstash
不废话了,我下载的7.17.6
二 新增配置文件
在logstash/pipeline中,添加logstash.conf
input { jdbc { # 连接 jdbc_connection_string => "jdbc:mysql://192.168.1.1:3306/kintech-cloud-bo?characterEncoding=UTF-8&useSSL=false" # 账号 jdbc_user => "root" # 密码 jdbc_password => "xxxx" # docker中的mysql驱动位置 jdbc_driver_library => "/app/mysql.jar" # 驱动 jdbc_driver_class => "com.mysql.cj.jdbc.Driver" # 查询语句,:sql_last_value为固定写法 statement => "SELECT * FROM student where update_time>:sql_last_value" # 同步间隔,每分钟 schedule => "* * * * *" # 启用字段(增量更新) use_column_value => true # 字段类型(update_time)(增量更新) tracking_column_type => "timestamp" # 字段名称(增量更新) tracking_column => "update_time" } } output { elasticsearch { #es 地址,不要用local和127.0.0.1 hosts => "192.168.1.2:9200" #索引名称 index => "bo_sop_content" } }
三 启动docker
将logstash.conf和logstash.yml(这个不用改),以及mysql.jar 添加到数据卷。
docker run -d -v /root/docker/elk/logstash/pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf -v /root/docker/elk/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml -v /root/lib/mysql.jar:/app/mysql.jar --name=logstash logstash:7.17.6
四 设置es分词器
# 设置分词器 PUT 192.168.1.247:9200/default { "settings": { "analysis": { "analyzer": { "my_english_analyzer": { "type": "ik_smart", "max_token_length": 5, "stopwords": "_english_" } } } } }
五 kibana查询
GET /bo_sop_content/_search { "query": { "multi_match": { "query": "归档,hello,sop content", "fields": [ "sop_title", "sop_content" ] } } }
两条符合查询