Iconos en Nagios (y check_mk)

Introducción.

Nagios incluye la posibilidad de añadir iconos a nuestros objetos Host y/o Servicios. Los iconos nos solo valen para que nuestro interface quede más vistoso y nos sea más sencillo localizar los equipos. Existen también otros usos interesantes destinados a un fin más práctico. Por ejemplo, en los iconos de servicios podemos distinguir la importancia de estos con iconos que marquen o distingan el uso y/o criticidad de estos. A mi me gusta poner al menos el los servicios solo informativos (versión agente nsclient++ / nrpe, uptime, …) el icono de la “I” informativa en azul para que sea más visual su cometido.
Otro uso interesante donde funcionan equipos de soporte cuya primera herramienta de alertas en Nagios, es asignar a los servicios en función de su criticidad distintos iconos con letras/colores que representen el SLA o la criticidad en la respuesta (N1, N2, N3,…). De esta forma de un vistazo se puede establecer el protocolo de actuación en función de la asignación del servicio que falla.

Donde se configuran los iconos en Nagios

Los iconos se configuran como directivas de Host y/o Servicios de Nagios. Las directivas que definen que iconos usar son las siguientes:

# Hosts
icon_image      image_file
icon_image_alt  alt_string
vrml_image      image_file
statusmap_image image_file
# Servicios
icon_image      image_file
icon_image_alt  alt_string

Según el manual de Nagios relativo a estas directivas:

  • icon_image → Define el nombre del archivo de imagen GIF, PNG y JPG que se asociarán con este host y se visualizarán en varios lugares en los CGIs. La imagen debe ser preferentemente de 40×40 pixeles
  • icon_image_alt → Texto alternativo para la Imagen para el TAG alt. No muy necesario hoy en día.
  • vrml_image image → Define el nombre del archivo de imagen GIF, PNG o JPG que se asociará con este host y se visualizará exclusivamente en el CGI statuswrl. Esto realmente es una rareza que nunca usé ni vi usar a nadie aunque lo probé en su día. Ese CGI nos muestra un “status map” pero en 3D tipo Realidad Virtual. En su día el standard VRML parecía que sería algo prometedor pero se quedó en nada, al menos para este tipo de representación. Necesitas un visor especial integrado con tu Navegador y el efecto conseguido es decepcionante. No pierdas el tiempo.
  • statusmap_image – > Define el nombre del archivo GD2 de imagen que se asociará con este host y se visualizará exclusivamente en StatusMap. Puedes usar también archivos GIF, PNG o JPG pero no se recomienda ya que consumirá mucha CPU al generar la vista de estado. La imagen debería ser para que se integre perfectamente de 24×24. ¿Usas las vista de Status Map? Si es así te merecerá la pena tener tus iconos al día. Con instalaciones grandes, a no ser que te coincida una arquitectura genialmente jerárquica de padres / hijos… no tiene mucha utilidad en mi opinión. Si quieres tener una representación visual de tu arquitectura… usa Nagvis. Requiere mucho más trabajo pero si te lo curras el resultado puede ser espectacular.

Ubicación de los ficheros de iconos.

Donde podemos localizar los iconos dependerá de como hayas instalado Nagios. Tienes que localizar el directorio “share” donde están los recursos que usa el interface web. En una instalación compilada estarán normalmente en:
/usr/local/nagios/share/images/logos
En una instalación de check_mk normalmente el directorio será el correspondiente a Nagios en:
/usr/share/check_mk/web/htdocs/images/icons/
Si usas check_mk con OMD la ruta será normalmente (relativa a tu site en OMD):
~/local/share/check_mk/web/htdocs/images/icons

Paquetes de iconos

Nagios trae solo algunos iconos concretos que forman parte del GUI pero no incluye de serie iconos para nuestro servicios / hosts. Debemos localizarlos en terceros y copiarlos al directorio de iconos para poder usarlos.
Sin duda el mejor paquete de iconos es el F*Nagios icon pack que podemos bajar de monitoringexchange. ¿De que será el F*…? 🙂

FNagios_icon_pack_preview

