官方監控虛擬機相關文檔 URL :
https://www.zabbix.com/documentation/3.4/zh/manual/vm_monitoring
https://www.zabbix.com/documentation/3.4/zh/manual/config/items/itemtypes/simple_checks/vmware_keys
重要信息說明:
VMware vCenter :VMware 平臺用於管理的服務端,管理群集、主機、虛擬機、存儲等。
VMware hypervisors :主機,安裝了 ESXI 軟體的伺服器。
Template VM VMware「 模板應用於 VMware vCenter 和 VMware hypervisors 監控。
Template VM VMware Hypervisor 和 Template VM VMware Guest 模板由自動發現使用,通常設置為自動連結到主機。
low-level discovery 規則自動發現 VMware hypervisors 和虛擬機, LDD 就是自動發現。
採用官方提供的監控模板流程是這樣實現的,首先建立監控主機,可以監控的對象是 VMware vCenter 虛擬化平臺或者是 ESXI 主機,連結 Template VM VMware 模板,等待 zabbix server 服務自動發現,而後對群集、主機、虛擬機等進行監控。
有一節單講組配置,制定 VMware 下群集、主機、虛擬機、存儲等命名規範。
8.1 自發現模板配置主要通過創建主機 VMware vCenter 和 ESXI ,連接 Template VM VMware 模板,進行自發現獲取群集、主機、虛擬機、存儲等信息。
8.1.1 創建主機此處創建主機為 Vmware Vcenter 平臺,配置如下:
主機名稱:IP 地址
埠 默認使用:80
主機組 命名為:Vmware 平臺 Center 數據中心組
宏配置:
{$PASSWORD} 密碼
{$URL} https://IP 地址 /sdk
{$USERNAME} 帳號
模板:Template VM VMware ( zabbix 自帶模板)
8.1.2 數據驗證在配置 -- 主機中查看是否已有虛擬機自生成,在最新數據 -- 查看是否有最新數據,這樣就實現了 Vmware 平臺上的數據監控,但平臺分組不易讀,還要制定分組命名規範。
為了使 zabbix 平臺 Vmware 分組分類整潔明了,方便管理審閱,規範 zabbix 下虛擬化平臺分組名稱。
1. 首先宏觀分 3 大類, Vmware 平臺、 ESXI 主機和 WM 虛擬機
Zabbix 創建主機組的命名規範:用於添加 Vmware Vcenter 的組
項目
類別
規範
Vmware Vcenter
平臺組
Vmware平臺 Center 數據中心組
Vmware ESXI
平臺組
Vmware平臺 Center 數據中心組
註:
如果確實存在 Vmware ESXI 未加入到 Vmware Vcenter 中,視 ESXI 為一個平臺。如果 Vmware ESXI 已經加入到 Vmware Vcenter 中,就不要單獨監控了,只監控 Vmware Vcenter 即可。
Zabbix 創建主機組的命名規範:用於自動發現 ESXI 主機時,添加所有 ESXI 主機
項目
類別
規範
Vmware ESXI
主機組
Vmware 平臺ESXI主機組
Zabbix 創建主機組的命名規範:用於自動發現 WM 虛擬機時,添加所有 WM 虛擬機項目
類別
規範
VmwareVM
虛擬機組
Vmware 平臺VM虛擬機組
2. 細分在某一 Vmware Vcenter 下進行分組, WM 虛擬機組有:數據中心( Vmware Vcenter )、群集與主機。
項目
類別
規範
Vmware Vcenter
虛擬機組
Vmware 虛擬機組 數據中心 Datecenter:
Vmware Cluster
虛擬機組
Vmware 虛擬機組 群集 Cluster:
Vmware ESXI
虛擬機組
Vmware 虛擬機組 主機 ESXI:
3. 細分在某一 Vmware Vcenter 下進行分組, ESXI 主機組有:數據中心( Vmware Vcenter )與群集。
項目
類別
規範
Vmware Vcenter
虛擬機組
Vmware 主機組 數據中心 Datecenter:
Vmware Cluster
虛擬機組
Vmware 主機組 群集 Cluster:
為了使 Vmware Vcenter 數據中心,虛擬機方便管理審閱,規範 Vmware 下虛擬化平臺分組名稱。
命名規範:
項目
規範
範例
數據中心 DadaCenter
描述功能用途
數據中心
群集 CLUSTER
描述功能用途
XXX平臺
主機 ESXI
IP位址
192.168.1.1
虛擬機VM
系統-版本-功能描述-IP
linux-redhat-6.7-zabbix測試-192.168.1.2
Template VM VMware 模板修改,需要修改 Vmware 自動發現主機與自動發現虛擬機的主機模板。
8.3.1 Vmware 自動發現主機根據 8.2 節, zabbix 命名規範,修改組模板的兩項:
1 、 Wmare 主機組 群集 Cluster :{#CLUSTER.NAME}
2 、 Wmare 主機組 數據中心 DateCenter :{#DATACENTER.NAME}
說明:1 是群集組分組, 2 是數據中心分組,此組下均為 ESXI 主機信息
要先創建 zabbix 主機組:Vmware 平臺 Center 數據中心組,才能在此處的 「 群組 」 中添加。
說明:包括所有 ESXI 主機,跨數據中心。
8.3.2 Vmware 自動發現虛擬機根據 8.2 節, zabbix 命名規範,修改組模板的三項:
1 、 Vmware 虛擬機組 群集 Cluster :{#CLUSTER.NAME}
2 、 Vmware 虛擬機組 數據中心 Datecenter :{#DATACENTER.NAME}
3 、 Vmware 虛擬機組 主機 ESXI :{#HV.NAME}
要先創建 zabbix 主機組:Vmware 平臺 VM 虛擬機組,才能在此處的 「 群組 」 中添加。
說明:包括所有虛擬機,跨數據中心。
8.3.3 對模板進行漢化Template VM VMware 、 Template VM VMware Hypervisor 、 Template VM VMware Guest
8.4 創建觸發器Zabbix 自帶 Vmware 監控模板無觸發器配置,需要自研配置觸發器,且能配置觸發器項較少,儘量依靠部署 agent 進行全面監控告警。簡而言之,此觸發器告警是宏觀上的,為虛擬平臺整體狀態告警,不能詳盡描述虛擬機某一指標。
但有幾個關鍵性指標,在 OS 下體現不出來,需要在 VMware 平臺上做監控:如 CPU ready time 、內存 ballon 、 swap 等,依次要判斷 VM 運行情況。
8.4.1 ESXI 主機觸發器1 、VMware ESXI 主機運行狀況
配置如下圖:
2 、VMware 虛擬傳感器運行狀況
配置如下圖:
3 、主機不通,獲取不到數據
在主機是關機或網絡不通狀態下,那肯定獲取不到某一監控項。可使用 5 分鐘內獲取不到數據判斷為主機不通。
在主機是在開機狀態下,已經死機, CPU 、內存某些監控項,數據是否恆為定值不確定,是停留某個值還是歸為 0 ,要以此為參考依據建立觸發器,目前死機狀態值未獲取到,此項觸發器無法建立。只能提供思路。
名稱:主機不通,獲取不到數據:{HOST.NAME}
表達式:{Template VM VMware Hypervisor:vmware.hv.cpu.usage[{$URL},{HOST.HOST}].nodata(5m)}=1
4 、主機產生 balloon 內存
Balloon 產生會在某種程度上說明:內存資源不足。此情況發生在,需要 vm kernel 調度其他 VM 虛擬機上空閒的內存資源,給內存不足的 VM 虛擬機。
此具體問題需要分析,目前此量值無法在實踐中確定,首先進行提升信息,再根據 VM 或是 ESXI 主機內存資源情況進行合理判斷。
8.4.2 VM 虛擬機觸發器可配置觸發器較少,對於虛擬機監控告警,只是輔助告警,儘量依靠部署 agent ,因此,重點關注 2 虛擬機電源關閉 觸發器。
創建 磁碟使用率 觸發器, C 、 D 、 E 等磁碟剩餘空間不足 10% 告警。
說明:此處監控針對 windows 系統,創建該觸發器必然與 agent 監控告警重複,建議關閉此處觸發器。(也可以創建使用空間超過 90% ,依賴關係 99% 提升告警級別)
創建觸發器:
名稱:磁碟剩餘空間不足 10% :on {#FSNAME}
表達式:{Template VM VMware Guest:vmware.vm.vfs.fs.size[{$URL},{HOST.HOST},{#FSNAME},pfree].last()}<10
允許手動關閉
效果截圖:
創建 虛擬機電源狀態翻轉的觸發器,當關閉虛擬機時,提示信息 「 虛擬機電源關閉 」 ,當虛擬機重新打開電源時,恢復表達式。因虛擬機電源開關可控,有可能存在誤關機操作。虛擬機開啟不做告警。
創建觸發器:
名稱:虛擬機電源關閉:{HOST.NAME}
問題表現形式:{Template VM VMware Guest:vmware.vm.powerstate[{$URL},{HOST.HOST}].abschange()}=1
恢復表達式:{Template VM VMware Guest:vmware.vm.powerstate[{$URL},{HOST.HOST}].last()}<>0
注意:表達式多種多樣,但有的並不一定能實現。
1. 經研究,虛擬機觸發器可告警項較少,構建出發器也是可行,但總會與 agent 監控重複,效果並不理想,以上只做參考。比如 C 、 D 盤使用率監控, CPU ,內存使用率,而且有時候虛擬機不安裝 VMware tools 工具下監控不到 C 盤(如果是 linux 系統則是目錄),因此,針對虛擬機電源有必要監控告警,其他項不再深入研究。
2. CPU ready time CPU 就緒時間
關鍵重要指標,如果此值大於 2000ms 或是 2s ,說明 CPU 性能不足,需要關注。可以通過 ssh 到 ESXI 主機上使用 esxtop 命令查看。此處實踐配置成 10 個周期內的均值 3000ms 告警。
虛擬機設置 CPU 核心數,如果 ESXI 主機 CPU 核心數較少, VM 設置的過多,會造成 VM 虛擬機直接搶佔 CPU 資源造成, CPU ready time 值偏高,所以說虛擬機 CPU 核心數設置的並不是越多越好,只要滿足計算量即可。
3. 內存觸發器
重要關鍵指標:共享內存大小、氣球內存大小、交換內存大小、壓縮內存大小。
內存資源嚴重性逐步提高。共享、氣球內存是 VM 合理利用內存的方式,避免:交換內存、壓縮內存的產生。
共享內存大小:
氣球內存大小:
交換內存大小:
壓縮內存大小:
8.4.3 Cluster 群集觸發器監控群集整體狀態
表達式:{Template VM VMware:vmware.cluster.status[{$URL},{#CLUSTER.NAME}].last()}>1
名稱:群集狀態異常:{HOST.NAME}
主要介紹通過郵件實現告警,當然告警的方式還有簡訊(需要簡訊貓)、企業微信、釘釘等。
E-mail 郵件告警配置有兩種方式:
1 、 zabbix-server 伺服器開啟 sendmail 或者 postfix 服務, linux 系統默認安裝好了郵件發送工具 mail ,利用該服務直接將告警信息通過 E-mail 發送到運維工程師的電子郵箱。
2 、 zabbix-server 使用外部郵箱帳戶發送告警信息到運維工程師的電子郵箱,類似 outlook 、 foxmail 郵箱代理。
總結:經過對上述兩種方式實踐,第一種方式郵件容易被識別為垃圾郵件遭過濾,公司目前有企業郵箱,可以開通名為 zabbix@XXXX.com 帳號做為外部郵箱發送告警信息,考慮到移動平臺應用支撐,運維人員使用有移動終端的郵箱,綜上建議部署第二種外部郵箱的方式。
詳細配置參考連結:
https://www.osyunwei.com/archives/8113.html
http://www.ttlsa.com/zabbix/zabbix-media-email/
https://www.cnblogs.com/nice1163/articles/11123423.html
9.1 第一種方式9.1.1 zabbix linux 下配置1 、開啟服務 sendmail 與 postfix 只開一個、 DNS 服務,並加入開機啟動。
2 、修改主機名
3 、mail 發郵件測試
報錯,根據提示解決報錯問題,
未報錯,郵箱不能收到郵件可能被郵箱伺服器屏蔽掉了, 139 郵箱收不到信息,
未報錯,郵箱能收到郵件說明發送正常。
9.1.2 zabbix 界面配置1 、設定發送 mail 途徑
管理》報警媒介類型》 Email ,配置截圖如下:
說明:SMTP 伺服器就是 zabbix-server 伺服器,地址是 192.168.1.2 , DY-zabbix 是 zabbix-server 伺服器的主機名, linux 下執行 hostname 命令查看, 1.2.1 節已配置好了。為啥要這樣配置,因為 zabbix 要利用 linux 下的 sendmail 工具發送郵件。
2 、設定收件人
界面右上角,點進去,報警媒介,添加收件人地址。
3 、設定告警動作
配置》動作》創建動作》動作、操作、恢復操作、確認操作,根據情況來設定。
詳細配置,見 9.3 節。
本例中使用發送告警郵件的帳號為 1833XXXX@139.com ,移動 139 郵箱,郵箱開啟簡訊功能,手機就可以收到告警簡訊,
1 、關閉 sendmail 和 postfix 服務,重啟域名服務。
2 、配置 vim /etc/mail.rc 最後一行添加
配置說明:使用 139 外部郵箱伺服器
set from 郵件從該郵件發出
set smtp 配置郵件服務的 smtp 域名地址
set smtp-auth 使用這個郵箱帳戶發送告警信息,需要填寫用戶名密碼。
3 、mail 發郵件測試
將 139 郵箱開啟簡訊服務,可以將郵件以簡訊的發送發送至手機。
4 、配置腳本,該腳本新增了格式化輸出的功能,提高了郵件的可讀性。
9.2.2 zabbix 界面配置
1 、設定發送 mail 途徑
管理》報警媒介類型》創建媒介類型,配置截圖如下:
2 、設定收件人
界面右上角,點進去,報警媒介,添加收件人地址。
3 、設定告警動作
配置》動作》創建動作》動作、操作、恢復操作、確認操作,根據情況來設定。
詳細配置,見 9.3 節。
9.2.3 驗證測試9.3 告警動作詳細配置動作功能:將告警信息以什麼樣的方式,什麼樣的內容形式發送給運維人員知曉。
界面配置示意圖:動作名稱是:外部郵件方式。需要創建
9.3.1 操作默認接收人:
【故障】伺服器 :{HOSTNAME1} 發生 : {TRIGGER.NAME} 故障
默認信息如:
告警主機 :{HOSTNAME1}
告警時間 :{EVENT.DATE} {EVENT.TIME}
告警等級 :{TRIGGER.SEVERITY}
告警信息 : {TRIGGER.NAME}
告警項目 :{TRIGGER.KEY1}
問題詳情 :{ITEM.NAME}
事件 ID:{EVENT.ID}
操作細節
1-1 觸發一次告警
步驟持續時間默認 0 為 1 小時
僅送到 選擇創建的腳本名稱 send_mail_script
9.3.2 恢復操作【恢復】 伺服器 :{HOSTNAME1}: {TRIGGER.NAME} 已恢復!
告警主機 :{HOSTNAME1}
告警時間 :{EVENT.DATE} {EVENT.TIME}
告警等級 :{TRIGGER.SEVERITY}
告警信息 : {TRIGGER.NAME}
告警項目 :{TRIGGER.KEY1}
問題詳情 :{ITEM.NAME}
事件 ID:{EVENT.ID}
9.3.3 告警級別嚴重性規則設定,可將 「 災難 」 、 「 嚴重 」 信息設置為郵件發送
設置位置:
界面右上角,點進去,報警媒介,編輯。
微信告警是指企業微信告警,首先要註冊一個企業微信,之後完成微信告警配置(可搜索參考網上文章)。
10.1 腳本這裡提供一個優化測試好的腳本模板,以供交流
10.2 消息配置
【故障】數據中心監控平臺
告警主機:{HOST.NAME}
告警信息:{TRIGGER.NAME}
告警等級:{TRIGGER.SEVERITY}
告警日期:{EVENT.DATE}
告警時間:{EVENT.TIME}
事件 ID :{EVENT.ID}
原題:基於 zabbix 系統監控 系列3——Vmware 虛擬平臺監控、郵件告警、企業微信告警配置
歡迎點擊文末閱讀原文到社區討論交流,發表您的觀點
覺得本文有用,請轉發或點擊「在看」,讓更多同行看到
歡迎關注社區 「監控」技術主題 ,將會不斷更新優質資料、文章。地址:http://www.talkwithtrend.com/Topic/3937
下載 twt 社區客戶端 APP
長按識別二維碼即可下載
或到應用商店搜索「twt」
*本公眾號所發布內容僅代表作者觀點,不代表社區立場