如何使用Librenms监控VMware ESXi主机
Librenms是一个基于社区的票据,其上次GPL许可版本的患我将版本有很多功能。
该工具基于PHP/MySQL/SNMP并将网络与服务器一起监控。
如果我们是Librenms的新手,请查看我们的教程顶级OpenSource网络和服务器监控工具,详细描述了Librenms的功能。
第1步:在VMware ESXi主机上配置SNMP
使用root用户凭据的首先ssh或者telnet到ESXi主机。
登录后,检查当前的SNMP配置
# esxcli system snmp get Authentication: Communities: Enable: false Engineid: Hwsrc: indications Loglevel: info Notraps: Port: 161 Privacy: Remoteusers: Syscontact: Syslocation: Targets: Users: V3targets:
通过设置社区字符串启动配置。
esxcli system snmp set --communities <community>
例如
esxcli system snmp set --communities MY_SNMP_STRING
配置SNMP端口
esxcli system snmp set --port 161
在服务器上启用SNMP
esxcli system snmp set --enable true
设置Syscontact.
esxcli system snmp set --syscontact Hyman@theitroad
设置服务器位置:
esxcli system snmp set --syslocation DC-01
检查SNMP防火墙规则:
# esxcli network firewall get Default Action: DROP Enabled: true Loaded: true # esxcli network firewall ruleset rule list | grep snmp snmp Inbound UDP Dst 161 161 # esxcli network firewall ruleset allowedip list | grep snmp snmp All
如果我们希望仅限于可信子网或者IP地址的访问权限,请将其设置为以下:
# esxcli network firewall ruleset allowedip add --ruleset-id snmp \ --ip-address 192.168.3.10 # esxcli network firewall ruleset allowedip add --ruleset-id snmp \ --ip-address 192.168.1.0/24 # esxcli network firewall ruleset set --ruleset-id snmp --enabled true
要允许任何源IP:
esxcli network firewall ruleset set --ruleset-id snmp --allowed-all true
要测试SNMPD服务正常工作,请使用 snmpwalk
Librenms主持人的命令:
$snmpwalk -v 1 -c <SNMP-COMMUNITY-STRING> <ESXi-host-ip>
例如
# snmpwalk -v 1 -c AADHrptO472lQo 10.245.2.2 | more SNMPv2-MIB::sysDescr.0 = STRING: VMware ESXi 5.1.0 build-2000251 VMware, Inc. x86_64 SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.6876.4.1 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (126700) 0:21:07.00 SNMPv2-MIB::sysContact.0 = STRING: Hyman@theitroad SNMPv2-MIB::sysName.0 = STRING: esxi-01.local SNMPv2-MIB::sysLocation.0 = STRING: DC-01 SNMPv2-MIB::sysServices.0 = INTEGER: 72 SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORID.1 = OID: SNMPv2-MIB::snmpMIB SNMPv2-MIB::sysORID.2 = OID: IF-MIB::ifMIB SNMPv2-MIB::sysORID.3 = OID: IP-MIB::ip SNMPv2-MIB::sysORID.4 = OID: IP-FORWARD-MIB::ipForward SNMPv2-MIB::sysORID.5 = OID: UDP-MIB::udp SNMPv2-MIB::sysORID.6 = OID: TCP-MIB::tcp SNMPv2-MIB::sysORID.7 = OID: SNMPv2-SMI::mib-2.47 SNMPv2-MIB::sysORID.8 = OID: SNMPv2-SMI::org.111.2.802.1.1.2 SNMPv2-MIB::sysORID.9 = OID: SNMPv2-SMI::org.111.2.802.1.1.4 SNMPv2-MIB::sysORID.10 = OID: iso.2.840.10006.300.43 SNMPv2-MIB::sysORID.11 = OID: SNMPv2-SMI::org.111.2.802.1.1.13 SNMPv2-MIB::sysORID.12 = OID: HOST-RESOURCES-MIB::hostResourcesMibModule SNMPv2-MIB::sysORID.13 = OID: SNMPv2-SMI::enterprises.6876.1.10 SNMPv2-MIB::sysORID.14 = OID: SNMPv2-SMI::enterprises.6876.2.10 SNMPv2-MIB::sysORID.15 = OID: SNMPv2-SMI::enterprises.6876.3.10 SNMPv2-MIB::sysORID.16 = OID: SNMPv2-SMI::enterprises.6876.4.90.10 SNMPv2-MIB::sysORID.17 = OID: SNMPv2-SMI::enterprises.6876.4.20 SNMPv2-MIB::sysORDescr.1 = STRING: SNMPv2-MIB, RFC 3418 SNMPv2-MIB::sysORDescr.2 = STRING: IF-MIB, RFC 2863 SNMPv2-MIB::sysORDescr.3 = STRING: IP-MIB, RFC 4293 SNMPv2-MIB::sysORDescr.4 = STRING: IP-FORWARD-MIB, RFC 4292 SNMPv2-MIB::sysORDescr.5 = STRING: UDP-MIB, RFC 4113 SNMPv2-MIB::sysORDescr.6 = STRING: TCP-MIB, RFC 4022 SNMPv2-MIB::sysORDescr.7 = STRING: ENTITY-MIB, RFC 4133 SNMPv2-MIB::sysORDescr.8 = STRING: IEEE8021-BRIDGE-MIB, REVISION 200810150000Z SNMPv2-MIB::sysORDescr.9 = STRING: IEEE8021-Q-BRIDGE-MIB, REVISION 200810150000Z SNMPv2-MIB::sysORDescr.10 = STRING: IEEE8023-LAG-MIB, REVISION 200706200000Z SNMPv2-MIB::sysORDescr.11 = STRING: LLDP-V2-MIB, REVISION 200906080000Z SNMPv2-MIB::sysORDescr.12 = STRING: HOST-RESOURCES-MIB, RFC 2790 SNMPv2-MIB::sysORDescr.13 = STRING: VMWARE-SYSTEM-MIB, REVISION 201008020000Z SNMPv2-MIB::sysORDescr.14 = STRING: VMWARE-VMINFO-MIB, REVISION 201006220000Z SNMPv2-MIB::sysORDescr.15 = STRING: VMWARE-RESOURCES-MIB, REVISION 200810150000Z
更改后重新启动SNMP服务:
# /etc/init.d/snmpd restart
第2步:将VMware ESXi主机添加到Librenms
完成在ESXi主机上配置SNMP的配置后,我们可以开始将主机添加到Librenms以进行监控。
Librenms提供了使用自动发现功能在网络上自动添加设备的能力。
当Discovery运行时,所有发现方法都会运行(默认为每6小时,在5分钟内进行新设备
登录Librenms作为Librenms用户,并导航到。 /opt/librenms
这应该是主文件夹 librenms
用户。
$ cd /opt/librenms
第一个要做的事情是将所需的配置选项添加到config.php。
添加SNMP详细信息
要自动添加设备,Librenms需要了解SNMP详细信息,SNMP V1,V2C和V3的示例以下:
//v1 or v2c $config['snmp']['community'][] = "my_custom_community"; $config['snmp']['community'][] = "another_community"; //v3 $config['snmp']['v3'][0]['authlevel'] = 'authPriv'; $config['snmp']['v3'][0]['authname'] = 'my_username'; $config['snmp']['v3'][0]['authpass'] = 'my_password'; $config['snmp']['v3'][0]['authalgo'] = 'MD5'; $config['snmp']['v3'][0]['cryptopass'] = 'my_crypto'; $config['snmp']['v3'][0]['cryptoalgo'] = 'AES';
添加设备时将尝试这些详细信息,我们可以指定这些混合。
定义要使用的子网使用:
$config['nets'][] = '192.168.0.0/24'; $config['nets'][] = '172.20.4.0/23';
我们还可以运行手动SNMP扫描,语法是:
$./snmp-scan.py [-h] [-r NETWORK] [-t THREADS] [-l] [-v]
例子:
$./snmp-scan.py 10.245.2.2 Scanning IPs: * Scanned 1 IPs: 1 known devices, added 0 devices, failed to add 0 devices Runtime: 0.39 seconds
此设备应显示在Librenms Admin Dashboard上的设备>所有设备>服务器下。
像5分钟一样,收集服务器事实并开始创建图形,
日志和主机事件也将开始显示。