docker下安装配置ELK + kafka
6.24版本
本文档增加kafka的使用
安装elasticsearch
docker run \ -d \ --name elasticsearch \ -p 9200:9200 \ -p 9300:9300 \ -e "discovery.type=single-node" \ docker.elastic.co/elasticsearch/elasticsearch:6.2.4
安装kibana
docker run \ -d \ -u 0 \ --name kibana \ -p 5601:5601 \ docker.elastic.co/kibana/kibana:6.2.4
进入到容器内部:docker exec -it kibana /bin/bash
找到kibana的配置文件:/usr/share/kibana/config/ kibana.yml
修改配置文件,因为要绕过x-pack的安全检查
// 注意修改成宿主机IP,同时配置防火墙 elasticsearch.url: http://localhost:9200 xpack.monitoring.ui.container.elasticsearch.enabled: false
重启容器:docker restart kibana
安装kafka
参考zipkin安装手册
安装logstash
docker run \ -d \ -u 0 \ --name logstash \ -p 5044:5044\ docker.elastic.co/logstash/logstash:6.2.4
进入容器:docker exec -it logstash /bin/bash
找到文件:/usr/share/logstash/pipeline
修改配置文件logstash.conf
input { beats { port => 5044 } kafka { topics => ["logstash"] bootstrap_servers => "10.86.33.67:9092" codec => "json" } } output { elasticsearch { hosts => ["10.86.33.67:9200"] action => "index" index => "logstash-%{+YYYY-MM-dd}" } stdout { codec => rubydebug } }
重启容器:docker restart logstash
SpringBoot配置Logstash
logback.xml
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <destination>localhost:5044</destination> <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"> <customFields>{"appname":"eureka-server"}</customFields> </encoder> </appender> <root level="INFO"> <appender-ref ref="LOGSTASH"/> </root>
pom.xml
<dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>4.9</version> </dependency>
在Kibana创建索引
安装kafka

浙公网安备 33010602011771号