自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

融合Zabbix和Prometheus,打造無短板可視化的監(jiān)控不難!

運維 新聞
zabbix和prometheus融合,能夠結(jié)合zabbix的成熟生態(tài)、配置靈活性和Prometheus的存儲、展現(xiàn)優(yōu)勢,提供更強大的監(jiān)控能力,支撐家庭業(yè)務百億級人機物連接相關監(jiān)控數(shù)據(jù)存儲。

?一、監(jiān)控工具簡介

1、Zabbix

Zabbix 是由Alexei Vladishev開源的分布式監(jiān)控系統(tǒng),是一個企業(yè)級的分布式開源監(jiān)控方案。2004年3月發(fā)布1.0 穩(wěn)定版,比Prometheus早了10年以上。能夠監(jiān)控各種網(wǎng)絡參數(shù)以及服務器健康性和完整性的軟件。使用靈活的通知機制,允許用戶為幾乎任何事件配置基于郵件的告警。

后端使用數(shù)據(jù)庫存儲監(jiān)控配置和歷史數(shù)據(jù),可以較為方便地對接數(shù)據(jù)分析、報表定制等渠道,在前端開放了豐富的 RESTful API 供第三方平臺調(diào)用,整體架構符合當前 DevOps 的趨勢。

2、Prometheus

Prometheus是由前Google員工創(chuàng)辦公司SoundCloud開發(fā)的開源監(jiān)控報警系統(tǒng)和時序列數(shù)據(jù)庫。相對于k8s是Google Borg系統(tǒng)的開源實現(xiàn),Prometheus是Google BorgMon的開源實現(xiàn)。

Prometheus 由兩個部分組成,一個是監(jiān)控報警系統(tǒng),另一個是自帶的時序數(shù)據(jù)庫(TSDB)。

Prometheus 在開源社區(qū)十分活躍,在 GitHub 上擁有四萬多Star,并且系統(tǒng)每隔兩三周就會有一個小版本的更新,Prometheus 與它的“師兄”k8s 自帶云原生的光環(huán),天然能夠友好協(xié)作。

二、架構對比

1、Zabbix 架構

圖片

Zabbix Server?

核心組件,C 語言編寫,負責接收 Agent、Proxy 發(fā)送的監(jiān)控數(shù)據(jù),也支持 JMX、SNMP 等多種協(xié)議直接采集數(shù)據(jù)。同時,它還負責數(shù)據(jù)的匯總存儲以及告警觸發(fā)等。

Zabbix Proxy?

可選組件,對于被監(jiān)控機器較多的情況下,可使用 Proxy 進行分布式監(jiān)控,它能代理 Server 收集部分監(jiān)控數(shù)據(jù),以減輕 Server 的壓力。

Zabbix Agentd?

部署在被監(jiān)控主機上,用于采集本機的數(shù)據(jù)并發(fā)送給 Proxy 或者 Server,它的插件機制支持用戶自定義數(shù)據(jù)采集腳本。

Agent 可在 Server 端手動配置,也可以通過自動發(fā)現(xiàn)機制被識別。數(shù)據(jù)收集方式同時支持主動 Push 和被動 Pull 兩種模式。

  • Database?

用于存儲配置信息以及采集到的數(shù)據(jù),支持 MySQL、Oracle 等關系型數(shù)據(jù)庫。同時,最新版本的 Zabbix 已經(jīng)開始支持時序數(shù)據(jù)庫,不過成熟度還不高。

  • Web Server?

Zabbix 的 GUI 組件,PHP 編寫,提供監(jiān)控數(shù)據(jù)的展現(xiàn)和告警配置。

2、Prometheus架構

圖片

  • Prometheus Server?

用于定時抓取數(shù)據(jù)指標(metrics)、存儲時間序列數(shù)據(jù)(TSDB),TSDB在存儲監(jiān)控的性能會優(yōu)于傳統(tǒng)關系型數(shù)據(jù)庫。

  • Jobs/exporters?

Prometheus 使用各種 exporter 進行監(jiān)控,exporter 的功能類似于 Zabbix 的 Agent,負責收集監(jiān)控對象端的數(shù)據(jù)。

  • Pushgateway?

