一 Open-Falcon簡介
監控系統是整個運維環節,乃至整個產品生命週期中最重要的一環,事前及時預警發現故障,過後提供翔實的數據用於追查定位問題。監控系統做爲一個成熟的運維產品,相對成熟的解決方案有
Nigos、Zabbix、Cacti
。隨着業務規模的持續快速增加,監控的對象也愈來愈多,愈來愈複雜,監控系統的使用對象也從最初少數的幾個SRE,擴大爲更多的DEVS,SRE。這時候,監控系統的容量和用戶的「使用效率」成了最爲突出的問題。
隨着業務的快速發展,以及互聯網公司特有的一些需求,現有的開源的監控系統在性能、擴展性、和用戶的使用效率方面,已經沒法支撐了。
Open-Falcon具備如下更優的特性:
- 強大靈活的數據採集:agent自動發現,支持falcon-agent、snmp、支持用戶主動push、用戶自定義插件支持;
- 高水平擴展能力:支持每一個週期上億次的數據採集、告警斷定、歷史數據存儲和查詢;
- 高效率的告警策略管理:高效的portal、支持策略模板、模板繼承和覆蓋、多種告警方式、支持回調動做;
- 人性化的告警設置:最大告警次數、告警級別、告警恢復通知、告警暫停、不一樣時段不一樣閾值、支持維護週期,支持告警合併;
- 高效率的graph組件:單機支撐200萬metric的上報、歸檔、存儲(週期爲1分鐘);
- 高效的歷史數據query組件:採用rrdtool的數據歸檔策略,秒級返回上百個metric一年的歷史數據;
- 人性化Dashboard:多維度的數據展現,用戶自定義Screen等;
- 架構設計高可用:整個系統無核心單點,易運維,易部署,可水平擴展;
- 開發語言: 整個系統的後端,所有golang編寫,portal和dashboard使用python編寫。
二 Open-Falcon架構
2.1 官方架構圖
2.2 模塊架構
備註:虛線所在的aggregator組件還在設計開發階段。
因此須要監控的每臺服務器,須要安裝falcon-agent,falcon-agent是一個golang開發的daemon程序,用於自發現的採集單機的各類數據和指標,這些指標包括但不限於如下幾個方面,共計200多項指標:
- CPU相關
- 磁盤相關
- IO
- Load
- 內存相關
- 網絡相關
- 端口存活、進程存活
- ntp offset(插件)
- 某個進程資源消耗(插件)
- netstat、ss 等相關統計項採集
- 機器內核配置參數
提示:安裝了falcon-agent的機器,就會自動開始採集各項指標,主動上報,不須要用戶在server作任何配置(區別於Zabbix),這樣作的好處,就是用戶維護方便,覆蓋率高。
Falcon-agent提供了一個proxy-gateway,用戶能夠方便的經過http接口,push數據到本機的gateway,gateway會協助高效率的轉發到server端。
falcon-agent可參考 : https://github.com/open-falcon/agent
2.3 數據流程圖
參考官方:
http://book.open-falcon.org/zh_0_2/intro/