目前監控系統大致可以分為系統監控,應用監控,業務監控
業務監控需要實時交易數據的支撐,對數據實時性要求較高
最初版實時監控系統模型:
實時數據不斷的錄入到ES(Elastic Search)當中,然后通過定時任務按照設定好的頻率查詢ES的數據並進行聚合給出各類指標的健康狀況
經過一段時間的運行,伴隨着監控的指標越來越多,查詢越來越頻繁,沒次增加指標都需要去新增對應的定時任務去執行相應的邏輯,這種方式的弊端越來越顯著,主要表現在:
1、對ES的依賴很強,數據量越來越大,可能會超出ES的承載能力
2、不靈活,每次有新指標或是有指標的改動都需要去改代碼,發布
3、實時性不夠,數據是先要落到ES,然后才能通過定時任務去查詢
基於以上問題,我們進行了改造
我們希望數據監控與數據分析進行分離,數據分析所依賴的條件具有不確定性,需要根據外部輸入實時獲取數據,這張就需要保存明細數據以達到動態聚合
而數據監控是根據確定好的一些指標對數據進行實時的聚合,監測交易的健康度,所以我們分成了兩塊
1、數據查詢分析展示通過ES做查詢,取消定時任務的執行
2、運用storm,flink等流數據處理方式處理實時告警,這里我們選用了比較成熟的storm技術
數據路由
Storm拓撲