• 企业该如何做好日志管理?


    01. 企业级日志架构复杂度

    一套企业级的日志平台架构建设复杂度体现在什么方面,总结归纳下来,主要有三个:采集端部署分散;服务端部署组件多;日志流对性能有一定要求。

    1)采集端部署分散

    比较常用的采集器是开源的filebeat,filebeat功能强大,安装配置也相对简单。但问题在于,一旦需要采集的对象数量多起来,种类多起来,或者这些采集对象是动态变化的,即使单节点安装简易的filebeat也会需要花费大量的精力来安装和维护。这也是很多企业在建设统一日志平台面临的一个实际问题。这时,运维往往会写脚本去批量下发,能做到部分解决问题,但是后期的配置维护、版本更新等等,都将带来新的问题。

    那么,有什么方案可以解决呢?有,那就是采取集中管理的思路,由一个统一的控制中心,通过在不同节点上安装代理来收集信息+下发配置。一般一个中大型企业,基本都会有一套自己的agent来控制各方资源,agent往往是在虚拟机模板或者容器镜像中就已经打入,主要的作用也就是上报信息以及下发配置。日志的采集便可以利用好这种集中式的管理工具,基于agent做插件来充当采集端,统一管理采集配置(包括路径、级别、过滤、预处理等等)。

    2)服务端部署组件多

    对于个人开发者或小规模企业来说,部署组件多也许还可以接受。拿开源的ELK举例,日志服务端部署需要Logstash集群和ES集群,以及一个Kibana的前端,完整一套集群也许就可以解决相当体量的日志集中管理。

    但对于一家中大型企业来讲,体量和业务复杂度上来之后,情况往往是非常复杂的。

    这时有人想到说,那我直接多套ELK,也能解决问题,部署也就写个脚本的事情,批量复制,还可以做“物理隔离”。这样确实行之有效,但这种方案会带来另外的问题,就是日志无法进一步聚合聚类,导致各业务的日志数据成了数据孤岛,如果组织内有那种横向组织,他们就需要来回切换集群进行诸如日志检索,日志清洗等操作。

    那要解决这个问题,其实只需要再增加一个服务端,能够将分布在不同ELK的日志存储统一管理起来,让刚刚说的那种场景统一通过这个服务端提供的接口完成,也就能在使用日志的时候,不再受到存储分散的影响。

    3)性能要求高

    日志数据不同于指标类数据,日志数据无论是从时间密度还是从空间密度上来说都要远远大于其他类型的观测数据。因此,中大型企业的大型业务系统以及庞大的基础设施产生的日志量让企业开发者不得不思考这其中的性能和成本如何平衡。

    总结三个关键的性能瓶颈以及对应的解决方案:

    ① 分散到集中存储所消耗的带宽压力

    • 通过采集端做预先过滤
    • 分多条传输链路
    • 做好网络链路规划,尽量避免跨域传输

    ② 清洗和存储压力

    • 通过Kafka等消息队列做写入缓冲
    • 使用非结构化分片存储

    ③ 检索响应速度的压力

    • 冷热数据分离,减少索引大小
    • 完善数据预处理和清洗,索引高效(一定程度依赖日志输出规范化)

    02. 整体技术架构

    1)整体技术架构介绍

    2)蓝鲸平台在腾讯内部业务场景的探索

    其实刚刚展示的这套日志架构,源自腾讯IEG蓝鲸日志平台的数据流示意图。

    蓝鲸平台在早期就将日志的各类应用场景作为整个自动化运营中的关键环节,并规划建造出了一套适合中大型企业使用的日志平台。直至目前,蓝鲸日志平台已经历经上百次的迭代,在腾讯内部积累了大量的实践经验,支持了上千项业务的日志需求,总结出了不少技术优化举措,在此结合这个话题进行分享总结。

    3)关键技术优化举措&经验

    ① 采集端统一Agent,用Agent装采集插件的方式来实现日志采集,便于安装管理

    ② 对于难以运行Agent的设备,可以采取用一些节点主动调用接口获取syslog的方式,集中存储再用Agent采集

    ③ Transfer预处理和Kafka高吞吐衔接,加强数据管道性能

    ④ 统一存储端管理,支持第三方ES接入,通过索引集的设计拓展后续的日志应用场景

    ⑤ 分析类的计算任务会借助已有的成熟的数据平台,而并非在自己内部进行

    ⑥ 数据可视化重点关注指标和维度的体系建设,而并非界面的优化(grafana可以解决绝大部分可视化需求)

    ⑦ 各服务节点均可云原生集群化部署

    4)实践效果

    ① 通过Agent,支持各类日志的采集

    ② 统一服务端后,使用索引集进行跨节点的日志检索

    ③ 配合grafana分析日志清洗后的指标数据(以Nginx访问日志为例)

    03 嘉为蓝鲸-日志管理中心

    其实在国内已经有不少优秀的日志产品,它们会专精这一领域不断优化。

    如果希望快速搭建起一套企业级日志平台,注意是企业级的平台,那完全可以尝试国内成熟厂商的日志产品,这样反而能带来巨大成本上的节省,不失为一种好的选择。

    例如我们的嘉为蓝鲸-日志管理中心:

    1)日志统一管理

    一站式提供日志全生命周期管理服务,大幅降低用户日志管理的成本,让用户能够专注于日志数据价值的挖掘。

    2)日志全文检索

    提供灵活、高效、方便的日志全文检索功能,帮助运维人员快速定位问题。

    3)日志运维监控

    通过日志关键字监控和日志指标监控,协助运维人员实时保障业务稳定。



    4)日志统计分析

    可灵活的构建可视化仪表盘,帮助用户实现业务日志数据统计分析。

    基于业界主流的全文检索引擎,以日志数据为中心,实现了基于多源日志采集、日志清洗、日志存储和日志检索的日志统一管理,帮助用户解决分布式架构下日志收集和查询困难的问题;并使用索引集概念作为产品中的数据单元,通过对日志的监控告警和可视化分析,帮助用户深入挖掘日志数据的价值。

    如果想快速搭建起一套企业级日志平台,可以考虑,若想试用,去我们官网申请即可。

  • 相关阅读:
    CentOS 添加NTP服务器配置
    仿真2. 离散事件仿真
    Mp4文件提取详细H.264和MP3文件
    【C++学习笔记】1.4 函数重载
    Javaweb安全——Shiro漏洞利用
    贪心算法-----------------装箱问题
    qml中,实时改变TextField中的内容
    Java注释
    Django 里如何使用 sqlite (操作步骤)
    Redis分布式锁这样用,有坑?
  • 原文地址:https://blog.csdn.net/weixin_42556618/article/details/126331597