近年来,IT系统逐渐呈现海量化和异构化的趋势,企业每天可能会产生上百GB甚至TB级的日志数据,如何实现日志数据的集中化接入,以及保障日志管理的持续拓展性,成为企业日志管理的一大难点。
01. ELK 日志管理系统
集中化收集和管理所有设备上的日志的常见解决思路是建立日志管理系统,将所有设备上的日志统一收集、管理、查看。ELK是目前主流的一种日志管理系统,由三个开源工具组合而成,Elasticsearch Logstash Kibana。
① Elasticsearch:是一个开源的实时分布式搜索和分析引擎,在Apache Lucene的基础上开发而成,可用于搜索、分析、存储数据,具有可水平扩展、高可用、易维护等特点。
② Logstash:是一种具有实时传输能力的数据收集管道,用于数据收集、解析,并将数据发送给Elasticsearch。
③ Kibana:是一个开源、免费的可视化组件,可以为Logstash和Elasticsearch提供友好的日志分析Web界面,将日志数据转化为各种图表。
传统的ELK的架构如下所示,在需要收集日志的所有服务上部署Logstash,收集、过滤日志数据,将过滤后的内容统一发送给Elasticsearch,用户可以用Elasticsearch进行自定义搜索日志数据,也可以通过Kibana展示、分析日志数据。
ELK日志管理系统不仅能够采集多种来源的日志数据,还可以集中存储数据,以界面化的方式实时检索和分析日志数据。但由于Logstash占用资源大,且需要在每一个终端上都部署Logstash,故ELK日志管理系统新增了一个工具——Filebeat,它是一个轻量级的日志收集处理工具,占用资源少,适合于在各个终端收集日志数据,然后将日志传输给Logstash。
ELK日志管理系统的优点如下:
- 搜索功能强大:Elasticsearch是全文索引,可以在分布式架构系统下快速搜索,通常可以达到百亿级数据的查询秒级响应
- 集群线性扩展:Elasticsearch和Logstash都支持灵活扩展
- 可视化展示日志数据:将复杂难懂的非结构化的日志数据显示为图表信息
即使ELK日志管理系统已经如此强大,但实际上仍存在以下不足:
- 缺少权限管理,缺少数据隔离,日志数据的安全性得不到保障,不适用于大中型企业
- 告警及关联分析能力弱,要求运维人员有较深的技术背景,熟悉Elasticsearch,且需要通过高频查看日志来感知业务是否出现异常
- 日志量过大时,容易发生数据堵塞
- 需要在多个终端进行部署,且不支持批量部署,部署难度高,时间成本大
如果想解决以上不足,企业可以在ELK的基础上自行建设一套日志管理系统,或直接购买市面上成熟的日志管理系统。
下图为可参考的一种日志管理系统的架构,先在各类终端上批量部署Agent(一种轻量级的数据收集处理工具),Agent实时采集日志数据,并将采集到的数据上报到Kafka。
Kafka作为日志管理系统的缓冲层,具备海量数据堆积、高吞吐读写的特性,可以为后面的分布式日志消费服务提供异步解耦、削峰填谷的能力。
接着,Transfer作为Kafka的消费者客户端,通过订阅Topic实现日志数据的接收,并将非结构化、复杂难懂的日志数据解析成结构化数据。
最后,Transfer将解析后的日志数据写入Elasticsearch的索引中,完成日志的最终落地。
上图这种日志管理系统的架构优势是:
- 批量采集多个终端的日志,降低部署难度,减少部署人力和时间成本
- 架构健壮,不易数据堵塞
- 支持在采集过程中过滤日志敏感信息,保障企业安全
- 兼备了ELK高效日志搜索、集群线性扩展的特性
同时,企业可以通过搭建Web界面,开发自定义功能,实现更多诉求,例如:
- 鉴权功能与数据隔离,既保障日志数据的安全性,又便于企业不同角色各司其职
- 监控与告警功能,通过监控日志数据,管理员和运维部门可以及时发现问题,辅助定位问题,快速处理问题,提前预防问题,降低企业的业务损失
- 仪表盘功能,统计分析日志数据,充分挖掘日志数据的价值
这套改进后的日志系统虽说能够解决很多企业管理上的痛点问题,但对于中小型企业以及主营业务并非信息技术的企业而言,建设这样一套日志管理系统的成本及资源投入往往是难以估量和接受的,毕竟一个靠谱工程师的人力成本至少是50w/年起步。
02. 嘉为蓝鲸-日志管理中心
其实在国内已经有不少优秀的日志产品,它们会专精这一领域不断优化。
如果希望快速搭建起一套企业级日志平台,注意是企业级的平台,那完全可以尝试国内成熟厂商的日志产品,这样反而能带来巨大成本上的节省,不失为一种好的选择。
例如我们的嘉为蓝鲸-日志管理中心:
1)日志统一管理
一站式提供日志全生命周期管理服务,大幅降低用户日志管理的成本,让用户能够专注于日志数据价值的挖掘。
2)日志全文检索
提供灵活、高效、方便的日志全文检索功能,帮助运维人员快速定位问题。
3)日志运维监控
通过日志关键字监控和日志指标监控,协助运维人员实时保障业务稳定。
4)日志统计分析
可灵活的构建可视化仪表盘,帮助用户实现业务日志数据统计分析。
基于业界主流的全文检索引擎,以日志数据为中心,实现了基于多源日志采集、日志清洗、日志存储和日志检索的日志统一管理,帮助用户解决分布式架构下日志收集和查询困难的问题;并使用索引集概念作为产品中的数据单元,通过对日志的监控告警和可视化分析,帮助用户深入挖掘日志数据的价值。
如果想快速搭建起一套企业级日志平台,可以考虑,若想试用,去我们官网申请即可。