ELK 即 Elasticsearch、Logstash、Kibana 组合起来可以搭建线上日志系统,本文主要讲解使用ELK 来收集 SpringBoot2 应用产生的日志。
二 ELK 各组件作用Elasticsearch:用于存储收集到的日志信息;Logstash:用于收集日志,SpringBoot应用整合了Logstash以后会把日志发送给Logstash,Logstash 再把日志转发给 Elasticsearch;Kibana:通过Web端的可视化界面来查看日志。 三 ELK 各组件安装
3.1 Elasticsearch 和 Kibana 安装请见:CentOS 搭建ElasticSearch
3.2 Logstash 安装
(1)下载 Logstash:Download Logstash Free | Get Started Now | Elastic
注意:Logstash 版本建议跟 Elasticsearch 一致。
(2)上传安装包至指定目录、并解压
(3)进入 bin 目录创建 logstash-cloud-project.conf 配置文件,输入如下内容:
input {
tcp {
mode => "server"
host => "0.0.0.0"
port => 4560
codec => json_lines
}
}
output {
elasticsearch {
# es 连接地址
hosts => ["http://172.16.20.101:9200"]
# 索引名称
index => "cloud-project-logstash-%{+YYYY.MM.dd}"
}
}
(4)进去 bin 目录,启动 logstash
./logstash -f logstash-cloud-project.conf四 Spring Boot2 集成 logstash
4.1 pom.xml 添加依赖
net.logstash.logback logstash-logback-encoder5.3
4.2 配置日志文件logback.xml让logback的日志输出到logstash
${app_name} %black %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger) - %cyan(%msg%n) ${log.path}/info.log ${log.path}/info.%d{yyyy-MM-dd}.log 60 ${log.pattern} INFO ACCEPT DENY ${log.path}/error.log ${log.path}/error.%d{yyyy-MM-dd}.log 30 ${log.pattern} ERROR ACCEPT DENY 172.16.20.101:4560
配置要点解析:
一般我们不需要自定义控制台输出,可以采用默认配置,具体配置参考console-appender.xml
应用名称
${app_name}
输出到logstash的appender
172.16.16.9:4560
4.3 启动程序,在 kibana 中查看日志信息



