一 下載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" ] } } }
兩條符合查詢