器核心監(jiān)控體系)
1. 項(xiàng)目概述為什么說(shuō)Zabbix自帶模板是運(yùn)維的“開(kāi)箱即用”神器在服務(wù)器運(yùn)維的日常里監(jiān)控CPU、磁盤(pán)和內(nèi)存這三項(xiàng)基礎(chǔ)指標(biāo)就像司機(jī)開(kāi)車要看儀表盤(pán)上的速度、轉(zhuǎn)速和油量一樣是保障系統(tǒng)穩(wěn)定運(yùn)行的第一道防線。很多剛接觸Zabbix的朋友可能會(huì)被其強(qiáng)大的自定義能力和復(fù)雜的配置項(xiàng)嚇到覺(jué)得不寫(xiě)幾個(gè)自定義腳本、不折騰一下自動(dòng)發(fā)現(xiàn)規(guī)則就不好意思說(shuō)在用Zabbix。但事實(shí)上Zabbix官方提供的自帶模板Template已經(jīng)為我們封裝了極其完善和成熟的監(jiān)控方案對(duì)于CPU使用率、磁盤(pán)空間、內(nèi)存利用率這些通用指標(biāo)完全能做到“開(kāi)箱即用”。我見(jiàn)過(guò)不少團(tuán)隊(duì)投入大量時(shí)間從零開(kāi)始編寫(xiě)監(jiān)控項(xiàng)和觸發(fā)器結(jié)果抓取的數(shù)據(jù)不準(zhǔn)確、告警閾值設(shè)置不合理反而把簡(jiǎn)單問(wèn)題復(fù)雜化了。Zabbix自帶的“Template OS Linux”和“Template OS Windows”等模板是經(jīng)過(guò)全球無(wú)數(shù)生產(chǎn)環(huán)境驗(yàn)證的結(jié)晶。它們不僅預(yù)定義了監(jiān)控項(xiàng)Items來(lái)采集數(shù)據(jù)還配置了合理的觸發(fā)器Triggers用于告警甚至包含了數(shù)據(jù)聚合Calculated items和圖形Graphs展示。直接應(yīng)用這些模板你可以在5分鐘內(nèi)為你的Linux或Windows服務(wù)器建立起一套專業(yè)級(jí)的核心資源監(jiān)控體系把精力從“造輪子”轉(zhuǎn)移到更重要的業(yè)務(wù)監(jiān)控和問(wèn)題分析上。接下來(lái)我就帶你徹底拆解這套自帶模板看看它到底監(jiān)控了什么、怎么工作的以及如何根據(jù)你的實(shí)際環(huán)境進(jìn)行微調(diào)讓它發(fā)揮最大價(jià)值。2. 核心模板深度解析Template OS Linux 里到底藏了什么當(dāng)我們給一臺(tái)Linux主機(jī)鏈接上“Template OS Linux”模板后Zabbix Server就會(huì)自動(dòng)開(kāi)始執(zhí)行一系列監(jiān)控任務(wù)。這個(gè)模板就像一個(gè)功能豐富的監(jiān)控工具箱我們重點(diǎn)關(guān)注其對(duì)CPU、磁盤(pán)和內(nèi)存的監(jiān)控實(shí)現(xiàn)。2.1 CPU監(jiān)控不只是總體使用率那么簡(jiǎn)單很多人以為CPU監(jiān)控就是看一個(gè)“CPU利用率”百分比這其實(shí)很片面。Zabbix模板通過(guò)多個(gè)維度來(lái)刻畫(huà)CPU的工作狀態(tài)這對(duì)于診斷性能瓶頸至關(guān)重要。首先模板通過(guò)system.cpu.util這個(gè)監(jiān)控項(xiàng)的不同模式mode來(lái)采集數(shù)據(jù)。你會(huì)在監(jiān)控項(xiàng)列表中看到一系列類似CPU utilization percentage (idle)、CPU utilization percentage (iowait)的項(xiàng)。它們分別代表user: 用戶態(tài)進(jìn)程占用CPU的時(shí)間百分比。如果持續(xù)過(guò)高通常意味著應(yīng)用本身計(jì)算密集。system: 內(nèi)核態(tài)進(jìn)程占用CPU的時(shí)間百分比。系統(tǒng)調(diào)用頻繁、內(nèi)核處理任務(wù)多會(huì)導(dǎo)致此值升高。iowait: CPU等待磁盤(pán)I/O完成的時(shí)間百分比。這是診斷磁盤(pán)性能瓶頸的關(guān)鍵指標(biāo)。如果這個(gè)值持續(xù)很高而user和system不高說(shuō)明CPU經(jīng)常在“空等”磁盤(pán)磁盤(pán)可能是系統(tǒng)瓶頸。idle: CPU空閑時(shí)間百分比。這是最常看的“剩余資源”指標(biāo)。nice: 低優(yōu)先級(jí)nice值調(diào)整過(guò)的用戶進(jìn)程占用時(shí)間。interrupt和softirq: 處理硬件和軟件中斷的時(shí)間。網(wǎng)絡(luò)流量巨大或特定硬件驅(qū)動(dòng)有問(wèn)題時(shí)這些值會(huì)異常。模板的觸發(fā)器也設(shè)計(jì)得非常精細(xì)。例如它不僅有一個(gè)簡(jiǎn)單的“CPU總體使用率超過(guò)90%”的告警還可能包含“CPU iowait時(shí)間超過(guò)30%持續(xù)5分鐘”這樣的觸發(fā)器這能幫你提前發(fā)現(xiàn)潛在的磁盤(pán)I/O問(wèn)題而不是等到系統(tǒng)完全卡死。實(shí)操心得不要只盯著總體使用率system.cpu.util[,avg1]。在排查性能問(wèn)題時(shí)我習(xí)慣先看iowait和system。一個(gè)飆升的iowait直接指向存儲(chǔ)而system過(guò)高可能意味著上下文切換頻繁或內(nèi)核有鎖競(jìng)爭(zhēng)。模板自帶的圖形“CPU utilization”通常會(huì)將這幾種模式堆疊展示一眼就能看出CPU時(shí)間花在了哪里。2.2 磁盤(pán)監(jiān)控空間、IO與inode的三位一體磁盤(pán)監(jiān)控是另一個(gè)重頭戲模板同樣考慮得非常周全主要分為容量監(jiān)控和性能監(jiān)控。容量監(jiān)控模板使用vfs.fs.size這個(gè)監(jiān)控項(xiàng)通過(guò)pfree剩余空間百分比和free剩余空間大小兩個(gè)模式監(jiān)控所有已掛載文件系統(tǒng)的使用情況。它會(huì)通過(guò)自動(dòng)發(fā)現(xiàn)規(guī)則動(dòng)態(tài)發(fā)現(xiàn)服務(wù)器上的所有掛載點(diǎn)如//home/data等并為每個(gè)掛載點(diǎn)創(chuàng)建相應(yīng)的監(jiān)控項(xiàng)和觸發(fā)器。常見(jiàn)的告警規(guī)則是“磁盤(pán)空間使用率超過(guò)80%警告和90%嚴(yán)重”。性能監(jiān)控IO這是很多新手容易忽略的部分。模板通過(guò)vfs.dev.read和vfs.dev.write等監(jiān)控項(xiàng)采集磁盤(pán)的讀寫(xiě)操作次數(shù)ops、讀寫(xiě)字節(jié)數(shù)bytes以及讀寫(xiě)請(qǐng)求的平均等待時(shí)間await。高await值直接反映了磁盤(pán)的響應(yīng)延遲是判斷磁盤(pán)是否過(guò)載的黃金指標(biāo)。Inode監(jiān)控一個(gè)經(jīng)典的“坑”。即使磁盤(pán)空間充足如果文件數(shù)量巨多耗盡了inode索引節(jié)點(diǎn)系統(tǒng)同樣無(wú)法創(chuàng)建新文件。模板通過(guò)vfs.fs.inode監(jiān)控項(xiàng)來(lái)監(jiān)控inode使用率避免了“空間沒(méi)用完但磁盤(pán)已寫(xiě)滿”的尷尬局面。2.3 內(nèi)存監(jiān)控厘清Used、Cached、Buffers和Available的真相Linux的內(nèi)存管理機(jī)制比較“狡猾”單純看“已用內(nèi)存Used”高低經(jīng)常會(huì)誤判。Zabbix模板的監(jiān)控項(xiàng)準(zhǔn)確地反映了這一復(fù)雜性。關(guān)鍵監(jiān)控項(xiàng)包括vm.memory.size[total]: 總物理內(nèi)存。vm.memory.size[used]: 已用內(nèi)存。注意這個(gè)值通常包含了Buffers和Cached所以看起來(lái)會(huì)很高。vm.memory.size[buffers]和vm.memory.size[cached]: 緩存和緩沖內(nèi)存。這部分內(nèi)存在應(yīng)用需要時(shí)可以被快速回收所以不屬于“被占死”的內(nèi)存。vm.memory.size[available]:這是最關(guān)鍵的一個(gè)指標(biāo)。它表示系統(tǒng)估算的、真正可供新應(yīng)用程序使用的內(nèi)存量包含了可回收的Cached/Buffers。從Linux內(nèi)核3.14版本開(kāi)始引入比傳統(tǒng)的free值更準(zhǔn)確。模板的觸發(fā)器通常會(huì)基于available內(nèi)存的百分比或絕對(duì)值來(lái)設(shè)置告警例如“可用內(nèi)存小于總內(nèi)存的10%”。這比監(jiān)控“已用內(nèi)存大于90%”要科學(xué)得多因?yàn)楹笳咴谙到y(tǒng)正常利用緩存時(shí)可能頻繁誤報(bào)。注意事項(xiàng)在Zabbix的儀表盤(pán)或最新數(shù)據(jù)里查看內(nèi)存時(shí)一定要分清used和available。我曾經(jīng)遇到過(guò)報(bào)警說(shuō)內(nèi)存使用率95%但實(shí)際應(yīng)用運(yùn)行流暢就是因?yàn)閏ached占了大頭available其實(shí)還很充裕。模板自帶的“Memory utilization”圖形會(huì)把used、buffers、cached等分開(kāi)繪制非常直觀。3. 從零到一的完整部署與配置實(shí)操理解了模板監(jiān)控什么之后我們來(lái)看看如何一步步將它用起來(lái)。假設(shè)你已經(jīng)安裝好了Zabbix Server和Web前端現(xiàn)在需要監(jiān)控一臺(tái)新的Linux服務(wù)器被監(jiān)控端。3.1 被監(jiān)控端Zabbix Agent2的安裝與配置目前推薦使用功能更強(qiáng)大的Zabbix Agent2作為客戶端。安裝Agent2根據(jù)你的Linux發(fā)行版選擇安裝方式。例如在CentOS/RHEL 8上# 添加Zabbix官方倉(cāng)庫(kù) rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/8/x86_64/zabbix-release-7.0-1.el8.noarch.rpm # 清理并安裝Agent2 dnf clean all dnf install zabbix-agent2 zabbix-agent2-plugin-*關(guān)鍵配置編輯Agent2的配置文件/etc/zabbix/zabbix_agent2.conf以下幾個(gè)參數(shù)必須修改Server192.168.1.100 # 改為你的Zabbix Server的IP地址 ServerActive192.168.1.100 # 主動(dòng)模式下的Server地址通常與Server相同 HostnameYour_Hostname_Here # 這里設(shè)置一個(gè)唯一的主機(jī)名非常重要建議使用服務(wù)器在CMDB中的標(biāo)識(shí)或FQDN。Hostname必須與后續(xù)在Zabbix Web界面中創(chuàng)建的主機(jī)名稱完全一致這是建立連接的核心。啟動(dòng)并設(shè)置開(kāi)機(jī)自啟systemctl enable --now zabbix-agent2 systemctl status zabbix-agent2 # 檢查狀態(tài)是否為active (running) firewall-cmd --permanent --add-port10050/tcp # 如果防火墻開(kāi)啟放行10050端口 firewall-cmd --reload3.2 Web界面配置關(guān)聯(lián)模板與主機(jī)登錄Zabbix Web進(jìn)入“配置” - “主機(jī)”。創(chuàng)建主機(jī)點(diǎn)擊右上角“創(chuàng)建主機(jī)”。主機(jī)名稱填寫(xiě)與Agent配置文件中Hostname一致的名字??梢?jiàn)名稱可以填一個(gè)更易讀的名字如“核心數(shù)據(jù)庫(kù)-01”。群組選擇一個(gè)群組如“Linux servers”便于管理。Agent接口點(diǎn)擊“添加”輸入被監(jiān)控服務(wù)器的IP地址和端口默認(rèn)10050。關(guān)聯(lián)模板這是最關(guān)鍵的一步。在“模板”標(biāo)簽頁(yè)點(diǎn)擊“選擇”搜索“Linux”在結(jié)果中找到“Template OS Linux by Zabbix agent”點(diǎn)擊“添加”將其加入到“已鏈接的模板”區(qū)域。保存點(diǎn)擊頁(yè)面底部的“添加”或“更新”按鈕。如果網(wǎng)絡(luò)和配置正確稍等幾分鐘默認(rèn)Agent每1分鐘主動(dòng)發(fā)送一次心跳數(shù)據(jù)該主機(jī)的“可用性”ZBX圖標(biāo)就會(huì)從紅色變?yōu)榫G色表示監(jiān)控?cái)?shù)據(jù)開(kāi)始上報(bào)。3.3 驗(yàn)證與數(shù)據(jù)查看檢查最新數(shù)據(jù)進(jìn)入“監(jiān)控” - “最新數(shù)據(jù)”。在過(guò)濾器中選擇你剛創(chuàng)建的主機(jī)點(diǎn)擊“應(yīng)用”。你應(yīng)該能看到一長(zhǎng)串監(jiān)控項(xiàng)開(kāi)始有數(shù)據(jù)例如system.cpu.util、vfs.fs.size等。查看圖形進(jìn)入“監(jiān)控” - “主機(jī)”點(diǎn)擊你的主機(jī)名然后選擇“圖形”標(biāo)簽頁(yè)。你可以找到“CPU utilization”、“Memory utilization”、“Disk space usage”等預(yù)定義的圖形直觀地看到資源使用趨勢(shì)。測(cè)試觸發(fā)器你可以手動(dòng)制造一些條件來(lái)測(cè)試告警。例如用dd命令快速寫(xiě)滿一個(gè)測(cè)試分區(qū)觀察磁盤(pán)空間告警是否觸發(fā)或者運(yùn)行一個(gè)消耗CPU的腳本看CPU告警是否生效。4. 高級(jí)調(diào)優(yōu)與個(gè)性化定制指南直接應(yīng)用模板是第一步但生產(chǎn)環(huán)境千差萬(wàn)別默認(rèn)配置可能不完全適用。以下是幾個(gè)常見(jiàn)的調(diào)優(yōu)場(chǎng)景。4.1 調(diào)整監(jiān)控頻率與歷史數(shù)據(jù)保留默認(rèn)情況下模板里監(jiān)控項(xiàng)的更新間隔Update interval大多是1分鐘或5分鐘。對(duì)于核心業(yè)務(wù)服務(wù)器1分鐘間隔是合適的。但對(duì)于一些非關(guān)鍵或性能壓力大的服務(wù)器可以考慮將部分監(jiān)控項(xiàng)如磁盤(pán)空間調(diào)整為5分鐘或10分鐘以減輕Agent和Server的負(fù)擔(dān)。修改方法進(jìn)入“配置” - “模板”找到“Template OS Linux”點(diǎn)擊“監(jiān)控項(xiàng)”。找到你想修改的項(xiàng)例如“Free disk space on / (percentage)”點(diǎn)擊進(jìn)入編輯修改“更新間隔”即可。同樣歷史數(shù)據(jù)History和趨勢(shì)數(shù)據(jù)Trends的保留時(shí)間也需要根據(jù)磁盤(pán)容量規(guī)劃。默認(rèn)可能只保留30天歷史數(shù)據(jù)和365天趨勢(shì)數(shù)據(jù)。你可以在“管理” - “一般” - “Housekeeping”中設(shè)置全局規(guī)則也可以在每個(gè)監(jiān)控項(xiàng)上單獨(dú)設(shè)置。4.2 自定義磁盤(pán)監(jiān)控的掛載點(diǎn)過(guò)濾默認(rèn)的磁盤(pán)發(fā)現(xiàn)規(guī)則會(huì)監(jiān)控所有掛載點(diǎn)包括/dev、/proc、/sys、/run等虛擬文件系統(tǒng)這些通常沒(méi)有監(jiān)控必要還會(huì)產(chǎn)生大量無(wú)用數(shù)據(jù)。我們需要修改自動(dòng)發(fā)現(xiàn)規(guī)則Discovery rule的過(guò)濾器進(jìn)入模板的“自動(dòng)發(fā)現(xiàn)規(guī)則”頁(yè)面找到“Mount point discovery”。點(diǎn)擊進(jìn)入找到“過(guò)濾器”標(biāo)簽頁(yè)下的“宏”。在“文件系統(tǒng)類型”的宏{#FSTYPE}處設(shè)置一個(gè)排除正則表達(dá)式。一個(gè)常用的過(guò)濾條件是^(ext.|xfs|btrfs|nfs.*|cifs|glusterfs)$這個(gè)表達(dá)式只監(jiān)控常見(jiàn)的ext2/3/4、xfs、btrfs以及網(wǎng)絡(luò)文件系統(tǒng)排除了proc、sysfs、tmpfs等。你還可以在“掛載點(diǎn)”宏{#FSNAME}上添加過(guò)濾例如排除/boot或特定的臨時(shí)掛載點(diǎn)。4.3 修改告警閾值以適應(yīng)實(shí)際環(huán)境模板的默認(rèn)告警閾值如CPU使用率90%磁盤(pán)使用率80%是通用值。你需要根據(jù)服務(wù)器的具體角色調(diào)整。數(shù)據(jù)庫(kù)服務(wù)器磁盤(pán)iowait的告警閾值應(yīng)該設(shè)得更敏感如20%持續(xù)2分鐘因?yàn)镮/O等待對(duì)數(shù)據(jù)庫(kù)性能影響極大。內(nèi)存available的告警閾值可以設(shè)得保守一些如5%因?yàn)閿?shù)據(jù)庫(kù)會(huì)充分利用緩存。文件存儲(chǔ)服務(wù)器磁盤(pán)空間告警閾值可能需要提前比如使用率70%就發(fā)出警告給你留出足夠的時(shí)間清理或擴(kuò)容。應(yīng)用服務(wù)器更關(guān)注CPU的user態(tài)使用率和應(yīng)用進(jìn)程的內(nèi)存??梢越Y(jié)合模板監(jiān)控的進(jìn)程項(xiàng)為關(guān)鍵Java或PHP進(jìn)程設(shè)置單獨(dú)的內(nèi)存監(jiān)控。修改閾值進(jìn)入模板的“觸發(fā)器”頁(yè)面找到對(duì)應(yīng)的觸發(fā)器如“Free disk space is less than 20% on volume {#FSNAME}”進(jìn)行編輯修改其表達(dá)式中的閾值即可。4.4 補(bǔ)充監(jiān)控網(wǎng)絡(luò)、進(jìn)程與日志雖然核心資源監(jiān)控有了但一個(gè)完整的監(jiān)控體系還需要更多維度。你可以給主機(jī)額外鏈接其他模板網(wǎng)絡(luò)監(jiān)控鏈接“Template Module ICMP Ping”來(lái)監(jiān)控網(wǎng)絡(luò)可達(dá)性和延遲。進(jìn)程監(jiān)控模板本身已有“Process discovery”規(guī)則可以自動(dòng)發(fā)現(xiàn)并監(jiān)控關(guān)鍵進(jìn)程的存活狀態(tài)、內(nèi)存和CPU占用。你只需要在主機(jī)或模板層面定義需要監(jiān)控的進(jìn)程名稱模式。日志監(jiān)控使用“Template Module Log”或自定義監(jiān)控項(xiàng)log[]或logrt[]監(jiān)控系統(tǒng)日志如/var/log/messages或應(yīng)用日志中的關(guān)鍵錯(cuò)誤信息。5. 常見(jiàn)問(wèn)題排查與實(shí)戰(zhàn)技巧實(shí)錄即使按照標(biāo)準(zhǔn)流程操作也難免會(huì)遇到問(wèn)題。下面是我在實(shí)戰(zhàn)中積累的一些常見(jiàn)問(wèn)題排查思路和技巧。5.1 主機(jī)狀態(tài)顯示為“紅色”不支持這是最常見(jiàn)的問(wèn)題表示Zabbix Server無(wú)法從該主機(jī)獲取任何數(shù)據(jù)。排查步驟檢查網(wǎng)絡(luò)連通性在Zabbix Server上執(zhí)行telnet 客戶端IP 10050看端口是否通。檢查Agent狀態(tài)登錄被監(jiān)控服務(wù)器執(zhí)行systemctl status zabbix-agent2確保服務(wù)正在運(yùn)行。查看日志journalctl -u zabbix-agent2 -f或/var/log/zabbix/zabbix_agent2.log看是否有錯(cuò)誤信息。核對(duì)Hostname這是最容易出錯(cuò)的地方。確保Agent配置文件的Hostname、Zabbix Web中主機(jī)的“主機(jī)名稱”以及“Agent接口”的DNS/IP指向完全匹配。大小寫(xiě)敏感。檢查防火墻和SELinux確??蛻舳?0050端口對(duì)Server開(kāi)放并檢查SELinux是否阻止了網(wǎng)絡(luò)連接可暫時(shí)設(shè)置為permissive模式測(cè)試。5.2 監(jiān)控項(xiàng)顯示“不支持”或沒(méi)有數(shù)據(jù)部分監(jiān)控項(xiàng)特別是磁盤(pán)和網(wǎng)絡(luò)相關(guān)的可能因?yàn)闄?quán)限或系統(tǒng)環(huán)境問(wèn)題無(wú)法采集。排查步驟手動(dòng)測(cè)試監(jiān)控項(xiàng)在被監(jiān)控服務(wù)器上使用zabbix_agent2 -t命令測(cè)試。例如zabbix_agent2 -t vfs.fs.size[/,pfree]如果返回“ZBX_NOTSUPPORTED”說(shuō)明Agent無(wú)法執(zhí)行這個(gè)監(jiān)控項(xiàng)??赡苁侨鄙僖蕾嚾鏳f命令、路徑不存在或權(quán)限不足Agent通常以zabbix用戶運(yùn)行。檢查插件Zabbix Agent2的功能由插件實(shí)現(xiàn)。確保安裝了zabbix-agent2-plugin-*系列包。對(duì)于磁盤(pán)監(jiān)控主要依賴systemd和vfs插件。查看Agent詳細(xì)日志在Agent配置文件里開(kāi)啟Debug模式DebugLevel4重啟Agent后查看日志通常會(huì)給出明確的錯(cuò)誤原因。5.3 磁盤(pán)監(jiān)控?cái)?shù)據(jù)不準(zhǔn)確或遺漏部分分區(qū)可能原因及解決掛載點(diǎn)過(guò)濾過(guò)嚴(yán)如前所述檢查“Mount point discovery”規(guī)則的過(guò)濾器確保沒(méi)有錯(cuò)誤地過(guò)濾掉你需要監(jiān)控的分區(qū)。文件系統(tǒng)類型不支持某些特殊的或較新的文件系統(tǒng)如ZFS默認(rèn)的vfs.fs.size可能無(wú)法正確獲取信息。可能需要安裝額外的Agent插件或使用自定義腳本。綁定掛載Bind Mount或符號(hào)鏈接這些特殊的掛載方式有時(shí)會(huì)被發(fā)現(xiàn)規(guī)則以不同路徑重復(fù)發(fā)現(xiàn)導(dǎo)致數(shù)據(jù)混亂。需要在過(guò)濾器或后續(xù)的監(jiān)控項(xiàng)原型中進(jìn)行更精細(xì)的路徑處理。5.4 內(nèi)存監(jiān)控中“Available”值異?;蛉笔Э赡茉騼?nèi)核版本過(guò)舊vm.memory.size[available]依賴于較新的Linux內(nèi)核3.14提供的MemAvailable信息。在老版本內(nèi)核上此監(jiān)控項(xiàng)可能返回不支持或計(jì)算不準(zhǔn)確。對(duì)于老系統(tǒng)可以退而求其次使用vm.memory.size[free]加上部分buffer/cache的估算值來(lái)定義觸發(fā)器或者升級(jí)內(nèi)核。Agent版本問(wèn)題確保使用較新版本的Zabbix Agent2其對(duì)內(nèi)存指標(biāo)的采集更準(zhǔn)確。5.5 性能問(wèn)題監(jiān)控?cái)?shù)據(jù)延遲或Zabbix Server負(fù)載高當(dāng)監(jiān)控主機(jī)數(shù)量龐大時(shí)默認(rèn)配置可能帶來(lái)壓力。優(yōu)化建議調(diào)整主動(dòng)模式與被動(dòng)模式默認(rèn)是Agent主動(dòng)向Server發(fā)送數(shù)據(jù)Active。對(duì)于大規(guī)模部署可以合理規(guī)劃讓部分Agent使用被動(dòng)模式Server拉取以平衡Server的連接數(shù)。但主動(dòng)模式通常擴(kuò)展性更好。增加數(shù)據(jù)采集間隔如前所述對(duì)非核心指標(biāo)拉長(zhǎng)采集間隔。優(yōu)化數(shù)據(jù)庫(kù)Zabbix的瓶頸常在數(shù)據(jù)庫(kù)。定期進(jìn)行Housekeeping清理舊數(shù)據(jù)對(duì)History和Trends表建立合適的索引??紤]使用分區(qū)表Table partitioning來(lái)管理歷史數(shù)據(jù)。使用Proxy對(duì)于跨機(jī)房、跨網(wǎng)絡(luò)區(qū)域或主機(jī)數(shù)量超過(guò)500臺(tái)的情況強(qiáng)烈建議部署Zabbix Proxy。Proxy負(fù)責(zé)收集一個(gè)區(qū)域內(nèi)的數(shù)據(jù)并批量轉(zhuǎn)發(fā)給Server能極大減輕Server的網(wǎng)絡(luò)壓力和負(fù)載并提升可靠性。最后我想分享一個(gè)個(gè)人體會(huì)Zabbix自帶模板的價(jià)值在于它提供了一個(gè)堅(jiān)實(shí)、可靠且經(jīng)過(guò)驗(yàn)證的監(jiān)控基線。運(yùn)維工程師的智慧不應(yīng)該浪費(fèi)在重復(fù)實(shí)現(xiàn)這些基礎(chǔ)監(jiān)控上而應(yīng)該體現(xiàn)在如何基于這個(gè)基線結(jié)合業(yè)務(wù)邏輯構(gòu)建更深層次的、能夠反映業(yè)務(wù)健康度的監(jiān)控指標(biāo)如應(yīng)用吞吐量、交易延遲、特定錯(cuò)誤碼數(shù)量等。先把自帶的CPU、磁盤(pán)、內(nèi)存監(jiān)控用好、調(diào)優(yōu)好你的監(jiān)控體系就成功了一半。