Prometheus和Tivoli監(jiān)控平臺對比分析_第1頁
Prometheus和Tivoli監(jiān)控平臺對比分析_第2頁
Prometheus和Tivoli監(jiān)控平臺對比分析_第3頁
Prometheus和Tivoli監(jiān)控平臺對比分析_第4頁
Prometheus和Tivoli監(jiān)控平臺對比分析_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、 Prometheus和Tivoli監(jiān)控平臺對比分析 【摘要】從數(shù)據(jù)采集、數(shù)據(jù)存儲、HA、監(jiān)控對象、流程、事件管理、管理部署復雜度、架構等多方面進行比較分析。背景目前很多大中型企業(yè)如國內(nèi)大銀行(中、農(nóng)、工、建等)、某些股份(招行、光大、中信銀行等)、城商行銀行用了傳統(tǒng)的監(jiān)控軟件如IBM Tivoli Monitoring(ITM)等,但是隨著廠商支持力度減弱,同時為了滿足國家層面的國產(chǎn)化要求,大家紛紛考慮采用開源Zabbix或Prometheus替代,現(xiàn)就從數(shù)據(jù)采集、數(shù)據(jù)存儲、HA、監(jiān)控對象、流程、事件管理、管理部署復雜度、架構等幾個方面進行比較分析。Tivoli 和 Prometheus 比

