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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

Zabbix和Prometheus到底怎么選

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

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

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

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

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

Prometheus

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

Kubernetes 是 Google Borg 系統(tǒng)的開源實現(xiàn),于此對應 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)絡參數(shù)以及服務器健康性和完整性的軟件。使用靈活的通知機制,允許用戶為幾乎任何事件配置基于郵件的告警。

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

架構(gòu)對比

Prometheus

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

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

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

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

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

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

Zabbix

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

Zabbix 由 2 部分構(gòu)成,Zabbix Server 與可選組件 Zabbix Agent。Zabbix Server 可以通過 SNMP,Zabbix Agent,ping,端口監(jiān)視等方法提供對遠程服務器/網(wǎng)絡狀態(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 主要負責采集數(shù)據(jù)并通過主動或者被動的方式采集數(shù)據(jù)發(fā)送到 Server/Proxy,除此之外,為了擴展監(jiān)控項,Agent 還支持執(zhí)行自定義腳本。

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

Zabbix Server 將收集的監(jiān)控數(shù)據(jù)存儲到 Zabbix Database 中。Zabbix Database 支持常用的關(guān)系型數(shù)據(jù)庫,如果 MySQL、PostgreSQL、Oracle 等,默認是 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ā)語言上看,為了應對高并發(fā)和快速迭代的需求,監(jiān)控系統(tǒng)的開發(fā)語言已經(jīng)慢慢從 C 語言轉(zhuǎn)移到 Go。

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

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

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

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

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

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

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

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

總結(jié)

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

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

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

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

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

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

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

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

    關(guān)注

    0

    文章

    25

    瀏覽量

    3439
  • Prometheus
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    1774

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    從零入門Prometheus:構(gòu)建企業(yè)級監(jiān)控與報警系統(tǒng)的最佳實踐指南

    測試環(huán)境 prometheus-2.26.0.linux-amd64.tar.gz下載地址:https://github.com/prometheus/prometheus/releases
    的頭像 發(fā)表于 02-10 11:28 ?273次閱讀
    從零入門<b class='flag-5'>Prometheus</b>:構(gòu)建企業(yè)級監(jiān)控與報警系統(tǒng)的最佳實踐指南

    云端監(jiān)控新體驗,打造強大的 Zabbix 主機監(jiān)控解決方案

    前言**** 華為云服務器 Flexus X 實例,以革命性柔性算力與卓越性能,重塑云端監(jiān)控體驗。攜手 Zabbix 主機監(jiān)控解決方案 ,為您打造前所未有的強大監(jiān)控網(wǎng)絡。在 828 華為云企業(yè)上云節(jié)
    的頭像 發(fā)表于 01-07 17:23 ?270次閱讀
    云端監(jiān)控新體驗,打造強大的 <b class='flag-5'>Zabbix</b> 主機監(jiān)控解決方案

    介紹6款開源免費的網(wǎng)絡監(jiān)控工具

    維工程師收藏。 一、zabbix Zabbix 是一款開源的、成熟的、企業(yè)級的網(wǎng)絡監(jiān)控解決方案。Zabbix可以監(jiān)控各種網(wǎng)絡參數(shù),保證服務器系統(tǒng)的安全運營;并提供靈活的通知機制以讓系統(tǒng)管理員快速定位/解決存在的各種問題。 ? 二
    的頭像 發(fā)表于 11-25 15:53 ?1353次閱讀
    介紹6款開源免費的網(wǎng)絡監(jiān)控工具

    如何用zabbix監(jiān)控網(wǎng)站性能

    1. Zabbix簡介 Zabbix是一個企業(yè)級的開源監(jiān)控解決方案,用于監(jiān)控IT服務的可用性和性能。它提供了數(shù)據(jù)收集、數(shù)據(jù)存儲、故障通知和報告等功能。Zabbix使用靈活的配置,可以監(jiān)控各種網(wǎng)絡參數(shù)
    的頭像 發(fā)表于 11-08 10:55 ?360次閱讀

    zabbix支持的設備類型和協(xié)議

    Zabbix支持的設備類型 Zabbix能夠監(jiān)控各種類型的設備,包括但不限于: a) 服務器:Zabbix可以監(jiān)控物理服務器和虛擬服務器,如VMware、Hyper-V和KVM等。 b) 網(wǎng)絡設備
    的頭像 發(fā)表于 11-08 10:53 ?882次閱讀

    zabbix的擴展功能與插件介紹

    Zabbix是一個開源的監(jiān)控解決方案,用于監(jiān)控網(wǎng)絡和應用程序的性能和健康狀況。它具有強大的功能,可以監(jiān)控IT基礎設施,包括服務器、虛擬機、網(wǎng)絡設備等。 1. 擴展功能 1.1 監(jiān)控項和觸發(fā)器
    的頭像 發(fā)表于 11-08 10:50 ?717次閱讀

    使用zabbix監(jiān)控云服務器的方法

    1. 了解Zabbix Zabbix是一個企業(yè)級的開源監(jiān)控解決方案,用于監(jiān)控IT基礎設施,包括硬件、軟件和服務。它提供了數(shù)據(jù)收集、數(shù)據(jù)存儲、數(shù)據(jù)處理和可視化功能,以及靈活的通知機制。 2. 準備
    的頭像 發(fā)表于 11-08 10:47 ?504次閱讀

    如何利用zabbix進行網(wǎng)絡監(jiān)控

    了解Zabbix的基本概念 在開始使用Zabbix進行網(wǎng)絡監(jiān)控之前,我們需要了解一些基本概念。Zabbix主要由以下幾個部分組成: Zabbix Server:負責收集監(jiān)控數(shù)據(jù)并存儲在
    的頭像 發(fā)表于 11-08 10:39 ?832次閱讀

    zabbix監(jiān)控系統(tǒng)使用指南

    1. Zabbix簡介 Zabbix是一個企業(yè)級的開源監(jiān)控解決方案,用于監(jiān)控IT基礎設施,包括網(wǎng)絡、服務器、虛擬機和應用程序。它可以實時監(jiān)控硬件、軟件、網(wǎng)絡和服務器的健康狀況,以及收集各種指標,幫助
    的頭像 發(fā)表于 11-08 10:37 ?885次閱讀

    zabbix監(jiān)控系統(tǒng)的安裝與配置

    Zabbix是一個開源的監(jiān)控解決方案,用于監(jiān)控網(wǎng)絡和應用程序的健康狀況和性能。它提供了數(shù)據(jù)收集、監(jiān)控、分析和可視化功能,適用于各種規(guī)模的IT基礎設施。 1. 安裝Zabbix 1.1 安裝前的準備
    的頭像 發(fā)表于 11-08 10:34 ?513次閱讀

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

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

    美國高防服務器到底怎么

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

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

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

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

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

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

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