1.拉取镜像
docker pull sebp/elk
2.运行容器
sudo docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elk sebp/elk
- 5601(Kibana Web界面)。
- 9200(Elasticsearch JSON接口)。
- 5044(Logstash Beats界面)。
-
Elasticsearch的传输接口位于端口9300上。将该
-p 9300:9300
选项与docker
上面的命令一起使用来发布它。该传输接口尤其由Elasticsearch的Java客户端API使用,并在集群中运行Elasticsearch。 -
Logstash的监视API位于端口9600上。将该
-p 9600:9600
选项与docker
上面的命令结合使用来发布它。
3.配置Logstash
docker exec -it elk bin/bash
cd /etc/logstash/conf.d
删除默认安装的conf文件
rm 02-beats-input.conf 10-syslog.conf 11-nginx.conf 30-output.conf
创建自定义的logstash.conf文件
vim logstash.conf
input {
tcp {
port => 5044
codec => "json"
}
}
output {
elasticsearch {
action => "index"
hosts => ["localhost"]
index => "%{[appname]}-%{+YYYY.MM}"
}
}
4.重启容器
docker restart elk
5.spring boot整合
5.1 pom
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>5.2</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.9</version>
</dependency>
5.2 添加logback.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 seconds">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%level] %logger[:%line] - %msg%n</pattern>
</encoder>
</appender>
<contextName>logback</contextName>
<property name="log.pattern"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} -%5p ${PID} --- [%15.15t] %-40.40logger{39} : %m%n"/>
<appender name="LOGSTASH"
class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
<destination>192.168.0.1:5044</destination>
<!-- encoder必须配置,有多种可选 -->
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
<customFields>{"appname":"flight-status"}</customFields>
</encoder>
<connectionStrategy>
<roundRobin>
<connectionTTL>5 minutes</connectionTTL>
</roundRobin>
</connectionStrategy>
</appender>
<!--<logger name="com.jsj.member" additivity="true">-->
<!--<appender-ref ref="LOGSTASH"/>-->
<!--</logger>-->
<root level="info">
<appender-ref ref="LOGSTASH"/>
<appender-ref ref="STDOUT"/>
</root>
</configuration>
5.3 触发日志
5.4 打开Kibana查看日志
创建索引
查看日志