ELK 需求背景:
  • 业务发展越来越在,服务器越来越多
  • 各种访问日志、应用日志、错误日志越来越多,导致运维人员无法很好的管理日志
  • 开发人路由器排查问题,需要到服务器上查日志,不方便
  • 运营人员需要一些数据,需要我们运维到服务器上分析日志
为什么要用到ELK:
一般我们需要进行日志分析:直接在日志文件中 awk grep就可以获取想要的信息。但是规模较大时,些方法效率很低。
日志归档,文本搜索,多维度查询 ==>> 需要集中化日志管理
建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。 分布式部署架构,不由的服务模式部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露关键信息,定位到具体的服务器与服务模块,构建一套集中式日志系统,可以提高定位问题效率。
需求:
  • 收集 - 能够采集多种来源的日志数据
  • 传输 - 能够稳定的把日志数据传输到中央系统
  • 存储 - 如何存储日志数据
  • 分析 - 可以支持UI分析
  • 警告 - 能够提供错误报告,监控机制
ELK组件简介
是三个开源软件缩写,分别为:Elasticsearch, Logstash, Kibana 。都是开源软件。现在还新增了一个Beats,它是一个轻量级的日志收集处理工具Agent, Beats占用资源少,适合于各个服务器上搜集日志后传输给Logstash. 目前加了Beats工具所以已经改名为Elastic Stack.
Elasticsearch
Elasticsearch是个开源分布式搜索引擎,提供搜集,分析,存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分版,索引副本机制,restfull风格接口,多数据源,自动搜索负载等。
Logstash
Logstash 主要是用来日志的搜集,分析,过滤日志的工具支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到各节点进行过滤,修改等操作一并发到elasticsearch上。
Kibana
Kibana 也是一个开源和免费的工具,Kibana可以为Logstash和Elasticsearch提供日志分析友好的web界面,可以帮助汇总,分析和搜索重要数据日志。
Beats
Beats 是一个轻量级日志采集器,家族有6个成员,早期的ELK架构中使用Logstash收集,解析日志,但是Logstash对内存,cpu, io 等资源消耗高。 而Beats所占系统的CPU,内存可以忽略不计。
ELK Stack (5.0版本后) -->> ELk Stack + Beats
  • Packetbeat: 网络数据 收集网络流量数据
  • Metricbeat: 指标 收集系统,进程,文件系统级别cpu,内存使用情况
  • Filebeat: 日志文件 收集文件数据
  • Winlogbeat windows事件日志 收集windows事件日志数据
  • Audibeat 审计数据 收集审计日志
  • Heartbeat 运行时间监控 收集系统运行时的数据
x-pack 工具
提供安全,警报,监控,报表,图表于一身的扩展包,是收费的。

本文原创地址:https://www.linuxprobe.com/elk-jieshano.html编辑:张雄,审核员:逄增宝