Tenemos también disponibles otros paquetes menos completos en Nagiosexchange.

Ejemplos de configuración para Nagios

Es muy cómodo y limpio usar plantillas preconfiguradas para la definición de iconos y posteriormente asignárselas a nuestros hosts para que hereden de estas. Un ejemplo:

# Plantilla iconos Linux
define host{
 name            linux-icons
 icon_image      linux.png
 icon_image_alt  Linux_Server
 statusmap_image linux.gd2
 register        0
}
# Plantilla iconos Windows
define host{
 name            windows-icons
 icon_image      windows_server.png
 icon_image_alt  Windows Server
 statusmap_image windows_server.gd2
 register        0
}

Ejemplo de definición de host Windows heredando la plantilla específica con las directivas de iconos:

define host{
 use       generic-host,windows-icons
 host_name SRVSQLSRV
 alias     SQL Server
 parents   Router1
 address   192.168.1.14
}

Una vez que le asignemos los iconos a nuestros hosts veremos que la añadimos una nota de color a nuestro Nagios cuando nos aparezcan los iconos al lado de nuestro Hosts.

Nagios_Servidores_VMWare

Ejemplos de configuración para Nagios + Check_mk

Si tenemos cmk, para configurar unos templates para los iconos en check_mk usaremos mejor la sintaxis de este en lugar de la de Nagios. Definimos configuraciones extra de Host para la directiva “icon_image” y asignamos el icono concreto que queramos a los hosts con el tag asociado. De esta forma con unas pocas líneas asignamos iconos a todos nuestros hots:

extra_host_conf["icon_image"] = [
 ( "redhat.png", ["linux"], ALL_HOSTS ),
 ( "windows.png", ["windows"], ALL_HOSTS ),
 ( "vmware.png", ["esxi"], ALL_HOSTS ),
 ( "hp.png", ["hp"], ALL_HOSTS ),
]

Para saber más de check_mk, su sintaxís, tags,… puedes ver el artículo  de “check_mk. Primeros pasos“.
Así de mono (lamento los tachones) quedara unos de nuestro grupos de Hosts con los iconos de cada Host en el interface de CMK. Servidores vSphere, Redhat y cabina de HP.

Nagios_Grupo_Iconos_2

 

Creación de iconos

Si no encuentras el icono siempre podrás crearlo con alguna herramienta para estos. Una vez creado el fichero base en GIF puedes convertirlo directamente al resto de formatos con utilidades Linux. La imagen GIF de partida debería ser de 40×40 pixels.
Hay instalar el paquete netpbm, que es el que trae las herramientas de conversión a otros formatos. También las utilidades de GD (para el icono gd2).

# Debian
apt-get install netpbm libgd-tools
#CentOS/Redhat?
yum install netpbm-progs gd-progs

El script que hay usar para convertir (crear fichero run.sh p.e.)

path="/usr/bin"
for arg
do
 if [ -f "$arg" ]; then
 echo converting $arg
 arg="$(echo $arg | sed 's/\.gif$//')"
 $path/giftopnm $arg.gif > $arg.pnm
 $path/pnmtopng -transparent rgb:ff/ff/ff $arg.pnm > $arg.png
 $path/pnmtojpeg -quality=100 -optimize -smooth=0 $arg.pnm > $arg.jpg
 $path/pngtogd2 $arg.png $arg.gd2 0 1 
 fi
done
rm -f *.pnm

Ejecutaremos: run.sh ARCHIVO.GIF

Podemos probar bajándonos el icono 40×40 del “muro” 🙂 en esta página por ejemplo y probar el script. Lo ideal es que los gif que hagamos sean transparentes para que queden mucho mejor. Si te animas búscate algún software para usar y/o manipular GIFs. Todos llevamos un artista dentro 😀

 

