夜莺(Nightingale)是一个企业级监控解决方案 。旨在满足云原生时代企业级的监控需求 。Nightingale 在产品完成度、系统高可用、以及用户体验方面 , 达到了企业级的要求 , 可满足不同规模用户的场景 , 小到几台服务 , 大到数十万都可以完美支撑 。兼顾云原生和裸金属 , 支持应用监控和系统监控 , 插件机制灵活 , 插件丰富完善 , 具有高度的灵活性和可扩展性 。
Nightingale 在 Open-Falcon 的基础上 , 结合滴滴内部的最佳实践 , 在性能、可维护性、易用性方面做了大量的改进 , 作为集团统一的监控解决方案 , 支撑了滴滴内部数十亿监控指标 , 覆盖了从系统、容器、到应用等各层面的监控需求 , 周活跃用户数千 。五年磨一剑 , 取之开源 , 回馈开源 。
文章插图
Nightingale 采用树状节点导航 , 我们称之为对象树 。对象树本质上是一种对监控对象的分组管理机制 , 方便查找和查看监控对象 , 以及对监控对象设置监控策略等管理动作 。一棵典型的树可从上到下描述为组织架构关系、产品服务模块关系、机房和机器挂载关系 , 该导航树可根据用户需求自行灵活定制 。
文章插图
监控策略应用到某个节点后 , 该节点下的所有子节点挂载的所有的机器都会应用这个策略 , 任何一台机器触发相关阈值都会产生告警 。
文章插图
【Nightingale 【开源推荐】夜莺企业级监控解决方案】监控大盘的定制做了大幅易用性改进 , 支持了图表阈值 , 支持了图表分类 , 新增图表和排序管理都是可见即所得的方式 , 巡检大盘的定制从此不再是困难 。
Nightingale 是在 Open-Falcon 的基础上衍化发展而来 , Open-Falcon 作为国内使用最广泛的监控解决方案之一 , 为 Nightingale 的设计开发提供了大量的借鉴意义 。
与 Open-Falcon 的不同点
- 告警引擎重构:Open-Falcon 的告警策略 , 在监控数据推送上来的同时会触发策略判断 , 这种「推」的模式优势是策略的判断时效性非常高 , 但是不利于更高级的告警策略的支持和扩展 , 比如多条件的组合报警就很难支持 。Nightingale 转为推拉结合模式 , 通过推模式保证大部分策略判断的效率 , 通过拉模式支持了与条件告警和nodata告警 。
- 引入了导航对象树:将 Open-Falcon 采用的扁平 HostGroup , 转为 Nightingale 的导航对象树 , 对象树本质上是一种对监控对象的分组管理机制 , 方便查找和查看监控对象 , 以及对监控对象设置监控策略等管理动作 。同时在 Nightingale 中 , 去除了告警模板的概念 , 告警策略直接与树节点绑定 , 简化设计 , 大幅提升灵活度和易用性 。
- 索引模块升级换代:Open-Falcon 使用 MySQL 存储 metrics 的索引数据 , 在扩展性和灵活性上存在瓶颈 。Nightingale 根据监控需求 , 设计开发了全新的内存索引模块 index , 查询方式更多样 , 查询效率更高 , 避免了原来 MySQL 索引数据达到亿级别时面临的维护优化工作 。
- 时序数据库优化:在 Open-Falcon 存储模块 Graph 的基础上 , 引入 Facebook 的 Gorilla 压缩方案 , 近期几个小时的数据采用内存存储 , 大幅提升数据查询效率 , 长期数据仍然使用 rrdtool 数据格式存储在硬盘上 。同时进一步完善了时序数据库的性能和稳定性 。
- 告警引擎高可用改进:告警引擎 judge 模块通过心跳机制做到了故障自动摘除 , 再也不用担心单个 judge 宕机导致部分策略失效 , 需要人工介入的问题 , index 模块也是采用类似方式保证可用性 。
- 原生内置日志监控功能:Nightingale 客户端原生内置了日志匹配和指标抽取能力 , 在 web 控制台页面上支持了日志匹配规则的配置 , 同时也支持读取目标机器特定目录下的配置文件的方式 , 让业务指标监控更为易用 。
推荐阅读
- 虫屎茶是什么茶,红花茶的作用
- 山药壮阳效果,益母草活力亮发茶
- 玫瑰花茶会回奶吗,孕妇能喝玫瑰花茶吗
- 夏天开空调26度省电还是28度养生?三伏天正确使用空调的技巧来了
- 空调怎么吹不得病?
- 山楂水的泡法,茉莉花茶的喝法
- 去斑美容汤的做法
- 冬瓜莲叶汤的做法
- 冬瓜蛤蜊清汤的做法
- 梅子海鲜汤的做法