本文介绍使用LibreNMS监控VMware ESXi主机的方法。LibreNMS是Observium的最后一个GPL许可版本的基于社区的分支,基于PHP/MySQL/SNMP且有很多功能,可与服务器一起监控网络。先安装LibreNMS,参考使用Letsencrypt和Nginx在CentOS下安装LibreNMS监视工具。
一、在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 infrastructure@example.com 设置服务器位置: 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地址限制对SNMP的访问,请将其设置如下: # 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服务是否正常工作,请在LibreNMS主机上使用snmpwalk命令: $ 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: infrastructure@domain.com 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
二、将VMware ESXi主机添加到LibreNMS 完成ESXi主机上的SNMP配置后,即可开始将主机添加到LibreNMS进行监控,LibreNMS提供使用自动发现功能在网络上自动添加设备的功能,发现运行时会运行所有发现方法(默认情况下每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扫描,syntax为: $ ./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管理面板上的设备>所有设备>服务器下:
给它5分钟收集服务器事实并开始创建图表:
日志和主机事件也将开始出现:
至此,本文的目标达到。
相关主题 |