概述
日志系统中的收集、查询、显示,分别对应于Logstash、Elasticsearch、Kibana。
- Logstash:是一个应用程序日志、事件的传输、处理、管理和搜索的平台
- Elasticsearch:是基于 lucene 的开源搜索引擎
- Kibana:是一个功能强大的 elasticsearch 数据显示客户端
SpingMVC 中的日志收集流程是:
SpringMVC 输出日志 -> Logstash 收集 -> Elasticsearch 持久化 -> Kibana 展示
环境
本文的 ELK 都是安装在虚拟机中,为了解释方便,假设虚拟机 ip 地址为 192.168.1.199,下载好的压缩包全部放在 /opt
中,并使用 root 用户登录虚拟机。
配置 Elasticsearch
进入 /opt
目录:
修改配置文件,修改主机名称为本机 ip 地址 network.host: 192.168.1.199
,这样外部才能通过 ip 地址访问:
Elasticsearch 不能使用 root 用户启动,因此需要添加新的用户:
启动:
访问 http://192.168.1.199:9200/ 验证是否正确启动,如果遇到问题可以参考这篇文章:
配置 Kibana
进入 /opt
目录:
修改配置文件 kibana/config/kibana.yml
,在最后添加:
访问 http://192.168.1.199:8888 验证是否正确启动
配置 Logstash
进入 /opt
目录:
新建配置文件:
添加内容:
表示从 192.168.1.199:8082 收集日志,并发送到 Elasticsearch (192.168.1.199:9200),索引名称为 logstash-test。
启动 Logstash:
启动后,Logstash 会持续监听指定的收集端,我们只需要在程序中把日志发送到 192.168.1.199:8082 即可。
SpringMVC 中配置 logback
添加 maven 依赖:
在 resource 文件夹中添加配置文件 logback.xml:
关键是 stash,只有添加了这个 appender,才能把日志发送给 Logstash。
代码中输出日志
代码中使用 slf4j
获取日志对象,就可以打印日志:
最后
以上就是 SpringMVC 集成 ELK 的全部操作,输出日志后,刷新 Kibana 页面,就会看到日志信息。