Nagios 監控 ESXi
阿新 • • 發佈:2018-01-10
esxcli ike firewall proxy 網絡 cto rip acm usr 豆子今天想把VMware ESXi的監控也加入Nagios裏面。關於對ESXi的監控,可以實現的方法有很多,豆子的第一反應是用PowerShellCLi,第二個反應是SNMP,第三個反應是找找有沒有現成的腳本,就不用重復造輪子了~~
首先看看PowerShellCli怎麽監控的?
這個腳本本身很容易,自己通過get-stat就可以獲取對應的信息。比如說我打算查看一下某臺主機的內存狀態, 第一個是ballon的狀態,第二個是實際使用的內存,第三個是使用率,第四個是分配的內存,這個結果和VCenter上面查看是一致的
VCenter上面查看
腳本可以獲取信息了,那麽剩下的配置步驟就不贅述了,可以參考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的圖形界面確認
然後下載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
Nagios 監控 ESXi