2、較IBM Tivoli Monitoring 軟件的基本體系結構由 Tivoli Enterprise Portal Client 和三個服務器組件((Tivoli Data Warehouse、Tivoli Enterprise Portal Server 和 Tivoli Enterprise Monitoring Server)組成??梢詳U展基本體系結構以與諸如 IBM Tivoli Netcool/OMNIbus 或 Tivoli Enterprise Console 之類的事件服務器和 Jazz for Service Management 組件及其 IBM Tivoli Monit

3、oring 擴展進行集成。Jazz for Service Management 將開放服務生命周期協(xié)作 (OSLC) 社區(qū)的用于鏈接數(shù)據(jù)和其他共享集成服務(包括儀表板、報告和安全服務)的開放規(guī)范組合到一起。以下 IBM Tivoli Monitoring 組件與 Jazz for Service Management 組件配合使用:Prometheus是由SoundCloud開發(fā)的開源監(jiān)控報警系統(tǒng)和時序列數(shù)據(jù)庫,屬于輕量級監(jiān)控產(chǎn)品。從字面上理解,Prometheus由兩個部分組成,一個是監(jiān)控報警系統(tǒng)(Alert Manager),另一個是自帶的時序數(shù)據(jù)庫(TSDB)。2016年,由Googl

4、e發(fā)起的Linux基金會旗下的原生云基金會(Cloud Native Computing Foundation)將Prometheus納入其第二大開源項目。Prometheus在開源社區(qū)也十分活躍,在GitHub上擁有兩萬多Star,并且系統(tǒng)每隔一兩周就會有一個小版本的更新。架構比較Prometheus架構通過pull方式采集數(shù)據(jù)不同Exporter和putgateway數(shù)據(jù),同時提供Push方式將采集數(shù)據(jù)push給gateway;Prometheus server通過Push方式將告警推送給AlertManager。Tivoli 架構開發(fā)語言比較Tivoli采用JAVA平臺,遵循J2EE標準

5、,在系統(tǒng)監(jiān)測技術中主要采用WMI,對各操作系統(tǒng)、數(shù)據(jù)庫、中間件支持比較全面。Prometheus為了應對高并發(fā)和快速迭代的需求,采用Go語言進行開發(fā)。Go憑借簡潔的語法和優(yōu)雅的并發(fā),在Java占據(jù)業(yè)務開發(fā),C占領底層開發(fā)的情況下,準確定位中間件開發(fā)需求,在當前開源中間件產(chǎn)品中被廣泛應用。Golang效率比 Java 高同時也支持跨平臺運行。產(chǎn)品成熟度比較Tivoli應用于高端客戶和運營商級別客戶。具備非常成熟的穩(wěn)定性,具備大規(guī)模網(wǎng)絡運行案例。PrometheusPrometheus是最近幾年才誕生的,雖然功能還在不斷迭代更新,但站在巨人的肩膀之上,在架構設計上借鑒了很多老牌監(jiān)控系統(tǒng)的經(jīng)驗。系統(tǒng)

6、可擴展性比較Tivoli通過Agent Builder方式定制客戶化監(jiān)控需求,擴展監(jiān)控功能。支持Shell、Python等。PrometheusPrometheus則定義了一套監(jiān)控數(shù)據(jù)規(guī)范,并通過各種exporter擴展系統(tǒng)采集能力。靈活簡單實現(xiàn)各種數(shù)據(jù)類型監(jiān)控需求。支持Python、Golang。數(shù)據(jù)存儲比較TivoliTivoli主要采用關系型數(shù)據(jù)庫保存采集的實時性能數(shù)據(jù)和歷史性能數(shù)據(jù),相對而言限制了Tivoli采集的性能。Prometheus而Prometheus自研一套高性能的時序數(shù)據(jù)庫,在V3版本可以達到每秒千萬級別的數(shù)據(jù)存儲,通過對接第三方時序數(shù)據(jù)庫擴展歷史數(shù)據(jù)的存儲;容器支持度支

7、持Tivoli由于Tivoli產(chǎn)品出現(xiàn)較早,當時容器還未誕生,因此對容器的支持力度有限。PrometheusPrometheus的動態(tài)發(fā)現(xiàn)機制,不僅可以支持swarm原生集群,還支持Kubernetes容器集群的監(jiān)控,是目前容器監(jiān)控最好解決方案。伴隨著容器的發(fā)展,Prometheus開始成為主導及容器監(jiān)控方面的標配,并且在未來可見的時間內(nèi)被廣泛應用。想要監(jiān)控 docker 需要用到名為cadvisor 的工具,是谷歌開源的,它用于收集正在運行的容器資源使用和性能信息,需要在要監(jiān)控的服務器上部署 cadvisor,直接用 docker 去啟動就完了 。容器啟動后也是會暴露一個指標接口 ( 默認是

8、8080/metrics ) 下一步就是加入到 Pemetheus 中進行監(jiān)控 即可。管理/部署復雜度比較TivoliITM監(jiān)控組件主要包括TEPS,TEMS,TEMA,ISM等組件;Netcool/OMNIbus事件處理平臺主要包括OMNIbus Server,Probe,Gateway等組件;JaZZ包括WebSpere Server,TCR, DB2等組件,部署配置相對復雜。Tivoli需要安裝基于java的客戶端管理組件,管理相對復雜。PrometheusPrometheus只有一個核心server組件,一條命令便可以啟動,采集端接收滿足數(shù)據(jù)格式的監(jiān)控數(shù)據(jù),部署相對簡單。Prometh

9、eus通過腳本/配置文件方式完成配置。高可用性比較Tivoli通過“架構 - Tivoli”可知作為非常成熟的監(jiān)控產(chǎn)品,Tivoli可以根據(jù)不同監(jiān)控場景,不同的監(jiān)控規(guī)模,設計適合監(jiān)控需求的高可用部署架構。Prometheus由Improbable發(fā)布了開源的項目 Thanos項目,它可以將現(xiàn)有的Prometheus部署無縫轉換成一個統(tǒng)一的監(jiān)控系統(tǒng),配套一個不受限制的歷史數(shù)據(jù)存儲,架構如下:監(jiān)控方式對比 主機TivoliTivoli產(chǎn)品族提供代理程序和遠程監(jiān)控兩種監(jiān)控方式。根據(jù)主機類型、中間件類型、數(shù)據(jù)庫類型選擇相應的監(jiān)控代理程序部署在監(jiān)控對象所在的服務器上,Tivoli監(jiān)控代理提供豐富的監(jiān)控指

10、標,精細的監(jiān)控顆粒度,滿足95%以上監(jiān)控需求。PrometheusPrometheus主要通過不同類型的exporter滿足各種監(jiān)控需求,exporter具有輕量級,按需定制,高靈活性,部署簡單等特性。成熟產(chǎn)品有 N ode_exporter。監(jiān)控方式對比-定制開發(fā)TivoliTivoli通過UA 實現(xiàn)接口擴展及無代理方式UA 支持 (http, file, ODBC, post, script, SNMP, socket, API 等 ), 可為機房環(huán)境、安保等特定系統(tǒng)提供擴展。Prometheus提供了 script_exporter 執(zhí)行腳本實現(xiàn)定制化開發(fā) ,它會收集所要監(jiān)控腳本的執(zhí)行結

11、果和執(zhí)行花費的時間。監(jiān)控方式對比- 網(wǎng)絡可達性TivoliTivoli提供了專用產(chǎn)品ISM(全稱Internetservice management*),可以提供界面進行ICMPpin監(jiān)控。Prometheus提供 blackbox_exporter 可以實時監(jiān)控Web服務的狀態(tài),支持http和https,它還可以采集TCP、DNS、ICMP、SMTP相關的數(shù)據(jù)。舉例說一下利用prometheus的blackbox_exporter進行ICMP測試相關代碼塊添加到Prometheus 配置文件內(nèi)對應blackbox.yml文件的 icmp 模塊如下job_name: blackbox00_pi

12、ng_idc_ipscrape_interval: 10smetrics_path: /probeparams:module: icmp #pingstatic_configs:targets: 1x.xx.xx.xx labels:group: xxnginx 虛擬 IPrelabel_configs:source_labels: addressregex: ( .* )( :80 ) ?target_label: _param_targetreplacement: $1source_labels: _param_target regex: ( .* )target_label: pingr

13、eplacement: $1source_labels: regex: .*target_label:addressreplacement: 1x.xxx.xx.xx:9115運行后的icmp截圖如下:監(jiān)控方式對比- 日志Tivoli有現(xiàn)成的日志監(jiān)控agent,只要簡單配置即可實現(xiàn)日志文件(包括Linux、Unix、Windows平臺)監(jiān)控。Prometheus沒有現(xiàn)成的日志監(jiān)控組件,建議單獨搭建大數(shù)據(jù)平臺進行日志分析。監(jiān)控方式對比-數(shù)據(jù)庫、中間件Tivoli有成熟的Agent for DB2 ,Agent for Oracle, Agent For Sybase, Agent for MQ

14、。Prometheus有監(jiān)控Mysql、Oracle、Mysql、PostgresSQL、Redis、MQ的現(xiàn)成expo rter ,但是沒有現(xiàn)成的DB2和Sybase的惡性porter,需要定制開發(fā)。監(jiān)控方式對比- 網(wǎng)絡設備TivoliTivoli產(chǎn)品可以實時監(jiān)控網(wǎng)絡狀況,網(wǎng)絡拓撲自動發(fā)現(xiàn)(3層基于IP的拓撲、2層物理連接拓撲、MPLS 拓撲、以設備型號為粒度的發(fā)現(xiàn)技術代理),關聯(lián)和管理事件及簡單網(wǎng)絡管理協(xié)議(SNMP)的中斷,監(jiān)視網(wǎng)絡的健康狀態(tài)及采集網(wǎng)絡性能數(shù)據(jù),提供完善的網(wǎng)絡監(jiān)控方案,實現(xiàn)集中化、遠程的網(wǎng)絡設備、線路的管理和維護,產(chǎn)品包括ITNM。Tivoli Network Mange

15、r 通過基于拓撲的根源故障分析 RCA 引擎,自動定位根源故障事件,消除事件風暴危害。PrometheusSnmp_exporter可以用于監(jiān)控網(wǎng)絡設備,沒有網(wǎng)絡發(fā)現(xiàn)能力,管理界面主要依賴命令行,效率較低。不提供Syslog、Snamp Trap日志處理模塊,可以搭建大數(shù)據(jù)分析平臺進行syslog、Snamp trap日志分析。prometheus 監(jiān)控交換機流量1. 手動驗證能否獲取交換機數(shù)據(jù)用prometheus 監(jiān)控交換機流量首先需要確定安裝prometheus 的機器已經(jīng)被交換機允許獲取他的數(shù)據(jù)。命令如下:以交換機版本為v2c為例:snmpwalk -v 2c 2 -c public

16、ifDescr 獲取網(wǎng)卡信息其中-v是指版本(SNMP主要有SNMPv1、SNMPV2c、SNMPv3幾種最常用的版本。),-c 是指密鑰(Community:團體名,用于Agent與NMS之間的認證,由交換機提供)。如果返回數(shù)據(jù),則說明可以進行下一步通過prometheus獲取數(shù)據(jù)了,數(shù)據(jù)如下:2. 安裝 snmp 插件wget/prometheus/snmp_exporter/releases/download/v0.13.0/snmp_exporter-0.13.0.linux-amd64.tar.gz解壓并打開snmp.yml 根據(jù)需要進行修改tar -xzvf snmp_export

17、er-0.13.0.linux-amd64.tar.gzcd snmp_exporter-0.13.0.linux-amd64/vim snmp.yml由于生產(chǎn)上的交換機,一般都有認證才能對交換機進行訪問,所以需要交換機提供Community以及版本號,這兩個需要在snmp.yml進行配置。修改如下:找到if_mib模塊,如下圖:找到if_mib模塊最下面,加入 version(以版本為v2c為例子),以及認證community,如下圖:根據(jù)我的經(jīng)驗,可能會遇到這樣一個問題,你要監(jiān)控的所有交換機的認證community可能不一樣,而我們不能在配置文件里在community后面加好幾個認證碼,那

18、么解決辦法是:1、將 if_mib 模塊的所有配置再復制一遍,改一下模塊的名字,如改成 if_mib2, 相應的改一下 version 和 community 即可。2、啟動snmp_exporter。3、./snmp_exporter -config.file=snmp.yml。4、驗證snmp監(jiān)控數(shù)據(jù)。5、 curl http:/ 安裝 snmp_exporter 的機器的 IP:9116/snmp?target= 安裝 snmp_exporter 的機器的 IP。3. 配置prometheus的配置文件添加關于snmp的配置,如下:其中紅線化掉的是安裝snmp_exporter的機器的i

19、p,而9116,是snmp_exporter的端口。如果出現(xiàn)多個community的情況(如上面所說),只需要再加一個job即可,如下:到目前為止,prometheus通過 snmp_exporter 抓取交換機流量數(shù)據(jù)已完成。監(jiān)控方式對比 應用程序TivoliIBM APM通過非侵入式的用戶性能監(jiān)控,提供預測性分析、專家級事務追蹤,幫助減少宕機、提供性能并優(yōu)化利用率。業(yè)務指標監(jiān)控通過定制實現(xiàn)。Prometheus通過JMX_exporter監(jiān)控基于JVM 的應用程序。業(yè)務指標也只能靠定制。監(jiān)控方式對比 硬件監(jiān)控TivoliTivoli沒有現(xiàn)成的硬件監(jiān)控產(chǎn)品。PrometheusPrometh

20、eus提供 ipmi_exporter 、 zhmc-prometheus-exporter 、Dell Hardware 、 IoT Edison exporter 。事件管理比較Tivoli自動化壓縮、信息豐富、管理處理、復合過濾、分角色呈現(xiàn)、自動化通知, Omnibus 采用內(nèi)存數(shù)據(jù)庫技術,處理效率很高,從容應對海量告警,提供界面進行配置??绻δ苡虻牟渴饘τ?Omnibus 是常用方式,而且根據(jù)事件量大小可以分層擴展配置。Prometheus有專門的告警組件Alertmanager,可以實現(xiàn)告警抑制、分組、收斂、靜默(維護期)、告警轉發(fā)(郵件、短信、微信、SNMPTrap等),只能通過編

21、輯腳本yml方式進行配置。舉例說明:Tivoli配置告警策略:1、Prometheus告警策略配置指定服務監(jiān)聽alertmanager端口及報警規(guī)則目錄vim /usr/ local /prometheus/prometheus.yml_#配置alertmanager_信息alerting:alertmanagers:static_configs:targets: localhost:9093 _#_配置告警規(guī)則目錄rule_files:/usr/ local /prometheus/rules/*.rules2、Rules策略配置創(chuàng)建一個服務down的報警規(guī)則vim /usr/ local

22、/prometheus/rules/service_down.rulesgroups:name: ServiceStatus#規(guī)則組名稱rules:alert: ServiceStatusAlert _#_單個規(guī)則的名稱expr: up = 0#匹配規(guī)則, up=0for : 10 s _#_持續(xù)時間labels: _#_標簽project: zhidaoAPP#自定義lablesannotations: _#_告警正文summary: Instance $labels.instance downdescription: $labels.instance of job $labels.job

23、has been down for more than 1 minutes.3、Alertmanager配置vim /usr/local/alertmanager/alertmanager.yml_#全局配置,_比如配置發(fā)件人global :resolvetimeout: 5 m#處理超時時間,默認為5min_smtpsmarthost: :25#郵箱smtp_服務器代理smtpfrom: z zz qq .com#_發(fā)送郵箱名稱smtp_authusername: z zz qq .com#_郵箱名稱smtp_authpassword: 12345678xxOO#_郵箱密碼或授權碼_#定義模

24、板信息,可以自定義html模板,_發(fā)郵件的時候用自己定義的模板內(nèi)容發(fā)templates:template/*.tmpl_#定義路由樹信息,這個路由可以接收到所有的告警,還可以繼續(xù)配置路由,比如project: zhidaoAPP(prometheus告警規(guī)則中自定義的lable)發(fā)給誰,project: baoxian_的發(fā)給誰route:groupby: alertname #_報警分組依據(jù)groupwait: 10 s#_最初即第一次等待多久時間發(fā)送一組警報的通知groupinterval: 60 s#_在發(fā)送新警報前的等待時間repeatinterval: 1 h#發(fā)送重復警報的周期_對于email配置中,此項不可以設置過低,否則將會

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論