




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于Zabbix系統監控方案Windows、Linux、VMware等
【導讀】本文介紹了Zabbix基本概念及其特點,闡述Zabbix系統環境搭建與基礎安裝,如何實現對各類操作系統、硬件設備、應用軟件監控告警。目錄1介紹2指標3安裝部署4Windows系統狀態監控5Windows系統硬件信息獲取6Linux系統狀態監控7Linux系統硬件信息獲取8VMware虛擬平臺監控9郵件告警10微信告警1介紹1.1摘要本文深入淺出,切近實際運維應用,由zabbix3.4版本入手,學習zabbix監控告警實現方式,由zabbix5.0淺出實現快速部署、快速應用。本人從業多年,關注zabbix開源社區,以及zabbix官方組織的各種峰會,了解到的前沿技術,因隨著運維監控軟件的不斷發展,未來軟件將是開箱即用的模式,運維人員在使用監控軟件,不必再去花精力編寫運維監控程序,而是完善監控項,這樣的方式對于初學者越來越不容易學習。因此,學習zabbix3.4版本是非常必要的,zabbix官方那時候還沒有集成更多的模板以直接使用,那里有大量的監控項需要自己編寫實現,不僅全面了解了zabbix,也是對linux命令、shell腳本、Python語言等的很好學習,也有助于二次開發,自定義監控項的配置。1.2背景以下是部署實施基于zabbix監控系統的建設背景,以解決諸多運維實際問題:目前公司系統運維主要采用人工檢查的方式,問題發現的時效性較低,容易出現問題不被立刻發現,人工也容易疏忽漏查,導致問題處理不及時,影響信息化系統服務效果,就需要更好保障系統穩定運行。公司信息化系統、操作系統、設備種類多,各類信息化系統如:OA、U9,PLM、企業郵箱等,又有Linux、Windows、VMware、EMC等系統,設備有服務器、交換機、存儲等,機房環境有動環系統進行監測。如此眾多的信息化系統平臺,當然需要統一運維界面,實時監測各系統運行狀況,為運維工作提供便利。為適應時代的發展,未來是個智能化的時代,運維工作要實現自動化,運維工作者要向開發去轉變,開發即運維,或許有一天人工智能將代替運維人員,而今的運維人員希望是人工智能創造者的一份子,了解自動化運維,與時俱進是非常必要的。綜上,為了提高運維效率,節約人力資源,對設備、機房環境實時監控,能有效、實時發出告警信息,從而及時發現問題快速響應。急需一套能滿足以上需求的監控系統,經考量zabbix監控系統應用廣泛,可實現上述功能。1.3系統簡介Zabbix是一個企業級解決方案,支持實時監控數千臺服務器,虛擬機和網絡設備,采集百萬級監控指標。Zabbix完全開源免費。Zabbix的主要特點有:指標收集:從任何設備、系統、應用程序上進行指標采集問題監測:定義智能閾值可視化:單一界面管理平臺告警和修復:確保及時、有效的告警安全和認證:保護您所有層級的數據輕松搭建部署:大批模板,開箱即用,節省您寶貴的時間自動發現:自動監控大型動態環境分布式監控:無限制擴展ZABBIXAPI:將Zabbix集成到您IT環境的其他任何部分1.4名詞術語Zabbix系統有一些自己定義的專業術語,為更好的熟悉系統名詞,下面主要介紹本文以及zabbix常用的術語。主機(host)一臺你想監控的服務器、工作站、交換機等網絡設備,用IP或者域名表示。主機組(hostgroup)多臺具有某種相同角色、屬性的集合。例如,所有windows服務器放在一個叫“windowsserver”的主機組中。監控項(item)你想要監控、獲取主機或主機組的哪些數據。例如:我想監控所有機器的CPU使用情況,則需要建一個監控項,用于獲取所有服務器的CPU使用率。觸發器(trigger)由邏輯表達式組成的按照預先設置好的閥值來評估由監控項采集到的數據。觸發器有兩種狀態,分別為“問題”和“已解決”。例如:在上述通過監控項獲取了CPU的使用率,假如我想超過CPU使用超過80%的就預警,則可以創建一個觸發器,當監控項獲取的值超過80%時就按照預設的情況報警,狀態為“問題”;低于80%時認為報警解除,狀態恢復為“已解決”。事件(event)單次發生的需要注意的事情,例如上述觸發器狀態由問題變成了正常或者由正常變成了問題,均可以稱為一個事件。事件包括觸發器事件、自動發現事件、自動注冊事件和內部事件4個部分。動作(action)一個對事件做出反應的預定義的操作;例如CPU使用超過80%時,觸發器狀態變成了問題,即產生了一個事件,我們可以針對此事件預設一個動作(比如執行命令reboot),則系統會自動針對此事件的預設動作執行命令reboot。媒介(media)發送告警通知的手段或途徑。例如:當CPU超過80%報警后,通過媒介(郵件、短信、自定義腳本、微信等)形式告知。模板(template)一組可以被應用到一個或多個主機上的實體(監控項,觸發器,圖形,聚合圖形,應用,web場景等)的集合。簡單的說,即多個監控項的集合。應用集(application)一組監控項組成的邏輯分組。例如,CPU的監控項,歸集至cpu,在想查看有關cpu方面的信息時,可以直接在界面上提供的搜索框內查詢所有有關cpu的信息。zabbixserverzabbix系統實現監控的核心程序,主要功能是與被監控主機、代理機等進行交互、觸發器計算、發送告警通知、收集數據并存儲等。zabbixagent一個部署在監控對象上的,能夠主動監控本地資源和應用的程序;一般來講,我們需要在所有被監控服務器上安裝此程序。zabbixproxy一個幫助zabbixserver收集數據,分擔zabbixserver的負載壓力的程序;另外,還可以用在server與agent機器網絡不通,使用proxy作為網絡代理,實現兩者的通信功能。1.5系統架構系統結構說明:由web、linux、php、mysql等組件部署安裝,實現zabbixserver服務端;由被監控對象例如:Windows系統,linux系統、Vmware虛擬化平臺、交換機,存儲等組成了agent端。Zabbixserver可采用主動模式,獲取agent上數據,也可采用被動模式,接收agent定時發送的數據。
2指標2.1軟件版本版本選擇說明:目前zabbix3版本成熟穩定,各大企業公司運維監控系統運行于該平臺上,提供的監控項比zabbix第1和2版本豐富,完全能滿足監控對象的需要;至今zabbix第3版已持續發布4年多時間,開源系統積累了大量的資料與研究人員,可供交流學習,能很好服務于zabbix定制化;zabbix4.0版本2018年10月正式發布,4.2版本于2019年4月正式發布,目前最新的是zabbix5.2版本,版本持續更新滿足未來升級發展的需要,新版本增加了ELK、時序數據庫,以及前端web優化,但監控本質并未發生大的變化。2.1硬件指標名稱CPU/內存數據庫可監控主機數量小型4核心/16GMySQL+500GB普通硬盤500臺以內中型4核心/32GMySQL+500GB普通硬盤500-1000臺大型8核心/64GMySQL+1TBRAID存儲盤1000-3000臺超大型16核心/128GMySQL+2TBRAID存儲盤3000臺以上Zabbix可以運行于虛擬環境也可以部署在服務器上,因zabbix采集數據主要是文本,對網絡帶寬要求不高,千兆速率足矣,只要滿足性能上的要求即可,主要為CPU、內存和硬盤三項。結合zabbix官網給出的指標、實際監控項數量、歷史記錄保存時間長度。根據上表的參考標準,測試環境建議小型化部署。3安裝部署Zabbix安裝方式主要是兩種:1、yum源安裝2、zabbix源碼安裝,安裝方法互聯網上搜索非常多,這里就不再闡述。主要安裝組件:PHP、Apache或Nginx、Mysql、Zabbix軟件包。4windows系統狀態監控本節介紹實現對windows系統狀態監控。使用zabbix3.4版本,一起了解學習zabbix監控數據采集過程,這樣對我們自定義監控項非常有幫助,提供方法擴展思路。誠然zabbix5.0
版本等高版本,許多監控項已經被zabbixagent集成,但那并不利于初學者學習與實踐。通過在被監控主機上,部署安裝zabbix_agent,實現事件查看器監控、CPU監控、內存監控、磁盤讀寫監控、磁盤容量監控、網卡流量監控、系統時間監控、系統進程和服務監控。考慮到公司使用的服務器目前多數為windowsserver,對于個別服務器安裝了PC操作系統不深入研究,經測試Windows版本支持情況如下表:版本是否支持備注Windowsserver2003是需要運行32位程序Windowsserver2008是Windowsserver2012是Windows7是Windows10否測試zabbix-agent程序有報錯4.1windows部署zabbix_agent為了監控window系統,首先需要在該系統下部署zabbix_agent代理,用于收集該系統信息。自研程序包列表:角色安裝包說明適用版本基于zabbix-agent-3.4.6Zabbix目錄binconfscriptWindowsserver2003、2008、20124.1.1解壓安裝Zabbixagent的原始文件為zabbix_agents_3.4.6.win.zip,一般部署是:解壓在window服務器C盤根目錄下,再改寫conf下的配置文件。為了部署方便快捷,現提供已經配置成熟的zabbix目錄,直接復制zabbix目錄到window服務器的C盤根目錄下,最后進行程序安裝和啟動。因此,涉及C:zabbixscriptconfzabbix_agentd.win.conf文件的均可以忽略,供學習與交流。cmd或powershell下安裝和啟停命令如下:
cdC:zabbixbinwin64
.zabbix_agentd.exe-cC:zabbixconfzabbix_agentd.win.conf-i安裝
.zabbix_agentd.exe-cC:zabbixconfzabbix_agentd.win.conf-s啟動
.zabbix_agentd.exe-cC:zabbixconfzabbix_agentd.win.conf-x停止4.1.2添加端口Windows防火墻需要添加端口的出站和入站規則,將TCP協議10050、10051端口開放。不然zabbix主動或被動模式就獲取不到該設備的數據。1005010051是zabbix程序使用端口。4.1.3配置自啟動Zabbixagent安裝過程中,會自動將zabbixagent服務、開機自啟動配置好,只需要檢查下,agent是否正常運行即可。4.2windows事件查看器監控對windows系統下事件查看器中系統日志進行監控和信息獲取,將事件查看器中的錯誤(Error)、關鍵(Critical)等系統、程序重要信息打印在zabbix界面中,也可以添加監控項,觸發器來針對某個信息實現告警。例如:當事件查看器中,有磁盤壞塊告警信息時,zabbix界面會進行告警提示。或是配合研發部門程序日志,程序可將告警信息寫入到事件查看器中,zabbix對其進行監控告警。4.2.1zabbix官網指導說明/documentation/3.4/manual/config/items/itemtypes/zabbix_agent/win_keys截圖如下:4.2.2創建監控項類型:必須是zabbix客戶端(主動式)
鍵值:參考zabbix官方文檔,例子eventlog[System,,"Critical|Error"]將事件查看器中“系統”欄中“Critical|Error”類型的信息過濾出來eventlog[System,,"Error",".Disk."]事件查看器中“系統”欄中“Critical|Error”類型的信息過濾,并使用正則表達式匹配詳細信息中的來源:Disk的關鍵字eventlog[Security,,"SuccessAudit",,^4624$,,skip].nodata(60)}=0andeventlog[Security,,"SuccessAudit",,^4624$,,skip].regexp(administrator,1)}=0
如果在60秒內有監控到數據,并且監控內容不包含字符串"administrator"則觸發告警,如果60秒內沒有新的數據了,則觸發器恢復OK。簡單點說就是,用戶登錄后觸發器觸發至少會持續60秒,如果用戶不斷的登錄成功,間隔小于60秒,則觸發器一直是problem狀態。應用集:Event事件日志4.2.3創建觸發器名稱:{HOST.NAME}代表主機名表達式:添加“最新一條日志級別不等于N”,N取值是0、1或其他,0表示正常,1和其他值表示不正常。所以N取值不等于0,觸發告警。4.2.4事件查看器注意事項系統:System安全:Security級別:錯誤(Error)、關鍵(Critical)、信息(Information)等,參考zabbix官網指導說明來源:一定要看詳細信息中的ProviderName,次截圖上,詳細信息與常規來源不一致,一個是Microsoft-Windows-TerminalServices-Printers,一個是TerminalServices-Printers。容易導致正則匹配出錯,建議使用含有匹配的方式。4.2.5監控結果4.3windows系統CPU監控4.3.1監控CPU使用率因為zabbix未提供能查看cpu使用率的監控項,只提供了cpu負載的監控項,就需新增建監控項,監控CPU用戶使用率與其類似,不再說明。(zabbix3.4版本)4.3.2創建監控項名稱:CPU使用率鍵值:為了規范命名cpu_time信息類型:浮點數更新時間:1m單位:%應用集:CPU狀態4.3.3創建觸發器名稱:CPU使用率過高:{HOST.NAME}表達式:{WindowsServerModel:cpu_time.avg(5m)}>905分鐘均值大于90%告警4.3.4配置圖形注:根據需要調整繪圖風格4.3.5配置zabbix_agentd.win.conf最后行添加#CPU使用率
PerfCounter=cpu_time,"Processor(_Total)%ProcessorTime",60
#CPU用戶使用率
PerfCounter=cpu_usertime,"Processor(_Total)%UserTime",60注:cpu_time為zabbix界面上監控項配置的鍵值,雖然可以自定義,但要規范命名。
60為數據更新時間,單位秒,要小于等于zabbix界面上監控項配置“更新時間”,這樣才有更新的意義。配置完成后,重啟zabbix_agentd生效cdC:zabbixbinwin64
.zabbix_agentd.exe-cC:zabbixconfzabbix_agentd.win.conf-x
.zabbix_agentd.exe-cC:zabbixconfzabbix_agentd.win.conf-s4.3.6監控結果4.4windows系統內存監控應用集:Memory內存狀態Memory內存狀態主要監控項有:Memory內存使用率、Memory內存使用量、Memory內存總量(帶上Memory方便了排序歸類)。Swap交換分區使用率、Swap交換分區使用量、Swap交換分區總量。zabbix自帶內存監控項,可以直接創建使用。監控項配置:
說明:windows系統下沒有支持system.swap.size[pused],swap使用率監控項,一般swap分區被使用了,就可以說明物理內存不足,可以使用pfree替代。4.4.1創建監控項
以監控內存使用率為例:名稱:內存使用率鍵值:vm.memory.size[pused]其他鍵值:vm.memory.size[used]vm.memory.size[total]信息類型:浮點數更新時間:1m單位:%應用集:Memory內存狀態4.4.2創建觸發器名稱:內存使用率過高:{HOST.NAME}表達式:{WindowsServerModel:vm.memory.size[pused].avg(5m)}>905分鐘均值大于90%告警4.4.3
配置圖形4.4.5監控結果4.5windows磁盤讀寫監控Windows下磁盤監控,可以細分到監控各個磁盤數據如C、D、E等,目前未想到到自發現規則配置,就對所有磁盤進行監控取總體值,以總體值為例進行監控配置。細分:LogicalDisk(E:)DiskWriteBytes/secLogicalDisk(C:)DiskWriteBytes/secLogicalDisk(D:)DiskWriteBytes/secLogicalDisk(_Total)DiskWriteBytes/sec總體:PhysicalDisk(_Total)DiskReadBytes/sec4.5.1創建監控項磁盤讀寫監控項較多,配置監控項如下圖:鍵值:disk_read_speed、disk_write_speed、disk_free_percent、disk_rw_percent、disk_rw_percent等。C:zabbixscriptconfzabbix_agentd.win.conf文件配置為:#Disk磁盤讀速率Bytes/s
PerfCounter=disk_read_speed,"PhysicalDisk(_Total)DiskReadBytes/sec",60#Disk磁盤寫速率Bytes/s
PerfCounter=disk_write_speed,"PhysicalDisk(_Total)DiskWriteBytes/sec",60#Disk磁盤空閑狀態百分比
PerfCounter=disk_free_percent,"PhysicalDisk(_Total)%IdleTime",60#Disk磁盤讀和寫總共用時百分比
PerfCounter=disk_rw_percent,"PhysicalDisk(_Total)%DiskTime",60#Disk磁盤讀用時百分比
PerfCounter=disk_read_percent,"PhysicalDisk(_Total)%DiskReadTime",60#Disk磁盤寫用時百分比
PerfCounter=disk_write_percent,"PhysicalDisk(_Total)%DiskWriteTime",60#Disk磁盤平均讀寫隊列長度
PerfCounter=disk_queue_length,"PhysicalDisk(_Total)Avg.DiskQueueLength",60#Disk磁盤平均讀隊列長度
PerfCounter=disk_read_queue_length,"PhysicalDisk(_Total)Avg.DiskReadQueueLength",60#Disk磁盤平均讀隊列長度
PerfCounter=disk_write_queue_length,"PhysicalDisk(_Total)Avg.DiskWriteQueueLength",604.5.2配置圖形Disk磁盤讀寫用時百分比:選擇Windows系統監控模板:Disk磁盤讀用時百分比Windows系統監控模板:Disk磁盤寫用時百分比Windows系統監控模板:Disk磁盤讀和寫總共用時百分比調整線條以及顏色4.5.3監控結果4.6windows磁盤容量監控Zabbix自帶監控模板,在自動發現規則Mountedfilesystemdiscovery已經配置。可用來來監控CDEF等分區容量。可以改成中文易讀。如下圖:4.7windows網卡流量監控Zabbix自帶監控模板,在自動發現規則Networkinterfacediscovery已經配置。需要過濾掉不需要監控的端口,只顯示真實的網卡流量,在zabbix界面,管理-一般-正則表達式中找到Networkinterfacesfordiscovery項,添加過濾規則。例如:4.8windows系統時間監控需要創建兩個監控項,一個是絕對時間用于觸發器告警,另一個是易讀時間顯示。通過獲取到被監控系統時間與zabbixserver做時差比較,超過10分鐘告警。4.8.1創建監控項鍵值:system.localtime[local]易讀時間鍵值:system.localtime[]絕對時間4.8.2創建觸發器
名稱:與zabbix主機時差超過10分鐘:{HOST.NAME}表達式:{WindowsServerModel:system.localtime[].fuzzytime(600)}=04.9windows系統進程監控Windows的進程或程序監控,是通過監控進程數量,以此為狀態標志位來判斷進程是否已停止運行。當最新進程數為0時,判斷進程已停止運行;當5分鐘內,平均值大于等于1時,恢復觸發器,判斷進程已恢復運行;當最新進程數不為0時,判斷進程正在運行。下面以監控Xshell.exe程序,運行進程為例,來創建實施監控。4.9.1創建監控項
鍵值:proc.num[Xshell.exe]Zabbix官網樣例proc.num[,,,,]信息類型:數字(無正負)方便看圖形,標志位更新間隔:1m1分鐘同一規定注:windows下只支持進程名和用戶名稱4.9.2創建觸發器名稱:Xshell程序已停止運行:{HOST.NAME}問題表現形式:{WindowsServerModel:proc.num[Xshell.exe].last()}=0恢復表達式:{WindowsServerModel:proc.num[Xshell.exe].avg(5m)}>1or{WindowsServerModel:proc.num[Xshell.exe].avg(5m)}=15windows系統硬件信息獲取本文通過在OS操作系統層面上,主要獲取windows服務器下CPU信息、內存信息、硬盤信息、操作系統、服務器信息。信息獲取的實現方式是通過在windows系統下部署自定義bat腳本,執行腳本獲取數據,再將獲取的信息發送給zabbix服務端,zabbix界面創建相應的監控項,觸發器等,最終將信息展示出來。監控項內容如下:CPU信息:型號、個數、內核數、邏輯核、CPU健康狀態,及狀態告警。內存信息:容量、個數、廠商、型號、序列號;主板支持內存最大容量和個數。硬盤信息:廠商、個數、容量、序列號、接口類型、硬盤健康狀態,及狀態告警。操作系統信息:主機名、操作系統版本、運行時長、統線程數、系統時間。服務器信息:品牌、型號、序列號。說明:一些特殊數據需要實現監控,例如CPU溫度、硬盤狀態、Raid卡狀態、風扇轉速等,windows沒有提供檢測硬件溫度組件,需要借助第三方工具如IPMItools,fan-speed等,也可以使用IPMI協議等其他方法來豐富windows系統硬件監控項,對于虛擬機并不適用,此時,推薦使用服務器的管理口,如HPE服務器的iLO、DEll服務器的iDRAC,聯想服務器XCC等開啟snmp功能,再進行zabbix配置,實現對服務器硬件全面監控。如果服務器未配置管理口,當然不能適用。5.1CPU信息獲取應用集:CPU硬件cpu信息主要有:CPU型號、CPU顆數、CPU核數、CPU邏輯核與線程(超線程,一般是核心數的2倍)監控項配置:5.1.1CPU型號需要編寫程序對CPU型號進行提取,相關配置如下:1、在C:zabbixconfzabbix_agentd.win.conf文件中:自定義程序開關設置為開啟,UnsafeUserParameters=1并添加監控項:#CPU型號
UserParameter=cpu_hardware_model,C:zabbixscriptcpu_hardware_model.batZabbix界面添加監控項:監控key值:cpu_hardware_model2、程序目錄為
C:zabbixscriptcpu_hardware_model.bat3、監控項配置:5.1.2CPU顆數需要編寫程序對CPU型號進行提取,相關配置如下:1、在C:zabbixconfzabbix_agentd.win.conf文件中:自定義程序開關設置為開啟,UnsafeUserParameters=1并添加監控項:#CPU型號
UserParameter=cpu_hardware_number,C:zabbixscriptcpu_hardware_number.bat2、程序目錄為:C:zabbixscriptcpu_hardware_number.bat3、監控項配置:5.1.3CPU核數需要編寫程序對CPU核數進行提取,相關配置如下:1、在C:zabbixconfzabbix_agentd.win.conf文件中:自定義程序開關設置為開啟,UnsafeUserParameters=1并添加監控項:#CPU核數一顆CPU的核心數
UserParameter=cpu_hardware_core,C:zabbixscriptcpu_hardware_core.bat2、程序目錄為:C:zabbixscriptcpu_hardware_core.bat3、監控項配置:5.1.4CPU邏輯核與線程使用zabbix自帶key,監控key值:system.cpu.num[]說明:type可用值,online(默認值),max范例:system.cpu.num經實踐檢查此處的key值為邏輯核心,CPU邏輯核心、線程(超線程,一般是核心數的2倍)windows系統下管理處理器,看到的數量。監控項配置:5.1.5監控結果5.2內存信息獲取memery內存信息:包括序號、制造商、容量、序列號、型號、速率memery內存主板支持:最大容量,最大槽位數5.2.1創建監控項創建:memery內存信息、memery內存主板支持鍵值:memory_biso_support_info、memory_hardware_info應用集:Memory內存硬件5.2.2監控結果1、監測中>最新數據>Memory內存硬件>memery內存信息可以看到,序列依次為:內存序號、容量、制造商、型號、序列號、速率。2、監測中>最新數據>Memory內存硬件>memery內存主板支持第一列為主板支持最大容量,第二列為主板支持最大槽位數。5.3操作系統信息OS操作系統信息:主機名、操作系統版本、運行時長、統線程數、系統時間。其中操作系統版本是自定義程序獲取,主機名、運行時長、統線程數、系統時間是zabbix自帶監控模板,自帶模板直接套用。5.3.1創建監控項創建:系統時間、操作系統版本、絕對秒、系統線程數、系統運行時長、主機名鍵值:system.localtime[local]、os_version、system.localtime[]、perf_counter[2250]、system.uptime、system.hostname[]應用集:OS操作系統5.3.2監控結果監測中>最新數據>OS操作系統5.4服務器信息監控服務器信息:品牌、型號、序列號。5.4.1創建監控項創建:OS服務器序列號、OS服務器型號、OS服務器品牌鍵值:os_device_serialnumber、os_device_mode、os_device_manufacturer應用集:OS服務器信息5.4.2監控結果監測中>最新數據>OS服務器信息
6Linux系統狀態監控Linux系統監控,監控項原則上能利用zabbix提供模板就盡量使用,zabbix提供不了的就編寫shell腳本,這樣就省去大部分代碼編寫時間,減少工作量。狀態信息原則上已使用率為主要觀察點,不需要再監控剩余率,Linux系統監控模板,與window系統監控應用集、監控項命名保持統一,監控模板如下所示:應用集:CPU狀態、CPU硬件、Disk硬盤、Disk磁盤狀態、Memory內存狀態、Memory內存硬件、OS操作系統、OS服務器信息、agent模板鏈接。6.1Linux部署zabbix_agent說明:為了支持批量安裝,一鍵化安裝linux5、6、7不同版本安裝,需要有腳本程序支撐,自己編寫的一建安裝腳本,易于批量部署,至于zabbixagent安裝配置也很簡單,網上搜索很多,這里就給讀者講一些我的實踐過程。zabbix_agent_linux_install腳本目錄,上傳至被監控linux主機,執行shinstall.shIPIP為zabbix服務IP,當前環境為23,該腳本一鍵化安裝,無需配置/etc/zabbix/下配置,自動識別linux版本,腳本內安裝選項可以調整。安裝完畢后,zabbix界面添加主機,并關聯模板。當然可以配置IP范圍使用自動發現主機。6.2Linux系統CPU監控應用集:CPU狀態
CPU狀態:CPU使用率、CPU負載1分鐘、5分鐘、15分鐘。
linux系統CPU狀態監控,官方已提供監控項,可以直接使用,無需自行編寫腳本。具體參考官方鏈接:/documentation/3.4/zh/manual/appendix/items/supported_by_platform?s[]=system&s[]=hw&s[]=cpu&s[]=info,支持linux與windows系統。監控項配置:注意:實際環境采用user系統使用率代替cpu整體使用率,因linux系統占用的cpu資源比較少1%。此處cpuload負載監控的值為top命令下看到的數值。6.3Linux系統內存監控應用集:Memory內存狀態Memory內存狀態主要監控項有:Memory內存使用率、Memory內存使用量、Memory內存總量(帶上Memory方便了排序歸類)。Swap交換分區使用率、Swap交換分區使用量、Swap交換分區總量。注意:此處的內存使用率為真實使用,會計算上緩存里占用的內存空間。不使用zabbix系統提供的vm.memory.size[pused](會將緩存計算進去),而使用通過shell腳本計算的真實內存。監控項配置:說明:配置與windows下內存監控方法一樣不在詳述。1、提供計算真實內存腳本/etc/zabbix/script/memory_fact_used.sh:2、在/etc/zabbix/zabbix_agentd.d/目錄下創建規范文件名.conf結尾,添加如下內容:UserParameter=mem.fact.used,/etc/zabbix/script/memory_fact_used.sh3、監控項配置:6.4Linux磁盤使用監控應用集:Disk磁盤使用Linux磁盤使用監控主要信息是:磁盤目錄的使用情況,包括容量與索引。監控方式:采用zabbix自動發現,將信息批量獲取。監控項配置:
監控項原型配置:
6.5Linux磁盤讀寫監控應用集:Disk磁盤讀寫Disk磁盤讀寫主要監控的信息有:讀寫速率、IO使用率、IO響應時間等1、采用zabbix自發現,編寫代碼生成含有sda磁盤信息的json文件Shell代碼:discovery_disk.sh或Python代碼:discovery_disk.py2、編寫代碼獲取IO信息:iocheck.sh,腳本使用了iostat命令進行數據獲取,關于iostat獲取的數據信息解釋,可翻閱資查看。主要對讀寫速率、IO使用率、IO響應時間關鍵指標進行監控。3、創建自發現規則4、創建監控項原型,如下圖所示,在zabbix界面的最新數據可查看監控信息。6.5Linux網卡狀態監控使用zabbix已有自發現規則進行監控,方法比較簡單,配置截圖如下:1、自發現規則配置2、過濾器配置此項是為了過濾不需要監控的網卡,采用正則匹配3、監控項原型配置7Linux系統硬件信息獲取這里linux硬件信息獲取,類比windows硬件信息獲取,都是在OS操作系統層面,如果想監控更多硬件,推薦使用服務器的管理口。實踐過程中,原則是盡可能使用zabbix系統已有監控項,直接使用效率高。7.1CPU信息獲取應用集:CPU硬件cpu信息主要有:CPU型號、CPU顆數、CPU核數、CPU邏輯核與線程(超線程,一般是核心數的2倍)監控項配置:7.1.1CPU型號使用zabbix自帶key:監控key值:
system.hw.cpu[,]說明:cpu為數量或是默認all,info:full(默認),curfreq,maxfreq,model或者vendor。監控項配置:7.1.2CPU顆數此處的CPU顆數指的是物理個數,如果是虛擬機則不具備參考依據。使用編寫的命令獲取CPU物理個數:監控key值:
UserParameter=server.cpu.num,cat/proc/cpuinfo|grep-E'physical[t]+id'|sort|uniq|wc-l監控項配置:7.1.3CPU核數使用編寫的命令獲取CPU核數,此處的核數為單個CPU的核心數,總核數為:CPU顆數*單個CPU的核數。在/etc/zabbix/zabbix_agentd.d/目錄下創建規范文件名.conf結尾,添加如下內容:UserParameter=server.cpu.corenum,echo"$(cat/proc/cpuinfo|grep-E'cpu[t]+cores'|sort|uniq|awk'{print$NF}')"監控項配置:7.1.4CPU邏輯核與線程使用zabbix自帶key:監控key值:system.cpu.num[]說明:type可用值,online(默認值),max范例:system.cpu.num經實踐檢查此處的key值為邏輯核心,CPU邏輯核心、線程(超線程,一般是核心數的2倍)Linux系統下top命令輸入1,看到的cpu數量。監控項配置:7.1.5監控結果7.2Memory內存信息獲取應用集:Memory內存硬件Memory內存硬件信息主要有:主板支持情況、每個內存條硬件信息。監控項配置:7.2.1Memory內存主板支持編寫的命令獲取內存主板支持情況:在/etc/zabbix/zabbix_agentd.d/目錄下創建規范文件名.conf結尾,添加如下內容:UserParameter=,dmidecode-t16|grep-E'Maximum|Devices'|sed-e's/^[t]//g;s/[t]$//g;s/[t]//g;s/MaximumCapacity/支持容量/g;s/NumberOfDevices/支持槽位/g'監控項配置:最新數據:7.2.2Memory內存信息編寫的命令獲取每個內存條硬件信息:在/etc/zabbix/zabbix_agentd.d/目錄下創建規范文件名.conf結尾,添加如下內容:UserParameter=.num,dmidecode-t17|grep-E"Size:[0-9]"-A12|grep-E'Locator:|Size:|Manufacturer:|PartNumber|Speed:|Type:'|sed-e's/^[t]//g;s/[t]$//g;s/[t]//g;s/Size/容量/g;s/Locator/槽位/g;s/Type/類型/g;s/Speed/速率/g;s/Manufacturer/制造商/g;s/PartNumber/序列號/g'|grep-v'Bank'|awk'{if(NR%6==0){print$0}else{printf"%st",$0}}'監控項配置:最新數據:7.3Disk硬盤信息獲取因有的服務器安裝了RAID卡或是連接了EMC等SAN存儲設備,而且企業里大量使用了虛擬機,增加了硬盤信息獲取的難度。對于linux與windows系統服務器獲取硬盤信息,將在后續文章中詳細介紹,下面介紹的方法,最適用于服務器安裝linux系統的場景,可簡單了解。應用集:Disk硬盤Disk硬盤主要獲取兩類信息:硬盤的硬件信息、硬盤的狀態(包括只讀):1、直通硬盤直通硬盤使用hdparm-i/dev/sda命令獲取硬盤信息直通硬盤使用smartctl-H/dev/sda命令獲取硬盤健康狀態編寫腳本,讀寫/dev/sdX硬盤,獲取硬盤讀寫檢查2、RAID硬盤需要安裝MegaCli等軟件,使用軟件命令來實現監控結果:7.4OS操作系統信息獲取應用集:OS操作系統OS操作系統信息主要有:主機名、操作系統版本、登錄用戶數量、系統時間、系統運行時長。除過操作系統版本需要編寫腳本外,其他都是zabbix系統已有監控項,可以直接使用。監控項配置:監控結果:7.5OS服務器信息獲取應用集:OS服務器信息OS服務器信息主要有:服務器品牌、型號、序列號。注意:如果是虛擬機則反應的是虛擬化平臺的廠家。如:VMware,Inc.監控項配置:腳本命令:
在/etc/zabbix/zabbix_agentd.d/目錄下創建規范文件名.conf結尾,添加如下內容:UserParameter=pany,dmidecode-ssystem-manufacturer|grep-v^#
UserParameter=,dmidecode-ssystem-product-name|grep-v^#
UserParameter=server.serial.number,dmidecode-ssystem-serial-number|grep-v^#|tr-d""監控結果:8Vmware虛擬平臺監控閱讀zabbix官方文檔,官方提供了Vmware虛擬機監控模板,并對模板進行了解釋說明,但未對相應名詞做解釋,如果不了解Vmware組件,可能對出現的名詞不容易理解。官方監控虛擬機相關文檔URL:/documentation/3.4/zh/manual/vm_monitoring/documentation/3.4/zh/manual/config/items/itemtypes/simple_checks/vmware_keys重要信息說明:VMwarevCenter:VMware平臺用于管理的服務端,管理群集、主機、虛擬機、存儲等。VMwarehypervisors:主機,安裝了ESXI軟件的服務器。TemplateVMVMware“模板應用于VMwarevCenter和VMwarehypervisors監控。TemplateVMVMwareHypervisor和TemplateVMVMwareGuest模板由自動發現使用,通常設置為自動鏈接到主機。low-leveldiscovery規則自動發現VMwarehypervisors和虛擬機,LDD就是自動發現。采用官方提供的監控模板流程是這樣實現的,首先建立監控主機,可以監控的對象是VMwarevCenter虛擬化平臺或者是ESXI主機,鏈接TemplateVMVMware模板,等待zabbixserver服務自動發現,而后對群集、主機、虛擬機等進行監控。有一節單講組配置,制定VMware下群集、主機、虛擬機、存儲等命名規范。8.1自發現模板配置主要通過創建主機VMwarevCenter和ESXI,連接TemplateVMVMware模板,進行自發現獲取群集、主機、虛擬機、存儲等信息。8.1.1創建主機此處創建主機為VmwareVcenter平臺,配置如下:主機名稱:IP地址端口默認使用:80主機組命名為:Vmware平臺Center數據中心組宏配置:{$PASSWORD}密碼{$URL}
https://IP
地址/sdk{$USERNAME}賬號模板:TemplateVMVMware(zabbix自帶模板)8.1.2數據驗證在配置--主機中查看是否已有虛擬機自生成,在最新數據--查看是否有最新數據,這樣就實現了Vmware平臺上的數據監控,但平臺分組不易讀,還要制定分組命名規范。8.2制定分組命名規范為了使zabbix平臺Vmware分組分類整潔明了,方便管理審閱,規范zabbix下虛擬化平臺分組名稱。1.首先宏觀分3大類,Vmware平臺、ESXI主機和WM虛擬機Zabbix創建主機組的命名規范:用于添加VmwareVcenter的組項目類別規范VmwareVcenter平臺組Vmware平臺Center數據中心組VmwareESXI平臺組Vmware平臺Center數據中心組注:如果確實存在VmwareESXI未加入到VmwareVcenter中,視ESXI為一個平臺。如果VmwareESXI已經加入到VmwareVcenter中,就不要單獨監控了,只監控VmwareVcenter即可。Zabbix創建主機組的命名規范:用于自動發現ESXI主機時,添加所有ESXI主機項目類別規范VmwareESXI主機組Vmware平臺ESXI主機組Zabbix創建主機組的命名規范:用于自動發現WM虛擬機時,添加所有WM虛擬機項目類別規范VmwareVM虛擬機組Vmware平臺VM虛擬機組2.細分在某一VmwareVcenter下進行分組,WM虛擬機組有:數據中心(VmwareVcenter)、群集與主機。項目類別規范VmwareVcenter虛擬機組Vmware虛擬機組數據中心Datecenter:VmwareCluster虛擬機組Vmware虛擬機組群集Cluster:VmwareESXI虛擬機組Vmware虛擬機組主機ESXI:3.細分在某一VmwareVcenter下進行分組,ESXI主機組有:數據中心(VmwareVcenter)與群集。項目類別規范VmwareVcenter虛擬機組Vmware主機組數據中心Datecenter:VmwareCluster虛擬機組Vmware主機組群集Cluster:為了使VmwareVcenter數據中心,虛擬機方便管理審閱,規范Vmware下虛擬化平臺分組名稱。命名規范:項目規范范例數據中心DadaCenter描述功能用途數據中心群集CLUSTER描述功能用途XXX平臺主機ESXIIP地址虛擬機VM系統-版本-功能描述-IPlinux-redhat-6.7-zabbix測試-8.3規范模板中組的命名
TemplateVMVMware模板修改,需要修改Vmware自動發現主機與自動發現虛擬機的主機模板。8.3.1Vmware自動發現主機根據8.2節,zabbix命名規范,修改組模板的兩項:1、Wmare主機組群集Cluster:{#CLUSTER.NAME}2、Wmare主機組數據中心DateCenter:{#DATACENTER.NAME}說明:1是群集組分組,2是數據中心分組,此組下均為ESXI主機信息要先創建zabbix主機組:Vmware平臺Center數據中心組,才能在此處的“群組”中添加。說明:包括所有ESXI主機,跨數據中心。8.3.2Vmware自動發現虛擬機根據8.2節,zabbix命名規范,修改組模板的三項:1、Vmware虛擬機組群集Cluster:{#CLUSTER.NAME}2、Vmware虛擬機組數據中心Datecenter:{#DATACENTER.NAME}3、Vmware虛擬機組主機ESXI:{#HV.NAME}要先創建zabbix主機組:Vmware平臺VM虛擬機組,才能在此處的“群組”中添加。說明:包括所有虛擬機,跨數據中心。8.3.3對模板進行漢化TemplateVMVMware、TemplateVMVMwareHypervisor、TemplateVMVMwareGuest8.4創建觸發器Zabbix自帶Vmware監控模板無觸發器配置,需要自研配置觸發器,且能配置觸發器項較少,盡量依靠部署agent進行全面監控告警。簡而言之,此觸發器告警是宏觀上的,為虛擬平臺整體狀態告警,不能詳盡描述虛擬機某一指標。但有幾個關鍵性指標,在OS下體現不出來,需要在VMware平臺上做監控:如CPUreadytime、內存ballon、swap等,依次要判斷VM運行情況。8.4.1ESXI主機觸發器1、VMwareESXI主機運行狀況配置如下圖:2、VMware虛擬傳感器運行狀況配置如下圖:3、主機不通,獲取不到數據在主機是關機或網絡不通狀態下,那肯定獲取不到某一監控項。可使用5分鐘內獲取不到數據判斷為主機不通。在主機是在開機狀態下,已經死機,CPU、內存某些監控項,數據是否恒為定值不確定,是停留某個值還是歸為0,要以此為參考依據建立觸發器,目前死機狀態值未獲取到,此項觸發器無法建立。只能提供思路。名稱:主機不通,獲取不到數據:{HOST.NAME}表達式:{TemplateVMVMwareHypervisor:vmware.hv.cpu.usage[{$URL},{HOST.HOST}].nodata(5m)}=14、主機產生balloon內存Balloon產生會在某種程度上說明:內存資源不足。此情況發生在,需要vmkernel調度其他VM虛擬機上空閑的內存資源,給內存不足的VM虛擬機。此具體問題需要分析,目前此量值無法在實踐中確定,首先進行提升信息,再根據VM或是ESXI主機內存資源情況進行合理判斷。8.4.2VM虛擬機觸發器可配置觸發器較少,對于虛擬機監控告警,只是輔助告警,盡量依靠部署agent,因此,重點關注2虛擬機電源關閉觸發器。創建磁盤使用率觸發器,C、D、E等磁盤剩余空間不足10%告警。說明:此處監控針對windows系統,創建該觸發器必然與agent監控告警重復,建議關閉此處觸發器。(也可以創建使用空間超過90%,依賴關系99%提升告警級別)創建觸發器:名稱:磁盤剩余空間不足10%:on{#FSNAME}表達式:{TemplateVMVMwareGuest:vmware.vm.vfs.fs.size[{$URL},{HOST.HOST},{#FSNAME},pfree].last()}<10允許手動關閉效果截圖:創建虛擬機電源狀態翻轉的觸發器,當關閉虛擬機時,提示信息“虛擬機電源關閉”,當虛擬機重新打開電源時,恢復表達式。因虛擬機電源開關可控,有可能存在誤關機操作。虛擬機開啟不做告警。創建觸發器:名稱:虛擬機電源關閉:{HOST.NAME}問題表現形式:{TemplateVMVMwareGuest:vmware.vm.powerstate[{$URL},{HOST.HOST}].abschange()}=1恢復表達式:{TemplateVMVMwareGuest:vmware.vm.powerstate[{$URL},{HOST.HOST}].last()}<>0注意:表達式多種多樣,但有的并不一定能實現。1.經研究,虛擬機觸發器可告警項較少,構建出發器也是可行,但總會與agent監控重復,效果并不理想,以上只做參考。比如C、D盤使用率監控,CPU,內存使用率,而且有時候虛擬機不安裝VMwaretools工具下監控不到C盤(如果是linux系統則是目錄),因此,針對虛擬機電源有必要監控告警,其他項不再深入研究。2.CPUreadytimeCPU就緒時間關鍵重要指標,如果此值大于2000ms或是2s,說明CPU性能不足,需要關注。可以通過ssh到ESXI主機上使用esxtop命令查看。此處實踐配置成10個周期內的均值3000ms告警。虛擬機設置CPU核心數,如果ESXI主機CPU核心數較少,VM設置的過多,會造成VM虛擬機直接搶占CPU資源造成,CPUreadytime值偏高,所以說虛擬機CPU核心數設置的并不是越多越好,只要滿足計算量即可。3.內存觸發器重要關鍵指標:共享內存大小、氣球內存大小、交換內存大小、壓縮內存大小。內存資源嚴重性逐步提高。共享、氣球內存是VM合理利用內存的方式,避免:交換內存、壓縮內存的產生。共享內存大小:氣
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國背景音樂系統行業市場現狀及未來發展前景預測分析報告
- 網紅特色飲品區域代理權合作協議書
- 服裝品牌區域代理銷售合同及品牌授權及售后服務體系協議
- 抖音團購運營系統培訓及團隊建設協議
- 2025年中國半導體高溫計市場前景預測及投資價值評估分析報告
- 短視頻平臺抖音獨家創意火花保險代理合作框架協議
- 特殊原因離婚雙方共同財產分割合同
- 影視動畫色彩管理軟件租賃與升級服務協議
- 快遞公司末端網點區域承包合同
- 教育培訓機構品牌合作與市場推廣合同
- 2025+CSCO非小細胞肺癌診療指南解讀課件
- 醫院后勤考試試題及答案
- 紡織設備電氣控制技術考核試卷
- 互聯網運營思維
- T∕CACM 1085-2018 中醫治未病技術操作規范 調神益智針法預防血管性認知障礙
- 案例研究-海洋水產養殖(海洋牧場及漁業綜合體)項目投資方案可行性
- 2025屆河南省許昌市名校高三下學期第二次模擬考試英語試題(原卷版+解析版)
- 2025中國儲備糧管理集團有限公司貴州分公司招聘22人筆試參考題庫附帶答案詳解
- 蛛網膜下腔出血介入術后護理
- 2025年臨床執業醫師考試的院前急救知識試題及答案
- 數據治理架構試題及答案
評論
0/150
提交評論