基于 ELK6.6 + Filebeat 的 Spring Cloud 日志收集
*重要:请始终保证 ELK 各组件及 Filebeat 版本一致,以避免意想不到的麻烦。*
ELK
官网:[https://www.elastic.co/](https://www.elastic.co/cn/).
ELK 即 Elasticsearch、Logstash、Kibana,其中:
- Elasticsearch:一个基于Lucene的搜索服务器,无人不知,不多介绍
- Logstash:Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的 “存储库” 中。
- Kibana:Kibana是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。
安装
ELK 各组件官网均有详细的安装文档,对于小规模的场景,推荐使用 docker 打包安装,方便快捷易维护。
docker 如何使用请自行解决,下面给一个 docker 运行 elk 的示例代码:
docker run -dti \
-p 5601:5601 \
-p 9200:9200 \
-p 9300:9300 \
-p 5044:5044 \
-e TZ="Asia/Shanghai" \
--name elk660 sebp/elk:660
配置
Elasticsearch 和 Kibana 采用默认配置即可,Logstash 需要简单的配置以适应 Spring Cloud 下的日志。
配置文件目录为:/etc/logstash/conf.d/,不同环境下可能有差异。
日志是通过 Filebeat 搬运的,首先需要配置日志的输入。
vi /etc/logstash/conf.d/02-beats-input.conf
编辑文件保证内容类似:
input {
beats {
port => 5044
codec => "json"
}
}
* 1、input 表示日志输入
* 2、beats 即用于接收 filebeat 日志的插件
* 3、codec 为指定输入的日志格式,此处为 json
配置好输入后,在配置日志的输出(到Elasticsearch):
vi /etc/logstash/conf.d/30-output.conf
编辑文件保证内容类似:
output