監(jiān)控端的數(shù)據(jù)會用push的方式主動傳給此組件,隨后被 Prometheus 服務定時 pull 此組件數(shù)據(jù)即可。

  • Alertmanager?

報警組件,類似于Zabbix的Action,可以進行報警觸發(fā),比如發(fā)送短信和郵件。

Web UI 用于多樣的UI展示,一般為Grafana,還有一些例如配置自動發(fā)現(xiàn)目標的小組件和后端存儲組件。

三、Zabbix和Prometheus優(yōu)劣 

1、Zabbix的優(yōu)勢

  • 產(chǎn)品成熟?

由于誕生時間長且使用廣泛,擁有豐富的文檔資料以及各種開源的數(shù)據(jù)采集插件,能覆蓋絕大部分監(jiān)控場景,支持很多不同類型的設備和平臺。

  • 采集方式豐富?

支持Agent、SNMP、JMX、SSH 等多種采集方式,以及主動和被動的數(shù)據(jù)傳輸方式,Agent可以更好地進行統(tǒng)一標準化配置。

  • 較強的擴展性?

支持 Proxy 分布式監(jiān)控,有Agent 自動發(fā)現(xiàn)功能,插件式架構支持用戶自定義數(shù)據(jù)采集腳本。

  • 配置管理方便?

能通過Web界面進行監(jiān)控和告警配置,操作方便,上手簡單。

2、Prometheus的優(yōu)勢

  • 較強的處理能力?

監(jiān)控數(shù)據(jù)直接存儲在 Prometheus Server 本地的時序數(shù)據(jù)庫中,單個實例可以處理數(shù)百萬的 Metrics。

  • 靈活的數(shù)據(jù)模型?

引入了Tag,屬于多維數(shù)據(jù)模型,聚合統(tǒng)計更方便,支撐不同團隊個性化展現(xiàn)。

  • 強大的查詢語句?

PromQL 允許在同一個查詢語句中,對多個 Metrics 進行加法、連接和取分位值等操作。

  • 支持云環(huán)境?

能自動發(fā)現(xiàn)容器,同時 K8s 和 Etcd 等項目都提供了對 Prometheus 的原生支持,是目前容器監(jiān)控最流行的方案。

3、對比

Zabbix 屬于老牌的監(jiān)控系統(tǒng),資料多,功能全面且穩(wěn)定,90%以上的配置可以通過Web 端統(tǒng)一操作和實現(xiàn),比強依賴于配置文件的 Prometheus 要更為方便。

Prometheus有靈活的數(shù)據(jù)模型、更成熟的時序數(shù)據(jù)庫,大數(shù)據(jù)量情況下性能更高。支持和Grafana 做快速集成,組合美觀且強大的可視化體驗,支持為不同團隊提供更個性化的展現(xiàn)。

純?nèi)萜鞯沫h(huán)境,毫無疑問Prometheus是更適合的選擇,Prometheus是天生為容器化平臺打造的監(jiān)控系統(tǒng),環(huán)境很復雜,有各種操作系統(tǒng)、硬件、中間件、數(shù)據(jù)庫、機房等,那么Zabbix更適合的監(jiān)控平臺,Zabbix兼顧了監(jiān)控的深度和廣度,實現(xiàn)了統(tǒng)一監(jiān)控平臺的目的;但當監(jiān)控服務器上萬,或者監(jiān)控周期較長,超過了一年,需要面向不同團隊靈活可視化展現(xiàn)時,Prometheus又有很強的優(yōu)勢。

四、Zabbix使用現(xiàn)狀

公司按照業(yè)務線已經(jīng)劃分多套zabbix,運行穩(wěn)定,但監(jiān)控數(shù)據(jù)分散,無法集中化管理,多維度可視化能力較弱,數(shù)據(jù)存儲周期過短,不方便容量預測和管理。

圖片

實時監(jiān)控數(shù)據(jù)

圖片

監(jiān)控趨勢圖

圖片

主機組

?

1、Zabbix 數(shù)據(jù)庫表結(jié)構

1)配置數(shù)據(jù)

① hosts表

存儲被監(jiān)控主機的信息。

圖片

