Como muchos sabréis la mayoría de sistemas de monitorización usan principalmente el protocolo SNMP para monitorizar dispositivos, en casi todos, puedes usar tus propios scripts lo cuales o bien pueden ser ejecutados por SSH (teniendo una relación de confianza entre servidores Linux) o usando protocolos como puede ser NSCP o NRPE de Nagios. A veces se da la circunstancia en la que únicamente tienes la posibilidad de monitorizar a través de SNMP, por esto os voy a explicar como usar tus propios scripts a través de éste protocolo en Linux.
SNMP nos ofrece la posibilidad de usar la MIB NET-SNMP-EXTEND como una extensión para poder incluir nuestros propios scripts y poder ser ofrecidos a través de este protocolo.
La prueba la vamos a realizar en una máquina virtual Centos 6.5
- Lo primero que tenemos que hacer es comprobar si tenemos SNMP instalado junto con el paquete net-snmp-utils.
- Debemos comprobar que el servicio este iniciado, si no lo esta lo vamos a arrancar y configurar para que este activo cuando se reinicie el servidor.
- Vamos a crear un script que nos muestre el estado del servicio SNMP, lo vamos a llamar check_snmp.sh y lo vamos a dejar en la carpeta /root, después veréis que habrá que cambiar de lugar el script.
#!/bin/bash a=$(ps -ef | grep snmpd | grep -v 'grep' | wc -l) if [ $a -ge 1 ] then echo "Servicio snmpd running" else echo "Servicio snmpd parado" fi
- Ahora editamos el fichero /etc/snmp/snmpd.conf y añadimos la directiva que nos ofrecerá el estado del servicio snmpd.
extend snmpd_status /bin/bash /root/check_snmp.sh
- Una vez modificado el fichero de configuración, hay que recargarlo para que SNMP detecte los nuevos cambios.
- Ya tenemos nuestro script como una extensión de MIB NET-SNMP-EXTEND vamos a realizar una petición con snmpwalk para verificarlo.
- Como podeis ver hemos recibido un error, esto es porque snmp no tiene permisos para ejecutar el script dentro de la carpeta root, vamos a moverlo /usr/local/bin/ y hay que volver a editar el fichero /etc/snmp/snmpd.conf , cambiar la ruta del script y volver a realizar el reload del servicio.
mv /root/check_snmp.sh /usr/local/bin/check_snmp.sh
- Ahora si realizamos la petición de nuevo a través de snmpwalk, recibiremos el estado de servicio.
snmpwalk -v 2c -c public -O e 127.0.0.1 NET-SNMP-EXTEND-MIB::nsExtendObjects
Como veis el proceso ha sido bastante sencillo, hay veces que no sabemos que hay ciertas cosas muy útiles que se pueden hacer y no las utilizamos por desconocimiento.
Quizás te interese las siguientes entradas sobre Linux:
- AWS - Deshacer actualizaciones de paquetes en Amazon Linux
- Configurar syslog en Linux para dividir los log por criticidad
- Realizando migraciónes parciales con rsync en Linux
- Realizando peticiones soap a un web service con curl en bash
- Usa tus propios scripts a través de SNMP en Linux
- Eliminado ficheros en linux comprendidos entre dos fechas
- Configurar bonding de interfaces de red en linux
- Como crear una relación de confianza entre dos servidores Linux
- Ampliar un filesystem con LVM de un Servidor Virtual Linux
Compártelo: