1. 啟動elk容器
docker run -p 5601:5601 -p 9200:9200 -p 9300:9300 -p 5044:5044 -p 4569:4569 -e ES_MIN_MEM=128m -e ES_MAX_MEM=2048m -it -d --name elk sebp/elk
2. 打開容器bash:docker exec -it elk bash
3. vim /etc/init.d/logstash
將
LS_USER=logstash
LS_GROUP=logstash
改為
LS_USER=root
LS_GROUP=root
4. 配置logstash:
vim?/etc/logstash/conf.d/logstash.conf
input {
kafka {
? ? bootstrap_servers => ["192.168.1.123:9092"]
? ? group_id => "test-consumer-group"
? ? auto_offset_reset => "latest"
? ? consumer_threads => 5
? ? decorate_events => true
? ? topics => ["kafka"]? //可修改,但必須和Appender定義的topic一致
? ? type => "bhy"? //不修改
}
}
output {
? elasticsearch {
? hosts => ["192.168.1.123"]
? index => "kafka-%{+YYYY-MM-dd}"
? }
}
5.想驗證elk的logstash能否采集日志到es和kibana:
docker exec -it elk bash
開啟容器一個進程后:
/opt/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["localhost"] } }'
接下來就可以輸入任意你想輸入的東西。打開192.168.1.123:9200/_search?pretty,會看到你輸入的內容。(192.168.1.123是宿主機ip)
6. logstash 相關命令:
/etc/init.d/logstash start啟動
/etc/init.d/logstash stop
/etc/init.d/logstash status
/etc/init.d/logstash restart
需要保證logstash? 處于running狀態。