常用字段介紹如下:

  • Hostid:唯一標識Host在Zabbix及數(shù)據(jù)庫中的id。不同表之間的關聯(lián)也要用hostid。
  • Proxy_hostid:若啟用“proxy-server”架構,才會出現(xiàn)被監(jiān)控機器的proxy_hostid。
  • Host:被監(jiān)控機器的名字。
  • Status:機器目前的狀態(tài)?!?”為正常監(jiān)控,“1”為disable。

② items表

存儲所有監(jiān)控項,利用hostid在items表中查詢該主機有那些監(jiān)控項,itemid為監(jiān)控項的id,name為監(jiān)控項的名稱,key_為鍵值,也就是表達式,怎么對監(jiān)控項取值。

圖片

  • itemid:item的id。
  • type:item的type,和前端見面配置item的type的對應。數(shù)據(jù)庫中,這一列的值是0到17的數(shù)字,分別代表不同的類型。
  • hostid:item所在的host的hostid。如果該item是屬于template,那么這里顯示的是templateid。
  • name:item的名字。
  • key_:item的key。
  • status:item的狀態(tài)。
  • value_type:item返回值的類型,配置item時候配置的“Type of Information”。

③ hosts_groups表

存儲了host(主機)與host groups(主機組)的關聯(lián)關系。

圖片

④ Host_groups表

主機組,zabbix上主機組命名規(guī)范化,方便多維度查找。

姓名_部門_產(chǎn)品_集群名

圖片

⑤ problem表

存儲問題事件。

圖片

查詢當前未恢復的問題事件Top10  并將時間戳轉(zhuǎn)換為格式化時間。

SELECT p.eventid as 事件id,FROM_UNIXTIME(p.clock,'%Y-%m-%d %H:%i:%s') as clock,p.name as 觸發(fā)事件,p.severity as 事件等級 FROM problem p WHERE p.source='0' AND p.object='0' AND NOT EXISTS (SELECT NULL FROM event_suppress es WHERE es.eventid=p.eventid) AND p.r_eventid IS NULL ORDER BY p.eventid DESC LIMIT 10;

2)歷史數(shù)據(jù)

Zabbix系統(tǒng)針對每個監(jiān)控項在每次采集時所收集到的數(shù)據(jù),這個數(shù)據(jù)保存Zabbix系統(tǒng)數(shù)據(jù)庫的歷史表中。監(jiān)控的主機的數(shù)量較多的時候,zabbix系統(tǒng)每臺產(chǎn)生的數(shù)量是非常龐大的,這對數(shù)據(jù)庫是一種負擔。建議對數(shù)據(jù)庫進行分區(qū)或盡量減小歷史數(shù)據(jù)的保留天數(shù),以免給數(shù)據(jù)庫系統(tǒng)帶來很大的壓力。

①history表:?存儲信息類型為浮點數(shù)的監(jiān)控項歷史數(shù)據(jù)。

  • history_log表:?存儲信息類型為日志的監(jiān)控項歷史數(shù)據(jù)。
  • history_str表:?存儲信息類型為字符的監(jiān)控項歷史數(shù)據(jù)。
  • history_text表:?存儲信息類型為文本的監(jiān)控項歷史數(shù)據(jù)。
  • history_uint表:?存儲信息類型為數(shù)字(無正負)的監(jiān)控項歷史數(shù)據(jù)。

② history表結(jié)構

圖片

  • itemid: 監(jiān)控項唯一標識id。
  • clock: 時間戳整數(shù)部分。
  • value:監(jiān)控項的值。
  • ns:納秒數(shù)。

查詢 2022/06/07 00:00:00 -2022/06/08 00:00:00 itemid 29175 浮點數(shù)監(jiān)控項歷史數(shù)據(jù)。

select itemid,from_unixtime(clock) as time,value from  history where itemid=29175 and clock >= unix_timestamp('2022/06/07 00:00:00') and clock <= unix_timestamp('2022/06/08 00:00:00');

五、super_exporter

為了解決zabbix存在的不足,我們進行了zabbix和Prometheus融合監(jiān)控項目,通過為每套zabbix數(shù)據(jù)庫開發(fā)部署一套super_exporter,定期從數(shù)據(jù)庫抓取該zabbix下的所有監(jiān)控服務器性能數(shù)據(jù),上報給Prometheus。為了減輕主數(shù)據(jù)庫壓力,提升響應速度,為每套zabbix新增一個獨立從庫,專門為super_exporter抓取數(shù)據(jù)使用。

圖片

prometheus配置抓取任務,主機多的情況下,單個zabbix下總監(jiān)控項會達到上萬,性能優(yōu)化后確??倛?zhí)行時間不超過30s。

圖片

Metrics返回該zabbix管理的所有監(jiān)控主機對應的多個監(jiān)控項性能指標,涉及dba,host,產(chǎn)品部門,產(chǎn)品,集群,機房等標簽。

圖片

super_exporter從hosts表獲取本zabbix實例管理的監(jiān)控主機集合,從hstgrp表獲取主機對應運維負責人、部門、產(chǎn)品、集群名等業(yè)務層多維數(shù)據(jù)。從zabbix實例本身部署情況獲取機房位置等數(shù)據(jù),從items獲取需要集中管理的監(jiān)控項,從history類表抓取最近采集周期的監(jiān)控數(shù)據(jù)。

六、Grafana展現(xiàn)

通過抓取zabbix匯聚的監(jiān)控數(shù)據(jù),存于TSD時序數(shù)據(jù)庫,利用PromQL語言進行相關監(jiān)控項的多標簽聚合計算。使用grafana靈活強大的多維度可視化能力,方便及時地進行性能風險識別,進行長生命周期的資源容量預估。

圖片

通過數(shù)據(jù)行列轉(zhuǎn)化,實例健康指數(shù)積分計算和排序,風險實例頭部展示,臨近性能值趨勢對比,實時查看實例整體運行情況。

圖片

實時聚合多機房zabbix監(jiān)控告警,集中化展現(xiàn)當前告警項;同時記錄歷史告警,審計告警趨勢。

圖片

zabbix和prometheus融合,能夠結(jié)合zabbix的成熟生態(tài)、配置靈活性和Prometheus的存儲、展現(xiàn)優(yōu)勢,提供更強大的監(jiān)控能力,支撐家庭業(yè)務百億級人機物連接相關監(jiān)控數(shù)據(jù)存儲。單個Prometheus支持百萬級Metrics,但隨著接入zabbix的增多,監(jiān)控數(shù)據(jù)時間存儲周期拉長,未來將引入Thanos進行Prometheus長期化存儲。同時super_exporter未來對接cmdb系統(tǒng),匹配更多的業(yè)務標簽數(shù)據(jù),支持更多維的統(tǒng)計計算能力,滿足公司不同團隊的定制化數(shù)據(jù)展示需求。?

責任編輯:張燕妮 來源: dbaplus社群
相關推薦

2009-04-21 14:26:41

可視化監(jiān)控IT管理摩卡

2023-12-27 13:45:00

Python進度條代碼

2018-10-22 15:34:31

Spring Boo監(jiān)控視化

2020-03-11 14:39:26

數(shù)據(jù)可視化地圖可視化地理信息

2023-04-14 08:21:55

2020-10-20 09:07:11

監(jiān)控PrometheusZabbix

2021-09-26 16:20:04

Sentry Dashboards 數(shù)據(jù)可視化

2021-03-25 07:30:24

代碼開發(fā)數(shù)據(jù)

2017-10-14 13:54:26

數(shù)據(jù)可視化數(shù)據(jù)信息可視化

2023-11-24 14:02:00

Python數(shù)據(jù)分析

2023-02-07 07:03:39

2022-08-26 09:15:58

Python可視化plotly

2010-06-17 17:56:57

世博IT監(jiān)控Rfid

2018-08-10 14:45:52

Python網(wǎng)絡爬蟲mongodb

2024-12-25 16:35:53

2015-11-06 14:04:54

數(shù)據(jù)可視化信息圖

2021-01-21 05:32:26

云端視頻監(jiān)控

2015-08-20 10:06:36

可視化

2020-05-19 11:46:50

MongoDB圖形開源

2022-03-01 10:29:44

Kubernetes容器
點贊
收藏

51CTO技術棧公眾號