使用Prometheus(https://github.com/prometheus)原生的k8s服務發現驅動,采集容器化信息;通過微服務參數配置,暴露運行狀態信息提供給prometheus,實現微服務信息采集;
通過新引入的netdata(https://github.com/netdata/netdata)做為采集器,采集除了微服務、k8s以外的所有資源信息;
通過consul解決新節點自動注冊和發現問題;
使用prometheus時序數據庫,解決存儲效率問題;
通過thanos實現多個Prometheus實例構建集群模式;
使用alertmanager實現基礎報警統一規則和觸發。
后續可以考慮擴展:
netdata+kafka,將采集數據寫入其他引擎
2.2新架構技術特點
netdata特性:
1、效率高,資源開銷低
2、可擴展性強,社區活躍,github 50k start
3、自帶web界面,信息全,可替代dstat等linux工具
4、支持到秒級甚至實時監控
5、自帶120+常用組件采集腳本,減輕工作負擔
Prometheus特性:
1、基於時序數據庫,存儲效率高
2、支持集群模式,組合thanos擴展性強
3、雲原生,容器化場景最熱門方案
netdata+Prometheus對比zabbix架構
優點:
1、時效性從分鍾級提高到秒級
2、存儲、查詢效率高
3、每個客戶端提供一個漂亮的web界面、信息全,可大量減少登錄服務器查詢的次數
4、支持集群模式,擴展性強
5、直接支持一部分暴露jmx、metric信息的服務,減少監控腳本配置工作量
6、雲計算、容器化場景更適合
7、數據持久化,原則支持無限長時間數據
8、支持降采樣,極大提高長時間跨度查詢效率
9、雲原生項目,可容器化
缺點:
1、指標眾多,需進行適當裁剪
2、自定義數據類型,有誤差(最大誤差0.0001%)
3、自定義采集腳本需要腳本開發能力(go、python),相比zabbix(shell)學習成本高
總結:
通過對比、了解業務各種報警監控采集方案,采用netdata + Prometheus + consul + thanos方案,效率更高、功能更強大、可擴展性強,較為符合雲原生業務發展和需求。
Netdata
Consul
Prometheus
Thnaos
Alertmanager
Grafan
