1. Mt-Falcon——Open-Falcon在美团点评的应用与实践
前言
监控系统在业务系统中至关重要,它能实时监测机房、网络、服务器、应用状态,并在出现异常时及时响应。美团点评初期使用Zabbix监控系统,优化后可支持数千台机器、数百万监控项,但随着业务扩展,Zabbix暴露问题。为寻找替代方案,我们选择了开源的Open-Falcon。
在引入Open-Falcon基础上,我们对系统进行了改进,本文将详细介绍这些改进。
Open-Falcon架构图
此图为Open-Falcon架构示意图,展示了系统组件间的关系。
Mt-Falcon架构图
Mt-Falcon对Open-Falcon进行了改造,主要改进包括:报警禁用、ACK、升级、分布式消费报警任务、支持OpenTSDB存储、字符串监控、多条件监控、索引信息存储优化等。
改进列表
一、Agent改造
- 提升数据转发性能:采用异步处理,每0.5秒批量上报最多1万条监控项,确保性能稳定。
- 网卡流量标识:自动识别网卡类型(千兆、万兆、双千兆、双万兆),配置监控策略时可设置不同阈值。
- 进程级别coremp监控:检测指定进程core时上报特定指标,配置报警策略。
- 日志自动切分:引入Go-Logger库自动按大小或日期切分日志,避免大日志量问题。
- 解决hostname重复:从/etc/sysconfig/network文件获取hostname,避免误操作导致的监控误报。
- 支持Agent存活监控:通过心跳连接更新心跳时间戳,检测Agent实例存活状态。
二、HBS改造
- 内存优化:使用RPC+MessagePack替代JSON-RPC,提升编码效率,减少内存占用。
- 查询监控策略:提供接口查询指定机器的监控策略列表。
- 模板继承问题修复:改进聚合逻辑,确保所有子模板监控策略生效。
- 报警禁用:支持5种类型禁用,避免误报警。
三、Transfer改造
- Endpoint黑名单功能:禁用特定Endpoint或监控指标,避免数据过多影响性能。
- 指定监控项发送到OpenTSDB:重要监控指标直接保存至OpenTSDB,便于长时间查询。
四、Judge改造
- 内存优化:仅缓存配置策略的监控项数据,提高性能。
- 报警状态持久化:报警事件信息持久化存储,避免重启重复报警。
- 报警升级、ACK功能:实现报警等级调整和确认。
五、Graph改造
- 索引存储优化:采用Redis+Tair,提高性能。
- 过期索引自动清理:监控项索引超过1个月未上报自动删除,并在重新上报时重建。
- 历史数据查询优化:解决12小时内数据查询误差问题。
六、Alarm改造
- 报警合并、发散、白名单、分布式消费、报警方式调整、持久化与统计、报警红盘、模板负责人选项、基础监控自动报警。
七、Portal/Dashboard改造
- 服务树绑定、权限认证、操作日志、shift多选、颜色调整、索引自维护、Dashboard刷新、screen中单图刷新、按环境应用监控模板。
八、新增模块
- Ping监控、字符串监控、同比环比监控、多条件监控。
总结
Mt-Falcon全面替换Zabbix,接入美团点评所有机器,监控项数量超过两亿,数据上报QPS达百万级。下一步重点是监控融合统一、配置页面优化、自动报警处理与数据运营。
我们致力于推动Open-Falcon社区发展,部分改进已合并至官方版本。