百分點大數(shù)據(jù)技術(shù)團隊:萬億級大數(shù)據(jù)監(jiān)控平臺建設(shè)實踐
【數(shù)據(jù)猿導讀】 本文主要從監(jiān)控系統(tǒng)整體設(shè)計和技術(shù)方案落地兩大部分闡述了大數(shù)據(jù)監(jiān)控平臺的建設(shè)過程,旨在幫助大家了解監(jiān)控系統(tǒng)設(shè)計思路,對于監(jiān)控系統(tǒng)建設(shè)提供專業(yè)指導

編者按
隨著互聯(lián)網(wǎng)業(yè)務(wù)的迅速發(fā)展,用戶對系統(tǒng)的要求也越來越高,而做好監(jiān)控為系統(tǒng)保駕護航,能有效提高系統(tǒng)的可靠性、可用性及用戶體驗。監(jiān)控系統(tǒng)是整個運維環(huán)節(jié)乃至整個項目及產(chǎn)品生命周期中最重要的一環(huán)。百分點大數(shù)據(jù)技術(shù)團隊基于大數(shù)據(jù)平臺項目,完成了百億流量、約3000+臺服務(wù)器集群規(guī)模的大數(shù)據(jù)平臺服務(wù)的監(jiān)控,沉淀了一套適合自身業(yè)務(wù)和技術(shù)特點的監(jiān)控架構(gòu)設(shè)計思路、設(shè)計方法和落地方案。
本文主要從監(jiān)控系統(tǒng)整體設(shè)計和技術(shù)方案落地兩大部分闡述了大數(shù)據(jù)監(jiān)控平臺的建設(shè)過程,旨在幫助大家了解監(jiān)控系統(tǒng)設(shè)計思路,對于監(jiān)控系統(tǒng)建設(shè)提供專業(yè)指導。
一、整體設(shè)計
在整體監(jiān)控設(shè)計中,百分點大數(shù)據(jù)團隊采用“去中心化”、“服務(wù)透明化”的設(shè)計思路,同時具備極強的擴展能力、自動化能力和高可靠性設(shè)計思路。
去中心化設(shè)計:由于要同時監(jiān)控18個異地的數(shù)據(jù)中心,開始百分點大數(shù)據(jù)團隊考慮過18個中心各自監(jiān)控,但是整體性差、不直觀且維護成本高。綜合考慮了鏈路帶寬、監(jiān)控工具性能和數(shù)據(jù)量多維度指標,百分點大數(shù)據(jù)團隊決定只在一個主中心建立從監(jiān)控數(shù)據(jù)采集到數(shù)據(jù)可視化的能力,其它中心只是監(jiān)控數(shù)據(jù)的輸送者,最終形成“1 Server+18 Slaves”覆蓋18個數(shù)據(jù)中心的監(jiān)控框架。
服務(wù)透明化設(shè)計:通過將每個組件的存儲、處理、查詢能力標準量化,保證穩(wěn)定可控。具體來說,對每個組件容量、每項性能指標閾值進行設(shè)計,并將組件的能力指標和當前的狀態(tài)以可視化的形式展現(xiàn),通過標準值建立預警機制和對應(yīng)處理措施,過程對于用戶是無感知的。
擴展及自動化能力設(shè)計:接入一個數(shù)據(jù)中心的監(jiān)控數(shù)據(jù)并完成監(jiān)控指標的調(diào)試,在0.5天即可完成,而且此設(shè)計能夠無縫集成多個數(shù)據(jù)中心的監(jiān)控數(shù)據(jù)。
1.1監(jiān)控設(shè)計方法
評價一個監(jiān)控系統(tǒng)的好壞最重要三要素是:監(jiān)控粒度、監(jiān)控指標完整性、監(jiān)控實時性,從系統(tǒng)分層體系可以把監(jiān)控系統(tǒng)分為三個層次:
業(yè)務(wù)層:業(yè)務(wù)系統(tǒng)本質(zhì)目的是為了達成業(yè)務(wù)目標,因此監(jiān)控業(yè)務(wù)系統(tǒng)是否正常最有效的方式是從數(shù)據(jù)上監(jiān)控業(yè)務(wù)目標是否達成。對業(yè)務(wù)運營數(shù)據(jù)進行監(jiān)控,可及時發(fā)現(xiàn)程序bug或業(yè)務(wù)邏輯設(shè)計缺陷,比如數(shù)據(jù)趨勢、流量大小等。業(yè)務(wù)系統(tǒng)的多樣性決定了應(yīng)由各個業(yè)務(wù)系統(tǒng)實現(xiàn)監(jiān)控指標開發(fā)。
平臺層:對應(yīng)用的整體運行狀況進行了解、把控,如果將應(yīng)用當成黑盒子,開發(fā)和運維就無從知曉應(yīng)用當前狀態(tài),不能及時發(fā)現(xiàn)潛在故障。應(yīng)用監(jiān)控不應(yīng)局限于業(yè)務(wù)系統(tǒng),還包括各種中間件和計算引擎,如ClickHouse、ElasticSearch、redis、zookeeper、kafka等。常用監(jiān)控數(shù)據(jù):JVM堆內(nèi)存、GC、CPU使用率、線程數(shù)、TPS、吞吐量等,一般通過抽象出的統(tǒng)一指標收集組件,收集應(yīng)用級指標。
系統(tǒng)層:實時掌握服務(wù)器工作狀態(tài),留意性能、內(nèi)存消耗、容量和整體系統(tǒng)健康狀態(tài),保證服務(wù)器穩(wěn)定運行。監(jiān)控指標:內(nèi)存、磁盤、CPU、網(wǎng)絡(luò)流量、系統(tǒng)進程等系統(tǒng)級性能指標。
在重要監(jiān)控指標項章節(jié),我們將詳細介紹每一層級組件的監(jiān)控指標含義和閾值等。
1.2 系統(tǒng)設(shè)計
工欲善其事必先利其器,根據(jù)對一些監(jiān)控產(chǎn)品的調(diào)研以及對監(jiān)控的分層介紹、所需解決的問題,可以發(fā)現(xiàn)監(jiān)控系統(tǒng)從收集到分析的流程架構(gòu):采集-存儲-分析-展示-告警。
數(shù)據(jù)采集: 通過SNMP、Agent、ICMP、SSH、IPMI等協(xié)議對系統(tǒng)進行數(shù)據(jù)采集。
數(shù)據(jù)存儲:主要存儲在MySQL上,也可以存儲在其他數(shù)據(jù)庫服務(wù)。
數(shù)據(jù)分析:當事后需要復盤分析故障時,監(jiān)控系統(tǒng)能給我們提供圖形和時間等相關(guān)信息,方面確定故障所在。
數(shù)據(jù)展示: Web界面展示(移動APP、java_php開發(fā)一個web界面也可以)。
監(jiān)控報警:電話報警、郵件報警、微信報警、短信報警、報警升級機制等(無論什么報警都可以)。
報警處理:當接收到報警,我們需要根據(jù)故障的級別進行處理,比如:重要緊急、重要不緊急等。根據(jù)故障的級別,配合相關(guān)的人員進行快速處理。
在整個監(jiān)控方案需求中整理了基礎(chǔ)組件、大數(shù)據(jù)組件共12個,每種組件又包含多個監(jiān)控指標項,約519項。為便于查看過去90天的監(jiān)控歷史數(shù)據(jù),全部采集的監(jiān)控數(shù)據(jù)周期保存90天,90天的數(shù)據(jù)量在800G左右,每項指標根據(jù)其特性采集頻率分為15s、30s?;诒O(jiān)控需求的分析結(jié)果,百分點大數(shù)據(jù)團隊從源數(shù)據(jù)采集,存儲并針對性的做了數(shù)據(jù)清洗、分析等開發(fā)工作,最后匯總展示到監(jiān)控平臺中提供告警和預警的功能,監(jiān)控平臺提供非常炫酷的頁面展示還可投放到大屏上。
二、技術(shù)方案
2.1技術(shù)架構(gòu)
監(jiān)控技術(shù)方案通過實時數(shù)據(jù)采集、實時數(shù)據(jù)處理可視化和高可用技術(shù)等,實現(xiàn)了多種大數(shù)據(jù)平臺組件的性能指標的監(jiān)控。監(jiān)控系統(tǒng)由Zabbix、Prometheus + Grafana這兩部分構(gòu)成。Zabbix 負責服務(wù)器的硬件監(jiān)控,Prometheus+Grafana負責集群狀態(tài)的監(jiān)控。
Zabbix通過分布式主動監(jiān)控方式,對服務(wù)器進行硬件監(jiān)控,Zabbix Agent通過向Zabbix Proxy請求獲取監(jiān)控項列表來定期發(fā)送采集到的新值給Zabbix Proxy,Proxy將多個監(jiān)控設(shè)備的信息先緩存到本地,然后傳輸?shù)剿鶎俚腪abbix Server。
Prometheus通過集成各類Exporter來采集組件指標,如上圖所示,通過Node Exporter、Clickhouse Exporter等第三方Exporter來實現(xiàn)對應(yīng)組件的數(shù)據(jù)采集,同時通過Jmx Exporter來實現(xiàn)對Oss Tomcat、HBase、業(yè)務(wù)系統(tǒng)、數(shù)據(jù)流的數(shù)據(jù)采集工作,并將其數(shù)據(jù)存儲在本地時間序列數(shù)據(jù)庫中。
Grafana通過接口調(diào)用和指標編輯來讀取Prometheus所采集的數(shù)據(jù)進行可視化展示。
2.2技術(shù)選型
(1)Zabbix
Zabbix是一個基于Web界面提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級開源解決方案,它能監(jiān)視各種網(wǎng)絡(luò)參數(shù),保證服務(wù)器系統(tǒng)的安全運營,并提供柔軟的通知機制以讓系統(tǒng)管理員快速定位/解決存在的各種問題,是企業(yè)自動化運維監(jiān)控的利器。Zabbix靈活的設(shè)計為用戶提供了易用的二次開發(fā)接口,讓用戶既可以使用Zabbix本身提供的功能,又可以自定義更多的監(jiān)控項功能,如硬件監(jiān)控、操作系統(tǒng)、服務(wù)進程,以及網(wǎng)絡(luò)設(shè)備等。值得一提的是,它所提供的Proxy分布式架構(gòu)能夠在監(jiān)控多個遠程區(qū)域設(shè)備的同時,分擔server的監(jiān)控壓力且不增加系統(tǒng)的維護復雜度,為項目實施提供便利。
高可用設(shè)計圖中提到,Zabbix通過Proxy收集項目中所有服務(wù)器的硬件監(jiān)控指標數(shù)據(jù)并進行預警和展示,通過Ansible批量在服務(wù)器端安裝Zabbix Agent 并啟動,由客戶端主動發(fā)起請求向Zabbix Server進行注冊,自動完成服務(wù)器在Zabbix Web的配置工作。
(2)Prometheus
Prometheus是由前Google員工2015年正式發(fā)布的開源監(jiān)控系統(tǒng),采用Go語言開發(fā),它不僅有一個很酷的名字,同時還有Google與K8s的強力支持,開源社區(qū)異?;鸨?,在2016年加入云原生基金會,是繼K8s后托管的第二個項目,未來前景被相當看好。數(shù)據(jù)采集基于Pull模式,架構(gòu)簡單,不依賴外部存儲,單個服務(wù)器節(jié)點可直接工作,二進制文件啟動即可,屬于輕量級的Server,便于遷移和維護。同時其監(jiān)控數(shù)據(jù)直接存儲在Prometheus Server本地的時序數(shù)據(jù)庫中,單個實例可以處理數(shù)百萬的Metrics。Prometheus靈活的數(shù)據(jù)模型和強大的數(shù)據(jù)查詢語句能夠在對服務(wù)內(nèi)部進行詳細狀態(tài)監(jiān)控的同時還支持數(shù)據(jù)的內(nèi)部查詢,幫助快速定位和診斷問題,非常適用于面向服務(wù)架構(gòu)的監(jiān)控。
在技術(shù)架構(gòu)中,每個Prometheus負責拉取該區(qū)域所有組件的指標數(shù)據(jù)并存儲在本地,通過Prometheus UI界面可以查詢該區(qū)域所需指標是否收集到數(shù)據(jù)、數(shù)據(jù)是否正常,從而判斷數(shù)據(jù)采集端數(shù)據(jù)收集狀態(tài)。
(3)Grafana
Grafana是一個可視化儀表盤,通過整合每個區(qū)域Prometheus所采集的數(shù)據(jù)實現(xiàn)對該區(qū)域的集群監(jiān)控目的,并將其美觀、直接地展示給使用者。通過Grafana的Datasource鏈接Prometheus url,并對接入的數(shù)據(jù)進行分組、過濾、聚合等邏輯運算來達到在面板中直觀展示指標含義的目的。
2.3非功能技術(shù)實現(xiàn)
在大型的IT架構(gòu)環(huán)境中,系統(tǒng)的組成部分跨區(qū)域分布在18個不同城市,跨節(jié)點、多IDC、業(yè)務(wù)類型復雜、業(yè)務(wù)需求多樣,因此監(jiān)控系統(tǒng)要能滿足業(yè)務(wù)中不斷變化的需求。在這種環(huán)境中構(gòu)建監(jiān)控系統(tǒng),首先要做的事情是掌握全局信息,同時需要考慮業(yè)務(wù)未來的發(fā)展趨勢。而這個環(huán)境的監(jiān)控技術(shù)方案既要能滿足當前業(yè)務(wù)需求,又能滿足不斷增長的業(yè)務(wù)需求,因此技術(shù)方案需要考慮以下三個因素:高可用性、高吞吐性、可擴展性。
(1)高可用性
基礎(chǔ)架構(gòu)使用LAMP環(huán)境,采用Keepalived實現(xiàn)Zabbix、Grafana服務(wù)器高可用,保證主Server的Mysql或者httpd宕掉后能切換到從Server。同時數(shù)據(jù)庫做主主同步,保證兩邊服務(wù)器數(shù)據(jù)的一致性,實現(xiàn)數(shù)據(jù)庫的高可用,Zabbix和Grafan數(shù)據(jù)庫選用的磁盤類型均為Raid5,保證在一塊盤離線的情況下保證數(shù)據(jù)的正常訪問。下圖為Zabbix高可用分布式架構(gòu)流程。
(2)高吞吐性
Zabbix、Grafana及Prometheus聯(lián)合監(jiān)控3000+臺服務(wù)器,實現(xiàn)從硬件層到應(yīng)用層共計23萬+Items、17萬+Triggers的全方位監(jiān)控,每秒更新2.43+萬條數(shù)據(jù),每天共計產(chǎn)生1.1T+數(shù)據(jù)量。
(3)可擴展性
Zabbix Proxy可以代替Zabbix Server 收集性能和可用性數(shù)據(jù),然后將數(shù)據(jù)匯報給 Zabbix Server,并且在一定程度上分擔了Zabbix Server 壓力的同時,不增加監(jiān)控系統(tǒng)的維護復雜度。
每個Prometheus負責收集一個地區(qū)所有服務(wù)器服務(wù)的運行時狀態(tài)數(shù)據(jù),Grafana則通過插件調(diào)用API接口來對數(shù)據(jù)進行可視化展示。下圖為Ansible批量安裝Proxy節(jié)點代碼:
2.4核心組件監(jiān)控指標
做好一款監(jiān)控系統(tǒng),其中最重要的一項是服務(wù)的監(jiān)控項和每個監(jiān)控項對應(yīng)的多個指標,需要明白它的具體含義,設(shè)定好其閾值,閾值的準確性決定了監(jiān)控系統(tǒng)的質(zhì)量。
Zabbix通過ICMP ping、磁盤、風扇、內(nèi)存、電源、主板溫度、CPU溫度、電壓、Raid狀態(tài)、電池、網(wǎng)卡等方面對服務(wù)器進行硬件監(jiān)控,同時通過對組件的進程監(jiān)控來實現(xiàn)應(yīng)用程序的存活狀態(tài)檢測。
Grafana+Prometheus主要負責業(yè)務(wù)系統(tǒng)、CK、ES、Ceph、Oss、Kafka、ZK、數(shù)據(jù)流等服務(wù)或組件的狀態(tài)監(jiān)控。
(1)ElasticSearch監(jiān)控項
ES監(jiān)控主要針對兩個級別,分別是集群級別和節(jié)點級別。集群級別的監(jiān)控主要是針對整個ES集群來說,包括集群的健康狀況、集群的狀態(tài)等。節(jié)點級別的監(jiān)控主要是針對每個ES實例的監(jiān)控,其中包括每個實例的查詢索引指標和物理資源使用指標。集群級別指標獲取ES集群的運行狀態(tài);節(jié)點級別指標則更多的用于問題的排查,當發(fā)現(xiàn)集群出現(xiàn)問題時更可能多的時候會直接定位到具體的ES實例,通過查看單臺實例的資源使用情況或者其他指標進行問題排查。
(2)ClickHouse監(jiān)控項
通過慢查詢、拒絕寫入、QPS、讀寫壓力、Http & Tcp 連接數(shù)、Zookeeper狀態(tài)等各項監(jiān)控指標實時的反映出用戶最原始的讀寫請求及ClickHouse 集群的讀寫性能。
(3)Kafka監(jiān)控項
當Kafka集群出現(xiàn)異常時,Kafka Controller的存活狀態(tài)、副本Leader的選舉延遲時間、Follower和Leader的同步消息長度、Broker端關(guān)鍵JMX指標等監(jiān)控指標結(jié)合歷史狀態(tài)數(shù)據(jù)能夠幫助快速定位和分析問題。
(4)Ceph監(jiān)控項
當Ceph集群信息狀態(tài)異常時,需要通過查看集群細節(jié)來判斷出現(xiàn)故障的集群節(jié)點。因此Ceph集群主要從以下幾個方面進行監(jiān)控:集群狀態(tài)、OSD狀態(tài)、集群容量、OSD利用率、延遲數(shù)量、恢復進度、Objects狀態(tài)。
(5)HBase監(jiān)控項
HBase采集的監(jiān)控數(shù)據(jù)主要包括以下幾個方面:所有Regionserver、Master機器 JVM的狀態(tài),例如關(guān)于線程的信息,GC 的次數(shù)和時間,內(nèi)存使用狀況,ERROR、WARN、Fatal事件出現(xiàn)的次數(shù),以及Regionserver、Master進程中的統(tǒng)計信息。
(6)Zookeeper監(jiān)控項
Zookeeper主要從系統(tǒng)監(jiān)控、Zookeeper節(jié)點這兩個方面進行監(jiān)控,系統(tǒng)監(jiān)控包含內(nèi)存使用量,網(wǎng)路帶寬占用,磁盤使用量等;Zookeeper節(jié)點包含節(jié)點活躍數(shù)、延時時間、收發(fā)包數(shù)、連接數(shù)、臨時節(jié)點數(shù)量等方面。
三、最佳實踐
在面臨著巨大Zabbix的使用過程中,隨著監(jiān)控對象的增多,Zabbix Server面臨非常大的壓力,出現(xiàn)一系列性能瓶頸問題:
Zabbix隊列中有太多達到30w+,被延遲的Item會長達10分鐘左右;
帶有nodata()函數(shù)的觸發(fā)器出現(xiàn)告警;
由于數(shù)據(jù)展示量大,前端界面無響應(yīng)或響應(yīng)很慢。
為解決以上三個問題,主要從zabbix配置參數(shù)和數(shù)據(jù)庫參數(shù)兩方面進行性能調(diào)優(yōu),并給出一般建議供其他技術(shù)人員做參考。下面為Zabbix 隊列積壓圖:
3.1最佳參數(shù)優(yōu)化說明
(1)Zabbix配置參數(shù)調(diào)優(yōu)
HistoryStorageDateIndex=1
# 初始化時啟動的pollers進程數(shù)量。由于本次采用主動式,因此該參數(shù)可以調(diào)制最小
StartPollers=1
# 預處理進程
StartPreprocessors=40
StartPollersUnreachable=1
StartTrappers=15
# 啟用ICMP協(xié)議Ping主機方式啟動線程數(shù)量
StartPingers=1
# 用于設(shè)置自動發(fā)現(xiàn)的主機線程數(shù)量
StartDiscoverers=1
# 禁用zabbix自帶的housekeeping策略
HousekeepingFrequency=0
# zabbix初始化時占用多少系統(tǒng)共享內(nèi)存用于存儲配置信息
CacheSize=2G
# 將采集數(shù)據(jù)從緩存同步到數(shù)據(jù)庫的線程數(shù)量
StartDBSyncers=25
# 劃分2G內(nèi)存用于存儲采集的歷史數(shù)據(jù)
HistoryCacheSize=2G
# 存儲歷史數(shù)據(jù)索引所占用的大小
HistoryIndexCacheSize=256M
# 分配緩存趨勢數(shù)據(jù)的內(nèi)存
TrendCacheSize=256M
ValueCacheSize=2G
Timeout=10
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/sbin/fping
LogSlowQueries=1000
(2)數(shù)據(jù)庫參數(shù)調(diào)優(yōu)
遵從MySQL性能調(diào)優(yōu)說明。
對于MySQL,使用InnoDB表結(jié)構(gòu)。如果使用InnoDB,ZABBIX的運行速度至少要快1.5倍。
對常用表進行數(shù)據(jù)庫表分區(qū)并執(zhí)行定期清理策略,常用表:
‘history’,‘history_str’,‘items’,‘functions’,‘triggers','trends’。
(3)性能優(yōu)化一般建議
僅監(jiān)控所需參數(shù);
調(diào)整所有項目的“更新間隔”;
調(diào)整默認模板的參數(shù);
調(diào)整housekeeping參數(shù);
避免使用長期給出的觸發(fā)器作為函數(shù)參數(shù),例如,max(3600)的計算速度明顯比max(60)慢。
zabbix性能調(diào)優(yōu)前后的對比效果如下所示:
性能調(diào)優(yōu)前
性能調(diào)優(yōu)后
3.2硬件監(jiān)控實踐
通過Zabbix Agent向zabbix_agentd.conf 配置文件中的ServerActive 請求獲取檢查清單,Server 讀取Zabbix Web中的硬件監(jiān)控列表進行響應(yīng),Agent解析響應(yīng)中Item Name,調(diào)用相應(yīng)的參數(shù)開始定期收集數(shù)據(jù)。
注:$IPMI_IP 為IPMI的IP地址,
1.3.6.1.4.1.674.10892.5.5.1.20.130.1.1.37.1為dell 服務(wù)器raid卡的snmpoid。
UserParameter=RAIDControllerStatus,/etc/zabbix/scripts/zabbix_agent_snmp.shRAIDControllerStatus
cat/etc/zabbix/scripts/zabbix_agent_snmp.sh
function get_RAIDControllerStatus(){
RAIDControllerStatusvalue=`snmpwalk -v 2c -c public $IPMI_IP1.3.6.1.4.1.674.10892.5.5.1.20.130.1.1.37.1 |awk -F 'INTEGER: ' '{print $2}'`
}
通過Zabbix Agent收集到的硬件監(jiān)控指標數(shù)據(jù)如下圖所示:
雖然Zabbix能通過Zabbix Agent對每臺服務(wù)器的硬件情況進行監(jiān)控并及時報警,但是對整個項目的某個區(qū)域的情況沒有很好的匯總展示和反饋,因此百分點大數(shù)據(jù)團隊將Prometheus與Grafana結(jié)合,實現(xiàn)對當前區(qū)域所有服務(wù)器所有磁盤空間、內(nèi)存使用率的降序排序來實現(xiàn)該需求。
Grafana中根目錄下磁盤使用率的metric指標如下:
node_filesystem_size_bytes{IP_Range="$IP_Range",fstype="xfs",mountpoint="/"}-node_filesystem_free_bytes{IP_Range="$IP_Range",fstype="xfs",mountpoint="/"}
1-(node_filesystem_free_bytes{IP_Range="$IP_Range",fstype="xfs",mountpoint="/"}/node_filesystem_size_bytes{IP_Range="$IP_Range",fstype="xfs",mountpoint="/"})
實際效果如下圖所示:
為了快速定位和解決問題,除對整個項目所有服務(wù)器常用指標有整體的概覽和了解外,只對每臺服務(wù)器的硬件層有詳細的監(jiān)控是不夠的,仍需對它的系統(tǒng)層運行情況有大體且直觀的了解。如下圖所示是單臺服務(wù)器系統(tǒng)層的運行情況展示:
3.3平臺組件集群監(jiān)控實踐
如下圖所示是所有運行在系統(tǒng)上的程序的總體監(jiān)控列表,其中不乏業(yè)務(wù)系統(tǒng)、數(shù)據(jù)流,也不乏ClickHouse、Ceph、ElasticSearch等集群。
(1)ElasticSearch集群監(jiān)控
通過ES數(shù)據(jù)采集程序?qū)⒚總€ES集群的監(jiān)控數(shù)據(jù)匯總到ES監(jiān)控集群中,Grafana接入ES監(jiān)控集群鏈接進行展示。
采集端部分代碼如下:
效果圖如下所示:
(2)ClickHouse集群監(jiān)控
ClickHouse數(shù)據(jù)采集由兩部分組成:①Prometheus主動拉取Ck_exporter所采集的數(shù)據(jù);②Pushgateway將自定義指標推入Prometheus。
Pushgateway自定義指標部分展示如下:
最終展示效果圖:
(3)Kafka集群監(jiān)控
通過Kafka集群中的JMX來解析Kafka部分監(jiān)控指標,開放Kafka的JMX端口,在
./bin/kafka-server-start.sh中插入如下內(nèi)容,位置如下圖所示,同時將jar和yml文件放入相應(yīng)位置并重啟Kafka集群。
JMX監(jiān)控效果圖如下所示:
(4)Ceph集群監(jiān)控
單個Ceph Exporter可以對整個Ceph集群的數(shù)據(jù)進行采集,而為了防止單點故障,故在此處做了Ceph exporter的高可用。Ceph Exporter從社區(qū)網(wǎng)站直接下載并啟動,通過Promtheus拉取Ceph Exporter中的數(shù)據(jù)并進行分組、匯總等運算呈現(xiàn)如下效果圖:
(5)Hbase集群監(jiān)控
由于HBase是集成在Ambari中,因此需要在Ambari Web界面開啟HMaster和HRegionServer的jmx端口進行展示。在HBase-env.sh配置文件中插入如下內(nèi)容:
HBase效果圖如下所示:
(6)Zookeeper集群監(jiān)控
Prometheus通過接入Zookeeper的第三方工具zk_exporter來采集數(shù)據(jù),直接從社區(qū)網(wǎng)站下載啟動即可,通過指標篩選和聚合,最終效果圖如下所示:
結(jié)語與展望
百分點科技希望通過本篇文章的分享,幫助大家快速了解大規(guī)模機器集群下的監(jiān)控設(shè)計架構(gòu)思路,以及每個核心組件重要的監(jiān)控指標項含義和閾值范圍,提供最佳實踐的優(yōu)化參數(shù),為大家在實施過程中提供一些參考。
來源:百分點
刷新相關(guān)文章
我要評論
活動推薦more >
- 2018 上海國際大數(shù)據(jù)產(chǎn)業(yè)高2018-12-03
- 2018上海國際計算機網(wǎng)絡(luò)及信2018-12-03
- 中國國際信息通信展覽會將于2018-09-26
- 第五屆FEA消費金融國際峰會62018-06-21
- 第五屆FEA消費金融國際峰會2018-06-21
- “無界區(qū)塊鏈技術(shù)峰會2018”2018-06-14
不容錯過的資訊
-
1中國信通院聯(lián)合主辦的“2021RPA創(chuàng)新產(chǎn)業(yè)
-
2業(yè)績增速連年翻倍,領(lǐng)創(chuàng)智信以東南亞為大
-
3百分點大數(shù)據(jù)技術(shù)團隊:萬億級大數(shù)據(jù)監(jiān)控
-
4網(wǎng)易,數(shù)據(jù)智能To B行業(yè)的破局者
-
5思邁特軟件Smartbi獲明略科技B+輪過億元
-
6阿里云數(shù)據(jù)中臺新添產(chǎn)品大將 DataTrust
-
7中原銀行2021年科技類社會招聘火熱進行中
-
8拒絕負重前行,戴爾要以30億美元的價格出
-
9重塑數(shù)字生產(chǎn)力,賦能 IT 新時代 --
-
10數(shù)博會首次增設(shè)線上展會平臺,報名通道即