ELFK日志结构
日志结构
一, 工具介绍
1.Filebeat
:filebat是一个用于转发和集中日志数据的轻量级shipper。作为代理安装在服务器上,filebeat监视指定的日志文件或位置,收集日志事件,并将它们转发给ElasticSearch或logstash进行索引。
2.Logstash
:Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到存储库。
3.ElasticSearch
:Elasticsearch 是基于 JSON 的分布式搜索和分析引擎,专为实现水平扩展、高可靠性和管理便捷性而设计。
4.Kibana
:Kibana 能够以图表的形式呈现数据,并且具有可扩展的用户界面,供全方位配置和管理 Elastic Stack。
5.kafka
: 是一个分布式消息队列。
二, 已安装服务地址
kibana
http://118.31.173.26:5601/
ElasticSearch
: http://118.31.173.26:9200/
三, 参考结构
1. logback 直接输出到 logstash
结构: Service -> Logstash -> Elasticsearch
说明: logback.xml 配置 logstash 远程地址 ,由服务发送至 logstash
优点: 使用简单.
缺点: logstash相对filebeat需要很多内存, 远程发送失败,则需系统日志文件手动补充.
2. filebeat 直接输出 ES
结构: logfile -> filebeat -> Elasticsearch
说明: logback.xml 配置 输出到指定目录的日志文件中, filebeat 扫描该文件
优点: 可扩展,可解耦.
缺点: filebeat 不具备日志解析功能, 需要走 ES 管道(pipeline)定义解析规则,
相应服务下 都得安装一个filebeat
3. filebeat > logstash > ES
结构: logfile -> filebeat -> logstash -> Elasticsearch
说明: logback.xml 配置 输出到指定目录的日志文件中, filebeat 扫描该文件
优点: logstash备日志解析功能,可扩展,可解耦.
缺点: logstash相对filebeat需要很多内存
4. filebeat > logstash > MQ > ES
结构: logfile -> filebeat -> logstash -> MQ -> Elasticsearch
说明: logback.xml 配置 输出到指定目录的日志文件中, filebeat 扫描该文件,
MQ 消息队列 可采用 kafka/RabbitMq/... 等消息队列
优点: logstash备日志解析功能,可扩展,可解耦. 可支持大体量服务
缺点: 体量较大,可做集群, 根据项目结构选择
其他相关资料
Bbos-ES:
https://ci.bbossgroups.com/
https://github.com/bbossgroups/bboss-elasticsearch
ES-pipeline
https://www.jianshu.com/p/770e790c9e96
Grok常用表达式
https://www.lz80.com/4784.html