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 NSCPNRPE 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.


    snmp status

  • 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.

    reload snmp

  • Ya tenemos nuestro script como una extensión de MIB NET-SNMP-EXTEND vamos a realizar una petición con snmpwalk para verificarlo.

    permiso snmp por DBigCloud

  • 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

    resultado02


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:


Compártelo:

FacebookTwitterDiggGoogle BookmarksLinkedIn

Daniel Romero Sanchez
Author: Daniel Romero SanchezWebsite: https://www.dbigcloud.com
Responsable de sistemas y Arquitecto Cloud - vExpert 2015/19- VCP550-DCV - LPIC-1


Escribir un comentario

Código de seguridad
Refescar

DBigCloud en tu idioma

esenfrdeitpt

Gold Sponsor

 

vExpert 2020

DbigCloud newsletter

Suscribete a nuestra newsletter y recibe cada semana los mejores artículos seleccionados por DBigCLoud.
Email type
Please wait