Cómo monitorear el host VMware ESXi usando LibreNMS
En nuestro artículo reciente, analizamos Instalar y configurar LibreNMS en Ubuntu. Aquí cubriremos cómo monitorear hosts VMware ESXi usando LibreNMS. LibreNMS es una bifurcación comunitaria de la última versión de Observium con licencia GPL con muchas funciones. La herramienta está basada en PHP/MySQL/SNMP y monitorea la red junto con sus servidores.
Si es nuevo en LibreNMS, consulte nuestra guía sobre las principales herramientas de monitoreo de servidores y redes de código abierto, que describe las características de LibreNMS en detalle.
Paso 1: configurar SNMP en el host VMware ESXi
Primero SSH o Telnet a su host ESXi con credenciales de usuario root.
Una vez que haya iniciado sesión, verifique las configuraciones SNMP actuales
# esxcli system snmp get
Authentication:
Communities:
Enable: false
Engineid:
Hwsrc: indications
Loglevel: info
Notraps:
Port: 161
Privacy:
Remoteusers:
Syscontact:
Syslocation:
Targets:
Users:
V3targets:
Inicie la configuración configurando las cadenas de comunidad.
esxcli system snmp set --communities <community>
p.ej
esxcli system snmp set --communities MY_SNMP_STRING
Configurar el puerto SNMP
esxcli system snmp set --port 161
Habilite SNMP en el servidor
esxcli system snmp set --enable true
Establecer contacto del sistema
esxcli system snmp set --syscontact [email
Establecer ubicación del servidor:
esxcli system snmp set --syslocation DC-01
Verifique las reglas del firewall 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
Si desea limitar el acceso a SNMP únicamente desde las subredes o direcciones IP confiables, configúrelo de la siguiente manera:
# 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
Para permitir desde cualquier IP de origen:
esxcli network firewall ruleset set --ruleset-id snmp --allowed-all true
Para probar que el servicio snmpd funciona bien, utilice el comando snmpwalk
en el host LibreNMS:
$ snmpwalk -v 1 -c <SNMP-COMMUNITY-STRING> <ESXi-host-ip>
P.ej
# 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: [email
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
Reinicie el servicio SNMP después de realizar los cambios:
# /etc/init.d/snmpd restart
Paso 2: Agregar el host VMware ESXi a LibreNMS
Una vez que haya terminado con la configuración de SNMP en los hosts ESXi,
Inicie sesión en LibreNMS como usuario librenms y navegue hasta./opt/librenms
. Esta debería ser la carpeta de inicio del usuario librenms
.
$ cd /opt/librenms
Sin embargo, lo primero que debe hacer es agregar las opciones de configuración requeridas a config.php.
Agregar detalles de SNMP
Para agregar dispositivos automáticamente, LibreNMS necesita conocer los detalles de su SNMP; a continuación se muestran ejemplos de SNMP v1, v2c y 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';
Estos detalles se intentarán al agregar dispositivos; puede especificar cualquier combinación de estos.
Defina sus subredes a escanear usando:
$config['nets'][] = '192.168.0.0/24';
$config['nets'][] = '172.20.4.0/23';
También puede ejecutar un escaneo SNMP manual, la sintaxis es:
$ ./snmp-scan.py [-h] [-r NETWORK] [-t THREADS] [-l] [-v]
Ejemplo :
$ ./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
Este dispositivo debería aparecer en Dispositivos > Todos los dispositivos > Servidor en el panel de administración de LibreNMS.
Déle unos 5 minutos para recopilar datos del servidor y comenzar a crear gráficos.
También comenzarán a aparecer registros y eventos del anfitrión.
Más sobre seguimiento:
- Monitoreo de MySQL/MariaDB con Prometheus en cinco minutos
- Instale la herramienta de monitoreo LibreNMS en CentOS con Letsencrypt y Nginx