Este script lo monté para controlar las alertas de un sistema Solaris. Lo pongo en cada máquina como /opt/nagios-plugins/libexec/check_hw_solaris.sh y no le paso parámetro alguno. En nrpe.cfg queda pues tal que:

command[check_hw_solaris]=/opt/nagios-plugins/libexec/check_hw_solaris.sh

Se ejecutan tres comandos para detectar posibles errores.

  • El comando fmadm faulty -a (el Fault Management configuration tool) que proporciona información de aquellos dispositivos que el sistema operativo ha ‘desactivado’ cuando se ha encontrado con un error, por ejemplo, o que se encuentran en error:
/usr/sbin/fmadm faulty -a

Estos errores son los que el sistema operativo identifica como problemas puntuales y lo que suele hacer es deshabilitar el recurso. Pueden ser problemas reales o no serlo. Hasta que no se reinicie la maquina no se identificaran correctamente. Aún no se pueden considerar críticos por lo que en caso de aparecer alguna entrada el test devuelve Warning. En caso contrario devuelve OK.

  • El comando fmdump proporciona errores reconocidos en el sistema. Despues de un reinicio el sistema operativo hace chequeos de memoria y otros dispositivos, verificando los dispositivos marcados como desactivados (párrafo anterior). Aquellos que fallan quedan deshabilitados en su totalidad y se suele recomendar su reemplazo, creándose una entrada en este log.
/usr/sbin/fmdump

Se trata de un histórico, por lo que se mostrarán también los errores pasados que puedan haberse solucionado. En este caso ejecutamos el test pasándole que nos muestre los errores reconocidos de la semana anterior. De aparecer errores de la semana anterior el test devuelve Warning. En caso contrario devuelve OK.

  • Si se trata de un servidor SPARC con System Controller, se verifica que tenga el comando scadm y se ejecuta con la opcion loghistory, lo que proporciona un listado de las últimas alertas de la LOM.
berlin# ARCH=`uname -i`
berlin# /usr/platform/${ARCH}/sbin/scadm loghistory
Feb 26 19:55:27 : 00070002: "SC Login: User admin Logged out."
Feb 26 19:55:16 : 00070002: "SC Login: User admin Logged on."
Oct 26 15:38:12 : 00070002: "SC Login: User admin Logged out."
Oct 26 15:37:54 : 00070002: "SC Login: User admin Logged on."
Aug 28 15:48:30 : 00070002: "SC Login: User admin Logged out."
Aug 28 15:47:54 : 00070002: "Indicator SYS.ACT is now ON"
Aug 28 15:46:32 : 00070002: "SC Login: User admin Logged on."
Aug 28 15:45:58 : 0004000b: "Host System has read and cleared bootmode."
Aug 28 15:45:57 : 00070002: "Indicator SYS.ACT is now OFF"

El script obtiene las que corresponden con el dia de hoy y los últimos 4 días. Si hay alertas de hoy salta un Critical y si son de los últimos 4 días se pone en Warning. No todo lo que sale son alertas de problemas, también salen los accesos a la consola, si se ha activado la luz de LOCATE del servidor, pero también si una fuente está caída o hay algún problema con el hardware.

Más información sobre las alertas en Solaris:

Se debe tener en cuenta que en este script existen comandos de sistema que sólo puede ejecutar root. Para que los tests con el usuario nagios funcionen se ha habilitado en el sudo que nagios pueda ejecutar este comando. En una máquina nueva donde vayamos a poner este script ejecutaremos el /usr/local/sbin/visudo y añadiremos la linea tal como se describe a continuación:

berlin# /usr/local/sbin/visudo
nagios  ALL=(root)      NOPASSWD: /usr/platform/*/sbin/scadm
nagios  ALL=(root)      NOPASSWD: /usr/sbin/fmadm
nagios  ALL=(root)      NOPASSWD: /usr/sbin/fmdump