標籤:open-falcon
1)優勢
·強大靈活的資料擷取:自動探索,支援falcon-agent、snmp、支援使用者主動push、使用者自訂外掛程式支援、opentsdb data model like(timestamp、endpoint、metric、key-value tags)·水平擴充能力:支援每個周期上億次的資料擷取、警示判定、曆史資料存放區和查詢·高效率的警示策略管理:高效的portal、支援原則範本、模板繼承和覆蓋、多種警示方式、支援callback調用·人性化的警示設定:最大警示次數、警示層級、警示恢複通知、警示暫停、不同時段不同閾值、支援維護周期·高效率的graph組件:單機支撐200萬metric的上報、歸檔、儲存(周期為1分鐘)·高效的曆史資料query組件:採用rrdtool的資料歸檔策略,秒級返回上百個metric一年的曆史資料·dashboard:多維度資料展示,使用者自訂Screen·高可用:整個系統無核心單點,易營運,易部署,可水平擴充·開發語言: 整個系統的後端,全部golang編寫,portal和dashboard使用python編寫
2)架構圖
2.1)官網架構圖
2.2)網友所畫架構圖
2.3)基礎組件
組件名稱(繪圖組件)
|
功能 |
備忘 |
agent |
1.agent採集機器監控指標,每隔60秒push給Transfer 2.agent和tranfer建立長串連,傳輸資料比較快 3.agent提供了一個http介面/v1/push接收使用者手工push資料,然後轉寄給tranfer |
|
graph |
1.graph組件是儲存繪圖資料、曆史資料的組件 2.tranfer會把接收到的資料轉寄給granph |
可部署多執行個體做叢集
需要串連資料庫graph
|
transfer |
1.接收agent傳來的資料,轉寄資料到後端的Graph和Judge |
|
query |
1.查詢各個graph資料,提供了一個統一的http查詢介面:query組件接收到使用者的查詢請求後,會從後端的多個graph,查詢相應資料,彙總後,在返回給使用者 |
|
Task
|
index更新;包括表徵圖索引的"全量更新"和"垃圾索引清理"
falcon服務元件自身狀態資料擷取;主要採集tranfer、graph、task三個服務的內部狀態
falcon自檢控任務
|
1.需要串連graph庫 |
dashboard |
前端介面 |
需要python虛擬環境
需要串連資料庫dashboard
|
組件名稱(警示組件)
|
功能 |
備忘 |
Sender |
1.警示發送模組,控制並發度,提供發送的緩衝queue |
|
uic(fe) |
1.使用者組管理,單點登入 |
1.需要串連資料庫uic |
portal |
1.配置警示策略,管理機器分組的web端 |
需要串連資料庫falcon-portal
需要python虛擬環境
|
hbs |
1.心跳伺服器:hbs有2個地址,1個http地址,agent和hbs的rpc地址通訊 |
1.需要串連falcon-portal庫 |
judge |
1.警示判斷模組,judge依賴於HBS,所以得先搭建HBS |
1.可部署多執行個體 |
links |
1.Links是為警示合并功能寫的組件。如果你不想使用警示合并功能,這個組件是無需安裝的 |
1.需要串連falcon_links |
alarm |
1.警示事件處理器 |
1.alarm模組是處理警示event的,judge產生的警示event寫入redis,alarm從redis讀取,這個模組被業務搞得很糟亂,各個公司可以根據自己公司的需求重寫 |
Nodata |
1.nodata用於檢測監控資料的上報異常。nodata和即時警示judge模組協同工作,過程為: 配置了nodata的採集項逾時未上報資料,nodata產生一條預設的類比資料;使用者配置相應的警示策略,收到mock資料就產生警示。採集項上報異常檢測,作為judge模組的一個必要補充,能夠使judge的即時警示功能更加可靠、完善 |
|
Aggregator |
1.叢集彙總模組。彙總某叢集下的所有機器的某個指標的值,提供一種叢集視角的監控體驗 |
|
3)安裝
*環境配置***安裝redis**源碼和rpm包都可以,視情況而定**安裝mysql**1.源碼和rpm包都可以,視情況而定2.初始化mysql表結構*mysql -uroot -proot < 1_uic-db-schema.sql/2_portal-db-schema.sql/3_dashboard-db-schema.sql/4_graph-db-schema.sql/5_alarms-db-schema.sql/links-db-schema.sql*********************************************************************************************************************************************後端配置***下載官方源碼包**1.下載open-falcon-v0.2.1.tar.gz、open-falcon-v0.2.0.tar.gz2.解壓到/home/work/open-falcon3.修改設定檔,一般都是需要指定"資料庫密碼"4.啟動open-falcon:./open-falcon start(啟動全部服務) ./open-falcon check(檢查服務啟動狀態)*******************************************************************************************************************************************前端配置***下載源碼包**1.git clone 2.安裝依賴包:python-devel、openldap-devel、mysql-devel、virtualenv(python官網下載tar包)、yum groupinstall "Development tools"3.安裝前端flask模組:cat pip_requirements.txt Flask==0.10.1 Flask-Babel==0.9 Jinja2==2.7.2 Werkzeug==0.9.4 gunicorn==19.1.1 python-dateutil==2.2 requests==2.3.0 mysql-python python-ldap4.修改rrd/config.py設定檔 ## 根據實際情況,修改PORTAL_DB_*, 預設使用者名為root,預設密碼為"".還有資料庫主機 ## 根據實際情況,修改ALARM_DB_*, 預設使用者名為root,預設密碼為"",還有資料庫主機 ## API_ADDR = os.environ.get("API_ADDR","http://10.59.2.133:8080/api/v1"),此處需要改為open-falcon的服務端ip5.啟動dashboard ./control start
4)監控用戶端主機
1.解壓open-falcon-v0.2.0.tar.gz2.修改agent設定檔 "heartbeat": { "enabled": true, "addr": "10.59.2.133:6030", #服務端ip "interval": 60, "timeout": 1000},"transfer": { "enabled": true, "addrs": [ "10.59.2.133:8433" #服務端ip ], "interval": 60, "timeout": 1000 3.啟動agent服務即可 ./open-falcon start agent即可 *查看日誌:agent.log是否正常*
【小米開源監控系統】open-falcon