携程大规模实时监控系统演进
2019年7月21日
DevOps和运维
陈汉
携程资深软件工程师
携程资深软件工程师,在携程从事Hickwall监控告警平台的研发工作,经历了Hickwall项目的雏形到交付生产再到不断改进,在分布式监控系统领域有丰富的实践经验。个人喜欢探究系统的底层原理,对分布式有浓厚的兴趣。
  • 分享简介
    监控系统是保证网站可用性的第一道防线,一个优秀的监控系统能够大幅度提高网站的可用性和服务质量并且减少运维成本,因此提供更加实时可靠高效的监控告警,对IT企业具有非凡的意义。 致力于这个目标,经过不断地改进,携程研发了新一代监控告警平台Hickwall,它在存储效率、查询速度和告警可靠性方面都有极大的改善。目前整个监控系统每分钟处理上亿的写入量,上万次的查询,几十万次的报警规则。
  • 分享提纲

    1. 从顶层解读监控系统的设计和分类
    1) 系统监控(查询以过滤为主,告警需要针对每个实例,规则简单但是数量比较多)
    2) 应用监控(查询以聚合为主,告警针对整体聚合指标,规则复杂但是数量相对少)
    2. hickwall 架构的整体演进和每一个版本的利弊得失
    1) 基于ES的第一代(写入慢,数据堆积,读取压力大)
    2) 基于Influxdb集群的第二代(写入速率高,查询性能好,聚合效果差)
    3) 结合Clickhouse的第三代(写入速率高,OLAP功能强)
    3. 关键技术点
    1) Influxdb集群的设计
    1. why(ES有读写瓶颈,运维成本高,influxdb性能好却单点)
    2. how(高可用&灾备)
    3. 效果展示
    2) 流式告警的设计
    1. why(pull对存储有压力,查询语法受限制)
    2. how(订阅&缓存)
    3. 效果展示
    3) clickhouse
    1. what(原理&性能)
    2. how(表与索引设计)
    3. 效果展示
    4. 指标与告警
    1)指标的选择
    2)规则告警与智能告警
    3)告警的处理
    5. Q&A

  • 分享收益
    1. 目标
    分享携程在监控系统建设中得到的经验
    2. 成功要点
    l 自研influxdb集群作为时间序列数据库,写入查询性能高
    l 基于 javascript 的流式告警,实现告警规则的灵活配置
    l 使用clickhouse存储应用监控数据,提供强大的OLAP功能
    3. 启示 
    l 如何实现分布式时序数据库
    l 如何高效地实现报警
    如何建设监控系统,包括系统监控和应用监控
热门推荐