Habilitar Nagiosgraph para Nagios 4 en Centos 8

Llevamos unos días hablando de Nagios 4, tanto sobre su instalación, configuración y diferentes opciones adicionales, como añadirle gráficas MRTG o las herramientas NDOUtils. Pues bien, siguiendo con esta senda, vemos como habilitar el módulo Nagiosgraph.

¿Qué es Nagiosgraph?

Como seguramente ya sabrás por defecto Nagios Core no incluye gráficas. Esto lo podemos solventar con el módulo Nagiosgraph, un complemento muy útil, que amplia la funcionalidad de Nagios Core y muestra gráficos históricos. Analizando los datos de salida y rendimiento recopilados por Nagios y los almacena en archivos RRD (Round Robin Data). Nagiosgraph crea gráficos y genera páginas HTML con informe gráficos de estos datos.

Por lo que, al igual que en las otras ocasiones, vamos a volver a utilizar nuestro VPS creado en nuestro proveedor de confianza Clouding.io, con un sistema operativo Centos 8.

Instalar Nagiosgraph en Centos 8

Cuento con que ya tenéis instalado Nagios 4 en vuestro servidor, si no es así, aquí os explico como:

Instalar Nagios 4 en RHEL 8 y Centos 8

Una vez hecho esto debemos añadir una serie de paquetes necesarios imprescindibles para el buen funcionamiento de este módulo gráfico.

sudo dnf install perl-GD php-gd rrdtool-perl rrdtool perl-CGI perl-Time-HiRes

Además, para evitar problemas con los módulos de PERL, realizamos estos pasos:

sudo dnf install perl-CPAN
sudo cpan Nagios::Config

Y ya podemos descargar el código de este complemento.

cd /home/davidochobits #en mi caso
wget https://sourceforge.net/projects/nagiosgraph/files/nagiosgraph/1.5.2/nagiosgraph-1.5.2.tar.gz

Descomprimimos y ejecutamos los scripts encargados de revisar que nuestro sistema operativo cumple con los requisitos del producto.

tar xvf nagiosgraph-1.5.2.tar.gz
sudo su -
cd /home/davidochobits/nagiosgraph-1.5.2
./install.pl --check-prereq
./install.pl --layout overlay --prefix /usr/local/nagios

Durante la instalación debemos configurar las rutas de la siguiente manera, de esta manera el instalador se encargará de la mayoría de la configuración.

En la parte de requisitos podéis ver la salida en mi servidor:

[root@servnagios nagiosgraph-1.5.2]# ./install.pl --check-prereq
checking required PERL modules
  Carp...1.42
  CGI...4.38
  Data::Dumper...2.167
  Digest::MD5...2.55
  File::Basename...2.85
  File::Find...1.34
  MIME::Base64...3.15
  POSIX...1.76
  RRDs...1.6999
  Time::HiRes...1.9758
checking optional PERL modules
  GD...2.71
  Nagios::Config...36
checking nagios installation
  found nagios exectuable at /usr/local/nagios/bin/nagios
checking web server installation
  found apache executable at /usr/sbin/httpd

En la las instalación mis contestaciones han sido estas:

Destination directory (prefix)? [/usr/local/nagios]
Location of configuration files (etc-dir)? [/usr/local/nagios/etc/nagiosgraph]
Location of executables? [/usr/local/nagios/libexec]
Location of CGI scripts? [/usr/local/nagios/sbin]
Location of documentation (doc-dir)? [/usr/local/nagios/docs/nagiosgraph]
Location of examples? [/usr/local/nagios/docs/nagiosgraph/examples]
Location of CSS and JavaScript files? [/usr/local/nagios/share]
Location of utilities? [/usr/local/nagios/docs/nagiosgraph/util]
Location of state files (var-dir)? [/var/nagios] /usr/local/nagios/var
Location of RRD files? [/usr/local/nagios/var/rrd]
Location of log files (log-dir)? [/var/nagios] /usr/local/nagios/var
Path of log file? [/usr/local/nagios/var/nagiosgraph.log]
Path of CGI log file? [/usr/local/nagios/var/nagiosgraph-cgi.log]
Base URL? [/nagios]
URL of CGI scripts? [/nagios/cgi-bin]
URL of CSS file? [/nagios/nagiosgraph.css]
URL of JavaScript file? [/nagios/nagiosgraph.js]
URL of Nagios CGI scripts? [/nagios/cgi-bin]
Path of Nagios performance data file? [/tmp/perfdata.log] /usr/local/nagios/var/service-perfdata.log
username or userid of Nagios user? [nagios]
username or userid of web server user? [apache]
Modify the Nagios configuration? [n]
Modify the Apache configuration? [n]

Además modificamos el fichero de configuración de Nagios ubicado en /usr/local/nagios/etc/nagios.cfg y todo lo referido a las opciones de rendimiento. Además establecemos los siguientes parámetros para permitir que Nagios mantenga el historial de los datos de rendimiento.

# process nagios performance data using nagiosgraph
process_performance_data=1
service_perfdata_file=/usr/local/nagios/var/service-perfdata.log
service_perfdata_file_template=$LASTSERVICECHECK$||$HOSTNAME$||$SERVICEDESC$||$SERVICEOUTPUT$||$SERVICEPERFDATA$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=30
service_perfdata_file_processing_command=process-service-perfdata-for-nagiosgraph

Guardamos y comprobamos que la configuración es correcta y no tiene errores:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Editamos el fichero de configuración de los comandos, ubicado en /usr/local/nagios/etc/objects/commands.cfg y añadimos:

define command {
  command_name process-service-perfdata-for-nagiosgraph
  command_line /usr/local/nagios/libexec/insert.pl
}

Y volvemos a comprobar la configuración:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Reiniciamos Apache y Nagios

sudo systemctl restart nagios
sudo systemctl restart httpd

En mi caso, si accedemos a la siguiente URL veremos las opciones de configuración: http://servnagios.bitsandlinux.com/nagios/cgi-bin/showconfig.cgi

Como se observa en la imagen:

Opciones de configuración de Nagiosgraph

Para visualizar las gráficas editamos el fichero /usr/local/nagios/etc/objects/templates.cfg y añadimos:

define service {
      name              graphed-service
      action_url        /nagios/cgi-bin/show.cgi?host=$HOSTNAME$&service=$SERVICEDESC$' onMouseOver='showGraphPopup(this)' onMouseOut='hideGraphPopup()' rel='/nagiosgraph/cgi-bin/showgraph.cgi?host=$HOSTNAME$&service=$SERVICEDESC$&period=week&rrdopts=-w+450+-j
      register        0
      }

Además tenemos que agregar el parámetro de servicio graficado, para cada monitor que queramos. Aquí tenéis un ejemplo:

define service{
        use                             local-service,graphed-service    ;Añadimos el nombre de la plantilla
        host_name                       localhost
        service_description             HTTP
        check_command                   check_http
        notifications_enabled           0
        }

Y reiniciamos Nagios

sudo systemctl restart nagios

Y con esto estaría todo. Ya podemos ver el botón de las gráficas en el monitor.

Ya vemos el botón de la gráfica junto al monitor del servicio

Y se hacemos click con el ratón sobre el botón de la gráfica, se abrirá un nueva pestaña en el navegador, con este resultado:

Opciones de las gráficas generadas

Desde este menú se puede escoger por ejemplo el periodo de tiempo a graficar.

Y esto es todo, espero que esta información os sea de utilidad en algún momento.

Fuentes consultadas

Centlinux.com – Install Nagiosgraph for Nagios Core on CentOS 7

Superuser.com – Nagiosgraph installation error