Profundizando nagios.pdf

Vista previa de texto
• Ver los principales ejemplos de plugin para ver cómo se hace esto.
• No haga archivos temporales a menos que sea absolutamente necesario.
• Si se necesitan archivos temporales, asegúrese de que el plugin y elimine
el archivo temporal, cuando finalice.
• No se deje engañar por enlaces simbólicos
• Si el plug-in abre todos los archivos, tomar medidas para asegurarse de
que no están siguiendo un enlace simbólico a otro lugar en el sistema.
• Validar todas las entradas
• Usar rutinas en utils.c utils.pm o escribir más según sea necesario
Referencias sobre el desarrollo de plugins
http://nagios.sourceforge.net/docs/3_0/pluginapi.html
http://nagiosplug.sourceforge.net/developer-guidelines.html
Ejemplo de desarrollo paso a paso
Plugin consultando SNMP
Dado el caso que queramos obtener información interna de determinado Host
y necesitemos que este disponible para consultarla por SNMP, podemos incluir
dicha informacion. Para ellos deberemos incluir diferentes directivas de
configuracion en el archivo snmpd.conf, y haremos uso de la tabla externa del
objeto UCD. La Tabla externa UCD es una tabla extensible de comandos de la
cual obtendremos su código de resultado de ejecución y su salida.
/etc/snmp/snmpd.conf
syslocation Unknown (configure /etc/snmp/snmpd.local.conf)
syscontact Root <root@localhost> (configure /etc/snmp/snmpd.local.conf)
exec
exec
exec
exec
comando1
comando2
comando3
comando3
/bin/comando1
/bin/comando2
/bin/comando3
/bin/comando4
rouser consultorsnmp auth
#createUser consultorsnmp MD5 consultorsnmp123
Luego podemos ver los resultados obtenidos realizando una consulta SNMP a
UCD-SNMP-MIB::extTable o .1.3.6.1.4.1.2021.8, obteniendo resultados similares
a:
snmpwalk -v 3 -l authNoPriv -a MD5 -u consultorsnmp
consultorsnmp123 127.0.0.1 UCD-SNMP-MIB::extTable*
UCD-SNMP-MIB::extIndex.1 =
UCD-SNMP-MIB::extIndex.2 =
UCD-SNMP-MIB::extIndex.3 =
UCD-SNMP-MIB::extIndex.4 =
UCD-SNMP-MIB::extNames.1 =
UCD-SNMP-MIB::extNames.2 =
UCD-SNMP-MIB::extNames.3 =
UCD-SNMP-MIB::extNames.4 =
UCD-SNMP-MIB::extCommand.1
INTEGER: 1
INTEGER: 2
INTEGER: 3
INTEGER: 4
STRING: comando1
STRING: comando2
STRING: comando3
STRING: comando4
= STRING: /bin/comando1
-A
