open-falcon架構詳解

一、介紹
小米開源的監控工具,基於go語言實現
二、架構圖
open-falcon架構詳解

1.falcon-agent:
數據採集組件,內置http接口,採集定義好的數據上報給transfer
2.transfer
agent與transfer建立長鏈接,將數據彙報給transfer,transfer默認監聽在:8433端口上,agent會通過jsonrpc的方式來push數據上來,transfer將數據傳遞給judge,和graph
3.graph
graph組件存儲繪圖數據,歷史數據.transfer會將接收的數據傳給graph,監聽端口爲6071
4.query
繪圖數據的查詢接口,因爲graph分片存儲,如果要傳輸給dashboard,需要query蒐集數據並聚合在展示給用戶
5.dashboard
dashboard是面向用戶的查詢界面,在這裏,用戶可以看到push到graph中的所有數據,並查看其趨勢圖
6.judge
Judge要做告警判斷,需要先從portal數據庫中讀取報警策略,但是Judge實例比較多,都去讀取數據庫會造成很大壓力,所以可以讓heartbeat成爲db cache緩存,heartbeat從數據庫中讀取數據緩存到內存,Judge調用heartbeat的rpc接口,獲取報警策略,告警事件存入redis
7.alarm
處理judge存入redis的告警事件
8.sender
調用各個公司提供的mail-privider和sms-privider,按照某個併發度,從redis讀取郵件,短信併發送,alarm生成的報警短信和報警郵件是直接寫入redis即可,由sender來發送
9.portal
配置報警策略寫入數據庫
10.hbs
心跳服務器,falcon-agent每分鐘都會發送心跳給heartbeat server,上報自己的版本、hostname、ip等。從heartbeat拉取要執行的插件和特殊採集項等。這些信息需要heartbeat訪問 Portal的數據庫要獲取。Judge要做告警判斷,需要先從portal數據庫中讀取報警策略,但是Judge實例比較多,都去讀取數據庫會造成很大壓力,所以可以讓heartbeat成爲db cache緩存,heartbeat從數據庫中讀取數據緩存到內存,Judge調用heartbeat的rpc接口,獲取報警策略

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章