Filebeat + Elasitcsearch + Kibana日志系统构建

需求

在系统越来越多,每个系统拆分的模块越来越多的时候,日志维护就成了很麻烦的问题,找个问题得到各个系统去追踪。这个时候日志系统就显得尤为重要,快速分析日志,找到系统的问题

分析

通过网上的文章学习,完整的日志系统分为几个部分:

  • 日志收集
  • 日志分析
  • 日志存储
  • 日志展示

通过对比,Filebeat + Elasitcsearch + Kibana 适合目前我的需求

安装

docker地址:

https://www.docker.elastic.co/#

Elasitcsearch:

https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.0.0
docker run --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.0.0

测试elasticsearch

curl 127.0.0.1:9200 

有返回就是正确的

Kibana:

https://www.elastic.co/guide/en/kibana/7.0/docker.html

docker pull docker.elastic.co/kibana/kibana:7.0.0
docker run -d --name kibana -e ELASTICSEARCH_URL=http://192.168.0.170:9200 -p 5601:5601 docker.elastic.co/kibana/kibana:7.0.0

管理地址:http://192.168.0.170:5601

Filebeat:

进入kibana管理端
http://192.168.0.170:5601
1.jpg
2.jpg
3.jpg

到需要上报日志的服务器去按这个步骤运行下
修改filebeat.yml的时候type: log 设置为enable:true, paths 后面一行一个文件就可以,文件可以用通配符*
kibana 需要增加host,elasticsearch 需要修改hosts为你的ip

接下来就见证奇迹的时候
4.jpg

关于检索:

简单检索就是把log里面包含的文字搜一下。
每条log鼠标移动上去时间旁边会显示个图标,点击图标会有详细,点开可以进行筛选,多条件需要加空格 然后选and or之类的
如下图:
5.jpg
6.jpg
7.jpg

熟练的掌握检索,可以高效的查找日志追踪问题。 当然这样对我们生成的日志就有更高的要求,不能像以前那么随意。 比如一次请求多台服务器多个服务提供,需要有统一的logid, 日志类型需要有明确的标识 是debug还是error 还是sql日志等。当然这指的应用日志, 像nginx php mysql等这些日志直接导入就行了

注意事项
安装整套的版本要一直6,7版本不能混用
kibana7已经有汉化,

vim /etc/kibana/kibana.yml
i18n.locale: "zh-CN"

systemctl restart kibana

至此日志收集和分析完成。 后面会深入了解下他的报警,图表统计等功能,总之elastic十分强大,值得拥有

标签: 无

发表评论: