0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Zabbix和Prometheus到底怎么選

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2023-01-29 14:50 ? 次閱讀

公司要上監(jiān)控,面試提到了 Prometheus 是公司需要的監(jiān)控解決方案,我當(dāng)然是選擇跟風(fēng)了。

之前主要做的是 Zabbix,既然公司需要 Prometheus,那沒辦法,只能好好對比一番,了解下,畢竟技多不壓身。

但稍稍深入一點,我就體會到了 Prometheus 的優(yōu)點,總結(jié)一下這兩種監(jiān)控方式。

兩種監(jiān)控工具的歷史簡介

Prometheus

Kubernetes 自從 2012 年開源以來便以不可阻擋之勢成為容器領(lǐng)域調(diào)度和編排的領(lǐng)頭羊。

Kubernetes 是 Google Borg 系統(tǒng)的開源實現(xiàn),于此對應(yīng) Prometheus 則是 Google BorgMon 的開源實現(xiàn)。

Prometheus 是由 SoundCloud 開發(fā)的開源監(jiān)控報警系統(tǒng)和時序列數(shù)據(jù)庫。

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

2016 年,由 Google 發(fā)起的 Linux 基金會旗下的原生云基金會(Cloud Native Computing Foundation)將 Prometheus 納入其第二大開源項目。

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

Zabbix

Zabbix 官方的發(fā)行版本時間可以追朔到 2012 年,時間上比 Prometheus 早了四年。

Zabbix 是由 Alexei Vladishev 開源的分布式監(jiān)控系統(tǒng),是一個企業(yè)級的分布式開源監(jiān)控方案。能夠監(jiān)控各種網(wǎng)絡(luò)參數(shù)以及服務(wù)器健康性和完整性的軟件。使用靈活的通知機(jī)制,允許用戶為幾乎任何事件配置基于郵件的告警。

這樣可以快速反饋服務(wù)器的問題。基于已存儲的數(shù)據(jù),提供了出色的報告和數(shù)據(jù)可視化功能。

架構(gòu)對比

Prometheus

d34eb26c-9f30-11ed-bfe3-dac502259ad0.png

Prometheus 的基本原理是通過 HTTP 周期性抓取被監(jiān)控組件的狀態(tài),任意組件只要提供對應(yīng)的 HTTP 接口并且符合 Prometheus 定義的數(shù)據(jù)格式,就可以接入 Prometheus 監(jiān)控。

Prometheus Server 負(fù)責(zé)定時在目標(biāo)上抓取 Metrics(指標(biāo))數(shù)據(jù)并保存到本地存儲里面。

Prometheus 采用了一種 Pull(拉)的方式獲取數(shù)據(jù),不僅降低客戶端的復(fù)雜度,客戶端只需要采集數(shù)據(jù),無需了解服務(wù)端情況,而且服務(wù)端可以更加方便的水平擴(kuò)展。

如果監(jiān)控數(shù)據(jù)達(dá)到告警閾值 Prometheus Server 會通過 HTTP 將告警發(fā)送到告警模塊 alertmanger,通過告警的抑制后觸發(fā)郵件或者 webhook。最新 HTTP 面試題整理好了,大家可以在Java面試庫小程序在線刷題。

Prometheus 支持 PromQL 提供多維度數(shù)據(jù)模型和靈活的查詢,通過監(jiān)控指標(biāo)關(guān)聯(lián)多個 tag 的方式,將監(jiān)控數(shù)據(jù)進(jìn)行任意維度的組合以及聚合。

Zabbix

d357368a-9f30-11ed-bfe3-dac502259ad0.png

Zabbix 由 2 部分構(gòu)成,Zabbix Server 與可選組件 Zabbix Agent。Zabbix Server 可以通過 SNMP,Zabbix Agent,ping,端口監(jiān)視等方法提供對遠(yuǎn)程服務(wù)器/網(wǎng)絡(luò)狀態(tài)的監(jiān)視,數(shù)據(jù)收集等功能。

它可以運行在 Linux,Solaris,HP-UX,AIX,F(xiàn)ree BSD,Open BSD,OS X 等平臺上。最新 Linux 面試題整理好了,大家可以在Java面試庫小程序在線刷題。

核心組件主要是 Agent 和 Server,其中 Agent 主要負(fù)責(zé)采集數(shù)據(jù)并通過主動或者被動的方式采集數(shù)據(jù)發(fā)送到 Server/Proxy,除此之外,為了擴(kuò)展監(jiān)控項,Agent 還支持執(zhí)行自定義腳本。

Server 主要負(fù)責(zé)接收 Agent 發(fā)送的監(jiān)控信息,并進(jìn)行匯總存儲,觸發(fā)告警等。

Zabbix Server 將收集的監(jiān)控數(shù)據(jù)存儲到 Zabbix Database 中。Zabbix Database 支持常用的關(guān)系型數(shù)據(jù)庫,如果 MySQL、PostgreSQL、Oracle 等,默認(rèn)是 MySQL,并提供 Zabbix Web 頁面(PHP 編寫)數(shù)據(jù)查詢。

Zabbix 由于使用了關(guān)系型數(shù)據(jù)存儲時序數(shù)據(jù),所以在監(jiān)控大規(guī)模集群時常常在數(shù)據(jù)存儲方面捉襟見肘。

所以從 Zabbix 4.2 版本后開始支持 TimescaleDB 時序數(shù)據(jù)庫,不過目前成熟度還不高。

綜合對比

d35f0540-9f30-11ed-bfe3-dac502259ad0.png

上面的表格,從開發(fā)語言上看,為了應(yīng)對高并發(fā)和快速迭代的需求,監(jiān)控系統(tǒng)的開發(fā)語言已經(jīng)慢慢從 C 語言轉(zhuǎn)移到 Go。

不得不說,Go 憑借簡潔的語法和優(yōu)雅的并發(fā),在 Java 占據(jù)業(yè)務(wù)開發(fā),C 占領(lǐng)底層開發(fā)的情況下,準(zhǔn)確定位中間件開發(fā)需求,在當(dāng)前開源中間件產(chǎn)品中被廣泛應(yīng)用。

從系統(tǒng)成熟度上看,Zabbix 是老牌的監(jiān)控系統(tǒng):Zabbix 是在 1998 年就出現(xiàn)的,系統(tǒng)功能比較穩(wěn)定,成熟度較高。

而 Prometheus 是最近幾年才誕生的,雖然功能還在不斷迭代更新,但站在巨人的肩膀之上,在架構(gòu)設(shè)計上借鑒了很多老牌監(jiān)控系統(tǒng)的經(jīng)驗。

從數(shù)據(jù)存儲方面來看,Zabbix 采用關(guān)系數(shù)據(jù)庫保存,這極大限制了 Zabbix 采集的性能,而 Prometheus 自研一套高性能的時序數(shù)據(jù)庫,在 V3 版本可以達(dá)到每秒千萬級別的數(shù)據(jù)存儲,通過對接第三方時序數(shù)據(jù)庫擴(kuò)展歷史數(shù)據(jù)的存儲。

從配置復(fù)雜度上看,Prometheus 只有一個核心 server 組件,一條命令便可以啟動,相比而言,其他系統(tǒng)配置相對麻煩。

從社區(qū)活躍度上看,目前 Zabbix 比較活躍,但基本都是國內(nèi)的公司參與,Prometheus 在這方面占據(jù)絕對優(yōu)勢,社區(qū)活躍度雖然不如,但是受到 CNCF 的支持,后期的發(fā)展值得期待。

從容器支持角度看,由于 Zabbix 出現(xiàn)得比較早,當(dāng)時容器還沒有誕生,自然對容器的支持也比較差。

而 Prometheus 的動態(tài)發(fā)現(xiàn)機(jī)制,不僅可以支持 Swarm 原生集群,還支持 Kubernetes 容器集群的監(jiān)控,是目前容器監(jiān)控最好解決方案。

總結(jié)

綜合來看,Zabbix 的成熟度更高,上手更快,但更好的集成導(dǎo)致靈活性較差,問題更大是,監(jiān)控數(shù)據(jù)的復(fù)雜度增加后,Zabbix 做進(jìn)一步定制難度很高,即使做好了定制,也沒法利用之前收集到的數(shù)據(jù)了(關(guān)系型數(shù)據(jù)庫造成的問題)。

Prometheus 基本上是正相反,上手難度大一些,但由于定制靈活度高,數(shù)據(jù)也有更多的聚合可能,起步后的使用難度遠(yuǎn)小于 Zabbix。

但如果已經(jīng)對傳統(tǒng)監(jiān)控系統(tǒng)有技術(shù)積累的話,還是要謹(jǐn)慎考慮更換監(jiān)控。

如果監(jiān)控的是物理機(jī),用 Zabbix 沒毛病,Zabbix 在傳統(tǒng)監(jiān)控系統(tǒng)中,尤其是在服務(wù)器相關(guān)監(jiān)控方面,占據(jù)絕對優(yōu)勢。

甚至環(huán)境變動不會很頻繁的情況下,Zabbix 也會比 Prometheus 好使;但如果是云環(huán)境的話,除非是 Zabbix 玩的非常溜,可以做各種定制,否則還是 Prometheus 吧,畢竟人家就是干這個的。

Prometheus 開始成為主導(dǎo)及容器監(jiān)控方面的標(biāo)配,并且在未來可見的時間內(nèi)被廣泛應(yīng)用。

如果是剛剛要上監(jiān)控系統(tǒng)的話,不用猶豫了,Prometheus 準(zhǔn)沒錯。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Zabbix
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    3327
  • Prometheus
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    1702

原文標(biāo)題:Zabbix 和 Prometheus 到底怎么選?千萬別用錯了

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    ram芯片為什么要設(shè)置片引腳

    RAM芯片設(shè)置片引腳(Chip Select, CS)的主要原因在于實現(xiàn)多設(shè)備共享同一總線時的選擇性訪問和避免數(shù)據(jù)沖突。具體來說,以下幾點是設(shè)置片引腳的主要原因: 選擇性訪問 : 在復(fù)雜的系統(tǒng)中
    的頭像 發(fā)表于 09-18 11:09 ?380次閱讀

    功放和運放到底是什么區(qū)別?

    想請問一下功放和運放到底是什么區(qū)別,感覺只要接一個小負(fù)載,運放的輸出電流也可以很大???到底有什么區(qū)別啊
    發(fā)表于 09-10 07:00

    美國高防服務(wù)器到底怎么

    美國高防服務(wù)器因其強(qiáng)大的硬件設(shè)施、高度的網(wǎng)絡(luò)連接性、豐富的帶寬資源和先進(jìn)的防御技術(shù)而受到全球用戶的歡迎。以下是選擇美國高防服務(wù)器時需要考慮的關(guān)鍵因素,rak部落為您整理發(fā)布美國高防服務(wù)器到底怎么。
    的頭像 發(fā)表于 08-22 09:31 ?149次閱讀

    網(wǎng)絡(luò)監(jiān)控工具Nagios和Zabbix的功能和使用場景

    在現(xiàn)代網(wǎng)絡(luò)管理中,監(jiān)控工具是確保網(wǎng)絡(luò)運行正常、快速發(fā)現(xiàn)和解決問題的關(guān)鍵。本文將詳細(xì)介紹網(wǎng)絡(luò)工程師常用的兩款監(jiān)控工具:Nagios、Zabbix。每款工具都有其獨特的功能和使用場景,了解并掌握這些工具的使用對于網(wǎng)絡(luò)工程師而言至關(guān)重要。
    的頭像 發(fā)表于 08-13 16:28 ?699次閱讀
    網(wǎng)絡(luò)監(jiān)控工具Nagios和<b class='flag-5'>Zabbix</b>的功能和使用場景

    IEC104轉(zhuǎn)MQTT網(wǎng)關(guān)支持Zabbix、阿里云、華為云、亞馬遜AWS、ThingsBoard、Ignition

    網(wǎng)關(guān)BE113作為這一融合過程中的關(guān)鍵設(shè)備,其能夠?qū)EC 104協(xié)議的數(shù)據(jù)轉(zhuǎn)換為MQTT消息,從而輕松接入Zabbix、阿里云、華為云、亞馬遜AWS、ThingsBoard、Ignition等平臺
    的頭像 發(fā)表于 07-25 16:55 ?419次閱讀
    IEC104轉(zhuǎn)MQTT網(wǎng)關(guān)支持<b class='flag-5'>Zabbix</b>、阿里云、華為云、亞馬遜AWS、ThingsBoard、Ignition

    一模擬開關(guān)起什么作用?

    在電子系統(tǒng)中,經(jīng)常需要對多路模擬信號進(jìn)行切換和處理。此時,八一模擬開關(guān)就派上了用場。那么八一模擬開關(guān)究竟起什么作用?它在哪些應(yīng)用場景中發(fā)揮著重要作用呢? 一、八一模擬開關(guān)的作用 八
    的頭像 發(fā)表于 06-21 16:45 ?470次閱讀

    EWSTM8-2201 or 3101安裝說明上有的說“是”,有的說“否”,二者到底有什么區(qū)別?對工程有什么影響?

    the installation. ......... 安裝說明上有的說“是”,有的說“否”,二者到底有什么區(qū)別?對工程有什么影響?
    發(fā)表于 04-28 08:08

    rc串并聯(lián)頻電路誤差原因分析

    RC串并聯(lián)頻電路誤差原因分析 頻電路是一種用于選擇特定頻率信號的電路,在電子設(shè)備中廣泛應(yīng)用。其中,RC串并聯(lián)頻電路是一種常見的頻電路。然而,RC串并聯(lián)
    的頭像 發(fā)表于 03-01 13:58 ?2135次閱讀

    Prometheus新手常犯的6項錯誤你知道嗎?

    這是 Prometheus 使用者經(jīng)常會犯的一個錯,因為 Prometheus 時序是基于多標(biāo)簽的,它非常靈活,有時你想新增一個標(biāo)簽,從而將一個粗粒度的指標(biāo)進(jìn)行拆分,但切記添加的標(biāo)簽的值應(yīng)該做到盡量收斂
    的頭像 發(fā)表于 12-26 10:18 ?568次閱讀
    <b class='flag-5'>Prometheus</b>新手常犯的6項錯誤你知道嗎?

    Prometheus實戰(zhàn)篇:Exporter知識概述

    所有可以向Prometheus提供監(jiān)控樣本數(shù)據(jù)的程序都可以被稱為一個Exporter.而Exporter的一個實例稱為target,如圖下所示
    的頭像 發(fā)表于 12-25 09:57 ?781次閱讀
    <b class='flag-5'>Prometheus</b>實戰(zhàn)篇:Exporter知識概述

    電纜時是按有用功還是按視在功率啊?

    電纜時是按有用功還是按視在功率啊?
    發(fā)表于 12-13 08:04

    經(jīng)常使用的負(fù)載開關(guān),您到底了解多少?

    經(jīng)常使用的負(fù)載開關(guān),您到底了解多少?
    的頭像 發(fā)表于 12-05 17:45 ?657次閱讀
    經(jīng)常使用的負(fù)載開關(guān),您<b class='flag-5'>到底</b>了解多少?

    IGBT柵極驅(qū)動設(shè)計,關(guān)鍵元件該怎么?

    IGBT柵極驅(qū)動設(shè)計,關(guān)鍵元件該怎么
    的頭像 發(fā)表于 11-30 18:02 ?550次閱讀
    IGBT柵極驅(qū)動設(shè)計,關(guān)鍵元件該怎么<b class='flag-5'>選</b>?

    電機(jī)的過載能力是怎么的?

    電機(jī)的過載能力又是怎么的呢?
    發(fā)表于 11-20 07:18

    Prometheus的基本原理與開發(fā)指南

    ? 導(dǎo)讀??? ? 本文由梯度科技云管研發(fā)部高級工程師周宇明撰寫,共分為7章,緊密圍繞Prometheus的基本原理與開發(fā)指南展開介紹: 監(jiān)控系統(tǒng)概述 Prometheus入門 PromQL入門
    的頭像 發(fā)表于 11-09 10:45 ?1017次閱讀
    <b class='flag-5'>Prometheus</b>的基本原理與開發(fā)指南