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社區發展,部分改進已合並至官方版本。