如何使用Librenms监控VMware ESXi主机

时间:2020-02-23 14:38:55  来源:igfitidea点击:

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服务正常工作,请使用 snmpwalkLibrenms主持人的命令:

$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分钟一样,收集服务器事实并开始创建图形,

日志和主机事件也将开始显示。