11 thoughts on “Iconos en Nagios (y check_mk)

  1. RafaC

    Buenas compañero,
    Lo primero felicidades por el blog, poca documentación en español sobre Nagios es mejor que la que tu ofreces.
    Lo segundo, sabes si es posible enlazar estos iconos con un mapa de Nagvis? Llevo algunos días dándole vueltas y no se me ocurre ninguna forma realmente operativa de enlazar check_mk y Nagvis y creo que esta seria una buena opción si fuera posible.
    Gracias de antemano, un saludo.

    Reply
    1. eldespistado1 Post author

      Que tal Rafa.
      No se exactamente a que te refieres. Si me detallas un poco más lo que quieres hacer…
      Si lo que necesitas es tener un enlace en el host / servicio que te lleve a un mapa de Nagvis te valdría configurar la directiva notes_url o action_url. Puedes configurarla en hosts, servicios y grupos de host/servicios. Puedes usar macros de Nagios para que la URI que pongas en estas (la del mapa de Nagivs) sea distinta en función del host, servicio, grupo,… Esto funciona también con el GUI de check_mk. Es como se integra PNP4Nagios para enlazarte a las gráficas p.e.

      Espero haberte ayudado.
      Un saludo.

      Reply
      1. RafaC

        Buenas de nuevo,

        Perdón por el retraso. Lo que me comentas es justo lo que necesitaba. Probe con notes_url y la opción url de Nagvis, para realizar la operación a la inversa y va genial.

        Muchas Gracias!!!

        Reply
  2. Lizardo

    Hola, muy buenos tus articulos sobre los diversos temas que tocas.

    Una consulta, quiero agregar los iconos dentro de check_mk, indicas que hay que agregar la variable extra_host_conf; en donde se guarda esta variable, en el archivo de configuracion principal??

    gracias por tu ayuda

    Reply
    1. eldespistado1 Post author

      Que tal Lizardo.
      Puedes definir el array de “extra_host_conf” en el archivo principal de configuración de check_mk (normalmente main.mk) o en un nuevo fichero que con extensión mk que creés en el directorio *.d que existirá al mismo nivel que “main.mk”. Todos los archivos que pongas en ese directorio con extensión “mk” también los tendrá en cuenta. Es buena práctica separar…

      Reply
  3. Santi

    Tengo un sistema con OMD y cuando añado el extra_host_conf con cualquier tag no aparecen los iconos. No se si tiene que ver con el hecho de que el archivo main.mk con OMD solo incluye la linea all_host = [] y debería ponerlo en otro archivo.

    Reply
  4. eldespistado1 Post author

    Que tal Santi.
    ¿Has copiado los iconos a la ubicación correcta de OMD tal como indico?
    El problema suele ser habitualmente no tener los iconos en el sitio correcto y/o con los permisos correctos. Hay que tener claro que Nagios usa una ruta y check_mk (omd en tu caso) otra.
    NO hay problema en ponerlo en el archivo main.mk, debería leerlo perfectamente pero puedes probar en cualquier otro *.mk donde tengas configuraciones. A modo de ejemplo, una config de una instalación reciente:

    extra_host_conf[“icon_image”] = [
    ( “redhat.png”, [“redhat”], ALL_HOSTS ),
    ( “redhat.png”, [“rhev”], ALL_HOSTS ),
    ( “windows.png”, [“win”], ALL_HOSTS ),
    ( “centos.png”, [“centos”], ALL_HOSTS ),
    ( “vmware.png”, [“esxi”], ALL_HOSTS ),
    ( “hp.png”, [“hp-ilo-ad”], ALL_HOSTS ),
    ( “cisco.png”, [“router”], ALL_HOSTS ),
    ( “nagios.png”, [“nagios”], ALL_HOSTS ),
    ]

    Un saludo.

    Reply
  5. John Jimenez

    me gustaría saber si es posible colocar los host groups en el mapa para ser visualizados o algo por el estilo

    Reply
    1. eldespistado1 Post author

      Me temo que tendrás que recurrir a Nagvis. Puedes encontrar varios artículos sobre instalación y configuración en la Guía de artículos.

      Reply
  6. IMANOL

    Buenas a todos, no consigo hacer que me aparezca el mapa de host y hostgroups me da este error pero no consigo subsanarlo, tampoco aparecen los nuevos host ni los hostgrpups. ayduda por favor.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Comment moderation is enabled. Your comment may take some time to appear.