標籤:schedule sys entity mon 包括 lan ieee jar 直接
豆子今天想把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 publicesxcli system snmp set --enable trueesxcli 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
[[email protected] mibs]# pwd/usr/share/snmp/mibs[[email protected] mibs]# lsAGENTX-MIB.txt IEEE8021-TC-MIB.mib NET-SNMP-EXTEND-MIB.txt SNMP-NOTIFICATION-MIB.txt UCD-SNMP-MIB.txtBRIDGE-MIB.mib IEEE8023-LAG-MIB.mib NET-SNMP-MIB.txt SNMP-PROXY-MIB.txt UDP-MIB.mibBRIDGE-MIB.txt IF-INVERTED-STACK-MIB.txt NET-SNMP-PASS-MIB.txt SNMP-TARGET-MIB.txt UDP-MIB.txtDISMAN-EVENT-MIB.txt IF-MIB.mib NET-SNMP-TC.txt SNMP-USER-BASED-SM-MIB.txt UUID-TC-MIB.mibDISMAN-SCHEDULE-MIB.txt IF-MIB.txt NET-SNMP-VACM-MIB.txt SNMP-USM-AES-MIB.txt VMWARE-CIMOM-MIB.mibDISMAN-SCRIPT-MIB.txt INET-ADDRESS-MIB.mib NETWORK-APPLIANCE-MIB.txt SNMP-USM-DH-OBJECTS-MIB.txt VMWARE-ENV-MIB.mibENTITY-MIB.mib INET-ADDRESS-MIB.txt NETWORK-SERVICES-MIB.txt SNMPv2-CONF.mib VMWARE-ESX-AGENTCAP-MIB.mibEtherLike-MIB.txt IP-FORWARD-MIB.mib NOTIFICATION-LOG-MIB.txt SNMPv2-CONF.txt VMWARE-HEARTBEAT-MIB.mibgeist_bb_mib.mib IP-FORWARD-MIB.txt notifications.txt SNMPv2-MIB.mib VMWARE-NSX-MANAGER-AGENTCAP-MIB.mibgeist_mib.txt IP-MIB.mib P-BRIDGE-MIB.mib SNMPv2-MIB.txt VMWARE-NSX-MANAGER-MIB.mibHCNUM-TC.txt IP-MIB.txt Q-BRIDGE-MIB.mib
然後就可以試試看了。
snmpwalk -m ALL -c public -v 2c sydesx1 hrStorageHOST-RESOURCES-MIB::hrMemorySize.0 = INTEGER: 234845392 KBytesHOST-RESOURCES-MIB::hrStorageIndex.1 = INTEGER: 1HOST-RESOURCES-MIB::hrStorageIndex.2 = INTEGER: 2HOST-RESOURCES-MIB::hrStorageIndex.3 = INTEGER: 3HOST-RESOURCES-MIB::hrStorageIndex.4 = INTEGER: 4HOST-RESOURCES-MIB::hrStorageIndex.5 = INTEGER: 5HOST-RESOURCES-MIB::hrStorageIndex.6 = INTEGER: 6HOST-RESOURCES-MIB::hrStorageIndex.7 = INTEGER: 7HOST-RESOURCES-MIB::hrStorageIndex.8 = INTEGER: 8HOST-RESOURCES-MIB::hrStorageIndex.9 = INTEGER: 9HOST-RESOURCES-MIB::hrStorageIndex.10 = INTEGER: 10HOST-RESOURCES-MIB::hrStorageIndex.11 = INTEGER: 11HOST-RESOURCES-MIB::hrStorageType.1 = OID: HOST-RESOURCES-TYPES::hrStorageRamDiskHOST-RESOURCES-MIB::hrStorageType.2 = OID: HOST-RESOURCES-TYPES::hrStorageRamDiskHOST-RESOURCES-MIB::hrStorageType.3 = OID: HOST-RESOURCES-TYPES::hrStorageRamDiskHOST-RESOURCES-MIB::hrStorageType.4 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDiskHOST-RESOURCES-MIB::hrStorageType.5 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDiskHOST-RESOURCES-MIB::hrStorageType.6 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDiskHOST-RESOURCES-MIB::hrStorageType.7 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDiskHOST-RESOURCES-MIB::hrStorageType.8 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDiskHOST-RESOURCES-MIB::hrStorageType.9 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDiskHOST-RESOURCES-MIB::hrStorageType.10 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDiskHOST-RESOURCES-MIB::hrStorageType.11 = OID: HOST-RESOURCES-TYPES::hrStorageRamHOST-RESOURCES-MIB::hrStorageDescr.1 = STRING: /vmfs/volumes/5d0548ee-62126bd1-5537-30262a317523HOST-RESOURCES-MIB::hrStorageDescr.2 = STRING: /vmfs/volumes/becccae6-27d8d5c6-e47a-6ef1babf5cc6HOST-RESOURCES-MIB::hrStorageDescr.3 = STRING: /vmfs/volumes/595c571e-a107b89c-252c-ac162d6e2444HOST-RESOURCES-MIB::hrStorageDescr.4 = STRING: /vmfs/volumes/5a13b818-ebf86368-5680-ac162d6e2444HOST-RESOURCES-MIB::hrStorageDescr.5 = STRING: /vmfs/volumes/5a13b834-323b0b4e-290f-ac162d6e2444HOST-RESOURCES-MIB::hrStorageDescr.6 = STRING: /vmfs/volumes/5a13b867-e07e81d4-2acd-ac162d6e2444HOST-RESOURCES-MIB::hrStorageDescr.7 = STRING: /vmfs/volumes/5a13b880-8baabbf8-d6ff-ac162d6e2444HOST-RESOURCES-MIB::hrStorageDescr.8 = STRING: /vmfs/volumes/5a13cff4-1e80a610-63b2-ac162d6e2444HOST-RESOURCES-MIB::hrStorageDescr.9 = STRING: /vmfs/volumes/5a1e48c8-6b5eefc4-f04e-ac162d6e1c38HOST-RESOURCES-MIB::hrStorageDescr.10 = STRING: /vmfs/volumes/5a28dcf3-45c2e884-a6cb-ac162d6e2444HOST-RESOURCES-MIB::hrStorageDescr.11 = STRING: Real MemoryHOST-RESOURCES-MIB::hrStorageAllocationUnits.1 = INTEGER: 4096 BytesHOST-RESOURCES-MIB::hrStorageAllocationUnits.2 = INTEGER: 4096 BytesHOST-RESOURCES-MIB::hrStorageAllocationUnits.3 = INTEGER: 8192 BytesHOST-RESOURCES-MIB::hrStorageAllocationUnits.4 = INTEGER: 1048576 BytesHOST-RESOURCES-MIB::hrStorageAllocationUnits.5 = INTEGER: 1048576 BytesHOST-RESOURCES-MIB::hrStorageAllocationUnits.6 = INTEGER: 1048576 BytesHOST-RESOURCES-MIB::hrStorageAllocationUnits.7 = INTEGER: 1048576 BytesHOST-RESOURCES-MIB::hrStorageAllocationUnits.8 = INTEGER: 1048576 Bytes...
SNMP成功了 後面的就可以用現成的check_snmp來寫Nagios命令了。這裡不贅述了
第三種方式,我看看有沒有現成的指令碼可以直接用的,這樣不用我自己折騰了。
可以參考這個博文,網上有人用perl寫了個指令碼,我們之間下載之後 直接調用就行了。當然請確保相關的模組都已安裝了
http://www.bujarra.com/nagios-monitorizando-hosts-esxi/?lang=en
這個也很容易,常見的cpu,記憶體,儲存,網路的監控都包括了
[[email protected] check_vmware_api-master]# ./check_vmware_api.pl -H sydesx1 -f check_vmware_api.auth -l mem -s usage -w 80 -c 90CHECK_VMWARE_API.PL OK - mem usage=60.00 % | mem_usage=60.00%;80;90[[email protected] check_vmware_api-master]# ./check_vmware_api.pl -H sydesx1 -f check_vmware_api.auth -l cpu -s usage -w 80 -c 90CHECK_VMWARE_API.PL OK - cpu usage=10.56 % | cpu_usage=10.56%;80;90
Nagios 監控 ESXi