Nagios 監控 ESXi

豆子今天想把VMware ESXi的監控也加入Nagios裏面。關於對ESXi的監控,可以實現的方法有很多,豆子的第一反應是用PowerShellCLi,第二個反應是SNMP,第三個反應是找找有沒有現成的腳本,就不用重複造輪子了~~

首先看看PowerShellCli怎麼監控的?

這個腳本本身很容易,自己通過get-stat就可以獲取對應的信息。比如說我打算查看一下某臺主機的內存狀態, 第一個是ballon的狀態,第二個是實際使用的內存,第三個是使用率,第四個是分配的內存,這個結果和VCenter上面查看是一致的

Nagios 監控 ESXi

VCenter上面查看
Nagios 監控 ESXi

腳本可以獲取信息了,那麼剩下的配置步驟就不贅述了,可以參考Nagios如何監控VEEAM的備份狀態 http://blog.51cto.com/beanxyz/1981136

第二種方式是SNMP

ESXi上面打開SNMP的方法一般是通過esxcli來實現。簡單的說就是設置community 字符串,打開snmp服務,允許防火牆訪問,我這裏就用最簡單snmp v2, 允許所有IP訪問

esxcli system snmp set --communities public
esxcli system snmp set --enable true
esxcli network firewall ruleset set --ruleset-id snmp --allowed-all true
[esxcli network firewall ruleset set --ruleset-id snmp --enabled true
/etc/init.d/snmpd restart

可以通過VCenter的圖形界面確認
Nagios 監控 ESXi

然後下載ESXi SNMP對應的MIB文件,下載後解壓到

/usr/share/snmp/mibs

[root@sydnagios mibs]# pwd
/usr/share/snmp/mibs
[root@sydnagios mibs]# ls
AGENTX-MIB.txt                       IEEE8021-TC-MIB.mib        NET-SNMP-EXTEND-MIB.txt    SNMP-NOTIFICATION-MIB.txt    UCD-SNMP-MIB.txt
BRIDGE-MIB.mib                       IEEE8023-LAG-MIB.mib       NET-SNMP-MIB.txt           SNMP-PROXY-MIB.txt           UDP-MIB.mib
BRIDGE-MIB.txt                       IF-INVERTED-STACK-MIB.txt  NET-SNMP-PASS-MIB.txt      SNMP-TARGET-MIB.txt          UDP-MIB.txt
DISMAN-EVENT-MIB.txt                 IF-MIB.mib                 NET-SNMP-TC.txt            SNMP-USER-BASED-SM-MIB.txt   UUID-TC-MIB.mib
DISMAN-SCHEDULE-MIB.txt              IF-MIB.txt                 NET-SNMP-VACM-MIB.txt      SNMP-USM-AES-MIB.txt         VMWARE-CIMOM-MIB.mib
DISMAN-SCRIPT-MIB.txt                INET-ADDRESS-MIB.mib       NETWORK-APPLIANCE-MIB.txt  SNMP-USM-DH-OBJECTS-MIB.txt  VMWARE-ENV-MIB.mib
ENTITY-MIB.mib                       INET-ADDRESS-MIB.txt       NETWORK-SERVICES-MIB.txt   SNMPv2-CONF.mib              VMWARE-ESX-AGENTCAP-MIB.mib
EtherLike-MIB.txt                    IP-FORWARD-MIB.mib         NOTIFICATION-LOG-MIB.txt   SNMPv2-CONF.txt              VMWARE-HEARTBEAT-MIB.mib
geist_bb_mib.mib                     IP-FORWARD-MIB.txt         notifications.txt          SNMPv2-MIB.mib               VMWARE-NSX-MANAGER-AGENTCAP-MIB.mib
geist_mib.txt                        IP-MIB.mib                 P-BRIDGE-MIB.mib           SNMPv2-MIB.txt               VMWARE-NSX-MANAGER-MIB.mib
HCNUM-TC.txt                         IP-MIB.txt                 Q-BRIDGE-MIB.mib    

然後就可以試試看了。

snmpwalk -m ALL -c public -v 2c sydesx1 hrStorage
HOST-RESOURCES-MIB::hrMemorySize.0 = INTEGER: 234845392 KBytes
HOST-RESOURCES-MIB::hrStorageIndex.1 = INTEGER: 1
HOST-RESOURCES-MIB::hrStorageIndex.2 = INTEGER: 2
HOST-RESOURCES-MIB::hrStorageIndex.3 = INTEGER: 3
HOST-RESOURCES-MIB::hrStorageIndex.4 = INTEGER: 4
HOST-RESOURCES-MIB::hrStorageIndex.5 = INTEGER: 5
HOST-RESOURCES-MIB::hrStorageIndex.6 = INTEGER: 6
HOST-RESOURCES-MIB::hrStorageIndex.7 = INTEGER: 7
HOST-RESOURCES-MIB::hrStorageIndex.8 = INTEGER: 8
HOST-RESOURCES-MIB::hrStorageIndex.9 = INTEGER: 9
HOST-RESOURCES-MIB::hrStorageIndex.10 = INTEGER: 10
HOST-RESOURCES-MIB::hrStorageIndex.11 = INTEGER: 11
HOST-RESOURCES-MIB::hrStorageType.1 = OID: HOST-RESOURCES-TYPES::hrStorageRamDisk
HOST-RESOURCES-MIB::hrStorageType.2 = OID: HOST-RESOURCES-TYPES::hrStorageRamDisk
HOST-RESOURCES-MIB::hrStorageType.3 = OID: HOST-RESOURCES-TYPES::hrStorageRamDisk
HOST-RESOURCES-MIB::hrStorageType.4 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk
HOST-RESOURCES-MIB::hrStorageType.5 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk
HOST-RESOURCES-MIB::hrStorageType.6 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk
HOST-RESOURCES-MIB::hrStorageType.7 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk
HOST-RESOURCES-MIB::hrStorageType.8 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk
HOST-RESOURCES-MIB::hrStorageType.9 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk
HOST-RESOURCES-MIB::hrStorageType.10 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk
HOST-RESOURCES-MIB::hrStorageType.11 = OID: HOST-RESOURCES-TYPES::hrStorageRam
HOST-RESOURCES-MIB::hrStorageDescr.1 = STRING: /vmfs/volumes/5d0548ee-62126bd1-5537-30262a317523
HOST-RESOURCES-MIB::hrStorageDescr.2 = STRING: /vmfs/volumes/becccae6-27d8d5c6-e47a-6ef1babf5cc6
HOST-RESOURCES-MIB::hrStorageDescr.3 = STRING: /vmfs/volumes/595c571e-a107b89c-252c-ac162d6e2444
HOST-RESOURCES-MIB::hrStorageDescr.4 = STRING: /vmfs/volumes/5a13b818-ebf86368-5680-ac162d6e2444
HOST-RESOURCES-MIB::hrStorageDescr.5 = STRING: /vmfs/volumes/5a13b834-323b0b4e-290f-ac162d6e2444
HOST-RESOURCES-MIB::hrStorageDescr.6 = STRING: /vmfs/volumes/5a13b867-e07e81d4-2acd-ac162d6e2444
HOST-RESOURCES-MIB::hrStorageDescr.7 = STRING: /vmfs/volumes/5a13b880-8baabbf8-d6ff-ac162d6e2444
HOST-RESOURCES-MIB::hrStorageDescr.8 = STRING: /vmfs/volumes/5a13cff4-1e80a610-63b2-ac162d6e2444
HOST-RESOURCES-MIB::hrStorageDescr.9 = STRING: /vmfs/volumes/5a1e48c8-6b5eefc4-f04e-ac162d6e1c38
HOST-RESOURCES-MIB::hrStorageDescr.10 = STRING: /vmfs/volumes/5a28dcf3-45c2e884-a6cb-ac162d6e2444
HOST-RESOURCES-MIB::hrStorageDescr.11 = STRING: Real Memory
HOST-RESOURCES-MIB::hrStorageAllocationUnits.1 = INTEGER: 4096 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.2 = INTEGER: 4096 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.3 = INTEGER: 8192 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.4 = INTEGER: 1048576 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.5 = INTEGER: 1048576 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.6 = INTEGER: 1048576 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.7 = INTEGER: 1048576 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.8 = INTEGER: 1048576 Bytes
...

SNMP成功了 後面的就可以用現成的check_snmp來寫Nagios命令了。這裏不贅述了

第三種方式,我看看有沒有現成的腳本可以直接用的,這樣不用我自己折騰了。

可以參考這個博文,網上有人用perl寫了個腳本,我們之間下載之後 直接調用就行了。當然請確保相關的模塊都已安裝了
http://www.bujarra.com/nagios-monitorizando-hosts-esxi/?lang=en

這個也很容易,常見的cpu,內存,存儲,網絡的監控都包括了


[root@sydnagios check_vmware_api-master]# ./check_vmware_api.pl -H sydesx1 -f check_vmware_api.auth -l mem -s usage -w 80 -c 90

CHECK_VMWARE_API.PL OK - mem usage=60.00 % | mem_usage=60.00%;80;90

[root@sydnagios check_vmware_api-master]# ./check_vmware_api.pl -H sydesx1 -f check_vmware_api.auth -l cpu -s usage -w 80 -c 90

CHECK_VMWARE_API.PL OK - cpu usage=10.56 % | cpu_usage=10.56%;80;90
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章