ELK日志分析系统的介绍

发布时间 2023-12-29 23:31:32作者: 李若盛开

1、ELK简介
 ELK是一套针对日志数据做解决方案的框架,是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。

Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。

它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。主要负责将日志索引并存储起来,方便业务方检索查询。

Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。

一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。

是一个日志收集、过滤、转发的中间件,主要负责将各条业务线的各类日志统一收集、过滤后,转发给 Elasticsearch 进行下一步处理。

Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

2、ELK日志分析的构成

1)elasticsearch的基础概念:
接近实时(NRT),群集(cluster),节点(node),索引(index),分片或副本(shards & replicas)。

2)logstash的主要组件

shipper:日志收集者。

lndexer:日志存储者。

broker:日志Hub

Search and Storage:允许对事件进行搜索和存储

web interface:基于web的展示界面

3)kibana的主要功能

Elasticsearch无缝之集成,整合数据,复杂数据分析,让更多团队成员收益,接口灵活,配置简单,可视化多数据源,简单数据导出

3、 使用ELK的原因
日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。

往往单台机器的日志,使用grep、awk等工具就能基本实现简单分析,但是当日志被分散的储存不同的设备上。 如果管理数十上百台服务器,还在使用依次登录每台机器的传统方法查阅日志,这样是不是感觉很繁琐和效率低下。 当务之急使用集中化的日志管理, 例如∶ 开源的syslog,将所有服务器上的日志收集汇总。集中化管理日志后, 日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。

一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时, 大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统, 可以提高定位问题的效率。

4、 完整日志系统基本特征
收集∶能够采集多种来源的日志数据

传输∶能够稳定的把日志数据解析过滤并传输到存储系统

存储∶存储日志数据

分析∶支持 UI分析

警告∶能够提供错误报告,监控机制

5、ELK的工作原理
(1)在所有需要收集日志的服务器上部署Logstash; 或者先将日志进行集中化管理在日志服务器上, 在日志服务器上部署 Logs tash。

(2)Logstash 收集日志,将日志格式化并输出到 Elasticsearch 群集中。

(3)Elasticsearch 对格式化后的数据进行索引和存储。

(4)Kibana 从 ES 群集中查询数据生成图表,并进行前端数据的展示。

 6、ELK可以做什么

  应用出现故障,需要通过日志排查故障信息。当应用已部署了多个环境时,这时排查的难度和耗时就是一个巨大的损耗。而ELK就可以对多个环境的日志进行收集,过滤,存储,检错,可视化。届时只需要查看kibana上的日志信息,就可以找出故障所在。
  针对应用在生产环境上的表现需要数据支撑,如访客数,功能调用量,出错率等等。此类数据的收集,当然可以通过使用别的产品或编写一套程序进行输出,是有其一定的效果,但能像ELK这样对应用无入侵,且功能强大的开源软件。那是少之又少了。
7、ELK一般用来做啥
ELK组件在海量日志系统的运维中,可用于解决:

1)分布式日志数据集中式查询和管理

2)系统监控,包含系统硬件和应用各个组件的监控

3)故障排查

4)安全信息和事件管理

5)报表功能

ELK组件在大数据运维系统中,主要可解决的问题如下:

1)日志查询,问题排查,上线检查

2)服务器监控,应用监控,错误报警,Bug管理

3)性能分析,用户行为分析,安全漏洞分析,时间管理