一 什么是ELK
ELK是三个[开源软件]的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件,新增了一个Beats。
Elasticsearch :是分布式搜索引擎,提供搜集、分析、存储数据三大功能
主要特点 实时分析 分布式实时文件存储,并将每一个字段都编入索引 文档导向,所有的对象全部是文档 高可用性,易扩展,支持集群(Cluster)、分片和复制(Shards 和 Replicas)。
Logstash :主要是用来日志的搜集、分析、过滤日志的工具
几乎可以访问任何数据
可以和多种外部应用结合
支持弹性扩展
Kibana :提供友好的Web界面,可以帮助汇总分析和搜索数据
Kibana是一款基于 Apache开源协议,使用 JavaScript语言编写,为 Elasticsearch提供分析和可视化的 Web 平台。它可以在Elasticsearch的索引中查找,交互数据,并生成各种维度的表图.
Beats :是一-个轻量级的日志收集处理工具(Agent)
ELK 协议栈的新成员,一个轻量级开源日志文件数据搜集器。在需要采集日志数据的 server 上安装Filebeat,并指定日志目录或日志文件后,Filebeat就能读取数据,发送到Logstash进行解析,或直接发送到 Elasticsearch进行集中式存储和分析。
二 Beats的六种工具
Packetbeat :网络数据(收集网络流量数据)
Metricbeat :指标( 收集系统、进程和文件系统级别数据)
Filebeat: 日志文件(收集文件数据)
Winlogbeat : windows事件日志(收集Windows事件日志数据)
Auditbeat :审计数据(收集审计日志)
Heartbeat :运行时间监控(收集系统运行时的数据)
三 ELK系统的特点
强大的收集能力:能够采集多种来源的日志数据
稳定的传输能力 :能够把日志数据传输到中央系统
分布式存储:可根据业务需求存储日志数据,可动态扩容
分析&展示&提醒:具备数据分析能力,数据展示能力和告警能力
四 ELK+beats系统架构
Logstash 通过Filebeat从多种数据源(比如日志文件、标准输入 Stdin 等)获取数据,再经过滤插件加工数据,然后经 Elasticsearch 输出插件输出到 Elasticsearch,通过 Kibana 展示。
五 ELK优点
处理方式灵活: elasticsearch是实时全文索引,具有强大的搜索功能
配置相对简单:elasticsearch全部使用JSON 接口,logstash使用模块配置,kibana的配置文件部分更简单。
检索性能高效:基于优秀的设计,虽然每次查询都是实时,但是也可以达到百亿级数据的查询秒级响应。
集群线性扩展:elasticsearch和logstash都可以灵活线性扩展
前端操作良好:kibana的前端设计比较绚丽,而且操作简单。Kibana 界面上,只需要点击鼠标,就可以完成搜索、聚合功能,生成炫丽的仪表板。
六 最后
至此,go-micro微服务ELK介绍工作就正式完成。
接下来就开始filebeat收集日志的代码编写了,希望大家关注博主和关注专栏,第一时间获取最新内容,每篇博客都干货满满。