Monitoreo · 15 min read · Nov 02, 2025

Cómo instalar un servidor de monitoreo Naemon listo para producción

Naemon es el nuevo conjunto de monitoreo que tiene como objetivo ser rápido, estable e innovador, mientras te brinda una vista clara del estado de tu red y aplicaciones. Este es un reemplazo para el servidor nagios y es muy estable, utilizando un increíble panel llamado thruk. Configurar naemon es muy fácil y tiene estado en vivo incorporado. En este tutorial, te mostraré cómo instalar y configurar naemon en un entorno de producción junto con pnp4nagios para gráficos. Naemon es muy estable, te mostraré cómo mantener las configuraciones en un entorno a gran escala.

En este tutorial, estaré usando cuatro servidores

  • 192.168.1.170 - Servidor Naemon - centos 7
  • 192.168.1.21 - cliente nrpe - centos 6
  • 192.168.1.182 - cliente nrpe - ubuntu
  • 192.168.1.75 - cliente nscp - windows server 2012R2

Instalación del Servidor Naemon

Estoy usando un host CentOS 7 con una instalación mínima, SELinux deshabilitado y firewalld habilitado.

[root@naemon ~]# sestatus
Estado de SELinux:                 deshabilitado
[root@naemon ~]#

Instalando el repositorio:

[root@naemon ~]# yum -y install https://labs.consol.de/repo/stable/rhel7/x86_64/labs-consol-stable.rhel7.noarch.rpm

enabilitando el repositorio epel:

yum -y install epel-release

Instalando el paquete Naemon:

[root@naemon ~]# yum install naemon*

Naemon utiliza el mismo plugin de Nagios y nrpe para monitorear hosts. Ahora los instalaremos:

[root@naemon ~]# yum install nagios-plugins nagios-plugins-all nagios-plugins-nrpe nrpe -y

Agregaremos las reglas del firewall:


[root@naemon ~]# firewall-cmd --add-service=http --permanent
success
[root@naemon ~]# firewall-cmd --add-service=https --permanent
success
[root@naemon ~]# firewall-cmd --reload
success
[root@naemon ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eno16777736
  sources:
  services: dhcpv6-client http https ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  sourceports:
  icmp-blocks:
  rich rules:

[root@naemon ~]#

Instalación de pnp4nagios.

yum install gcc-c++ rrdtool perl-Time-HiRes perl-rrdtool php-gd php php-cli wget

Descargando pnp4nagios.

[root@naemon ~]# wget https://svwh.dl.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.25.tar.gz
    [root@naemon ~]# tar -zxvf pnp4nagios-0.6.25.tar.gz
    [root@naemon ~]# cd pnp4nagios-0.6.25/
[root@naemon pnp4nagios-0.6.25]# ./configure --with-nagios-user=naemon --with-nagios-group=naemon
[root@naemon pnp4nagios-0.6.25]# make all
[root@naemon pnp4nagios-0.6.25]# make fullinstall
[root@naemon pnp4nagios-0.6.25]# make install-webconf
[root@naemon pnp4nagios-0.6.25]# make install-config
[root@naemon pnp4nagios-0.6.25]# make install-init
    

Reiniciando y habilitando el servicio.

    [root@naemon ~]# systemctl enable httpd && systemctl restart httpd
[root@naemon ~]# systemctl enable naemon && systemctl restart naemon
[root@naemon ~]# systemctl enable thruk && systemctl restart thruk
[root@naemon ~]# systemctl enable npcd && systemctl restart npcd
    

Deberías poder acceder a la URL desde http://192.168.1.170/thruk

Interfaz Thruk

El nombre de usuario predeterminado es thrukadmin, la contraseña es thrukadmin.

En caso de que desees cambiar la contraseña de thrukadmin, ejecuta:

[root@naemon ~]# htpasswd /etc/thruk/htpasswd thrukadmin

Instalación del Cliente de Monitoreo para monitorear los nodos

Instalación de clientes nrpe para monitorear hosts Linux

192.168.1.21 - cliente nrpe - centos 6

Instalación del plugin de Nagios y cliente nrpe:

[root@centos6 ~]# yum install nagios-plugins nagios-plugins-all nagios-plugins-nrpe nrpe -y

Toma una copia de seguridad del nrpe.cfg:

[root@centos6 ~]# cp /etc/nagios/nrpe.cfg /etc/nagios/nrpe.cfg.bkp

Reemplaza el contenido del archivo nrpe.conf con el siguiente contenido:

[root@centos6 ~]# cat /etc/nagios/nrpe.cfg
log_facility=daemon
pid_file=/var/run/nrpe/nrpe.pid
nrpe_user=nrpe
nrpe_group=nrpe
allowed_hosts=127.0.0.1,192.168.1.170
dont_blame_nrpe=1
debug=0
command_timeout=60
connection_timeout=300
include_dir=/etc/nrpe.d/

[root@centos6 ~]#
    

Bajo allowed_host agrega la dirección IP del servidor naemon, aquí es 192.168.1.170.

Ahora necesitamos reiniciar el servicio nrpe:

    [root@centos6 ~]# service nrpe restart
    [root@centos6 ~]# chkconfig nrpe on
    

192.168.1.182 - cliente nrpe - ubuntu

root@ubuntu:~# apt-get install nagios-nrpe-server nagios-plugins -y

Toma una copia de seguridad del nrpe.cfg:

[root@ubuntu ~]# cp /etc/nagios/nrpe.cfg /etc/nagios/nrpe.cfg.bkp

Reemplaza el contenido del archivo nrpe.conf con el siguiente contenido:

root@ubuntu:~# cat /etc/nagios/nrpe.cfg
log_facility=daemon
pid_file=/var/run/nagios/nrpe.pid
nrpe_user=nagios
nrpe_group=nagios
allowed_hosts=127.0.0.1,192.168.1.170
dont_blame_nrpe=1
debug=0
command_timeout=60
connection_timeout=300
include_dir=/etc/nagios/nrpe.d/
root@ubuntu:~#
    

Ahora necesitamos reiniciar el servicio nrpe:

    root@ubuntu:~# systemctl restart nagios-nrpe-server.service
    root@ubuntu:~# systemctl enable nagios-nrpe-server.service
    

Instalación de Nscp en Windows

192.168.1.75 - cliente nscp - windows server 2012R2

Descarga nscp desde este sitio web:

https://www.nsclient.org/download/

Una vez descargado, sigue las capturas de pantalla de instalación

Elige genérico.

Elige completo:

Elige la ruta predeterminada:

Ahora, bajo hosts permitidos, agrega el host naemon. Aquí en nuestra configuración es 192.168.1.170.

Asegúrate de dar una contraseña compleja. Para este ejemplo, he utilizado la contraseña como “howtoforge”. A continuación, verifica habilitar nsclient y nrpe.

Una vez completada la instalación, asegúrate de que el servicio esté en funcionamiento.

Ahora validaremos desde el host naemon, para asegurarnos de que podamos alcanzarlo.

Validar nrpe y nscp desde el Servidor Naemon para verificar la conectividad

[root@naemon ~]# /usr/lib64/nagios/plugins/check_nrpe -H 192.168.1.182
NRPE v2.15
[root@naemon ~]# /usr/lib64/nagios/plugins/check_nrpe -H 192.168.1.21
NRPE v2.15
[root@naemon ~]#
    
[root@naemon ~]# /usr/lib64/nagios/plugins/check_nt -H 192.168.1.75 -p 12489 -v CLIENTVERSION -s 'howtoforge'
NSClient++ 0.5.0.62 2016-09-14
[root@naemon ~]#
    

Monitoreo de Servidores

Monitorearemos el rendimiento del servidor en este tutorial.

En un entorno de producción, necesitaremos monitorear la CPU, la memoria y la utilización del disco duro, junto con la verificación de la vida del host.

Agregando las siguientes líneas en la configuración nrpe /etc/nrpe.d/base.cfg

192.168.1.21 - cliente nrpe - centos 6

  [root@centos6 ~]# cat /etc/nrpe.d/base.cfg
command[check_disks]=/usr/lib64/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
command[check_disk]=/usr/lib64/nagios/plugins/check_disk -X nfs -X cifs -X none -X tmpfs -w $ARG1$ -c $ARG2$
command[memory]=/usr/lib64/nagios/plugins/check_memory -w $ARG1$ -c $ARG2$
command[load]=/usr/lib64/nagios/plugins/check_load -w $ARG1$ -c $ARG2$
command[check_total_procs]=/usr/lib64/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$
command[check_procs_c]=/usr/lib64/nagios/plugins/check_procs -c $ARG1$ -C $ARG2$
command[check_procs_a]=/usr/lib64/nagios/plugins/check_procs -c $ARG1$ -a $ARG2$
  

Guarda y reinicia el archivo, luego reinicia nrpe.

[root@centos6 ~]# /etc/init.d/nrpe restart
Apagando nrpe:                                        [FALLIDO]
Iniciando nrpe:                                             [  OK  ]
[root@centos6 ~]#
 

El plugin de memoria no estará disponible como plugin predeterminado. Usaremos el siguiente plugin.

 [root@centos6 ~]# cd  /usr/lib64/nagios/plugins/
 [root@centos6 plugins]# vim check_memory

Agrega el siguiente contenido.

#! /usr/bin/perl -w
##Incluido Perf data
#Los plugins de nagios vienen con ABSOLUTAMENTE NINGUNA GARANTÍA. Puedes redistribuir
#copias de los plugins bajo los términos de la Licencia Pública General de GNU.
#
use strict;
use Getopt::Long;

my ($opt_f, $opt_h, $opt_c, $opt_w);
my ($result, $message, $ram_percent);

my $PROGNAME="check_memory";

$opt_f = "";

Getopt::Long::Configure('bundling');
GetOptions(
        "h"   => \$opt_h, "help"        => \$opt_h,
        "c=s" => \$opt_c, "Warning_Percentage"  => \$opt_c,
        "w=s" => \$opt_w, "Critical_Percentage" => \$opt_w,
);

if (\$opt_h) {
        &print_help();
        exit 0;
}

$opt_w = shift unless (\$opt_w);
$opt_c = shift unless (\$opt_c);

if (! \$opt_c && ! \$opt_w) {
        print "Warning and Critical must be specified\n";
        exit 3;
}
if (\$opt_c <= \$opt_w){
        print "Critical must be greater than Warning CRITICAL: \$opt_c WARNING: \$opt_w\n";
        exit 3;
}


$result = 'OK';
open(FREE_M, "free -m|");
while (my $line = ){
        if ($line =~ /^Mem/){
                my ($junk,$total_mem,$used_mem,$free_mem,$shared_mem,$buffered_mem,$cached_mem)=split(/\s+/,$line);
                $ram_percent=int((\$total_mem-(\$free_mem+\$cached_mem+\$buffered_mem))/(\$total_mem*100*100))/100;

        }
}
close(FREE_M);

if (\$ram_percent > \$opt_c){
print "Memory usage is: CRITICAL: \${ram_percent}% used | used=\$ram_percent;\$opt_w;\$opt_c\n";
exit 2;
}elseif (\$ram_percent > \$opt_w) {
print "Memory usage is: WARNING: \${ram_percent}% used | used=\$ram_percent;\$opt_w;\$opt_c\n";
exit 1;
}
else{
print "Memory usage is: \$result: \${ram_percent}% used | used=\$ram_percent;\$opt_w;\$opt_c\n";
exit 0;
}

sub print_usage () {
        print "Usage:\n";
        print "  \$PROGNAME -f \n";
        print "  \$PROGNAME -c \n";
        print "  \$PROGNAME -w \n";
        print "  \$PROGNAME [-h | --help]\n";
        print "  \$PROGNAME [-V | --version]\n";
}

sub print_help () {
        print << EOF; 
\$PROGNAME v1.0.01
Los plugins de nagios vienen con ABSOLUTAMENTE NINGUNA GARANTÍA. Puedes redistribuir
copias de los plugins bajo los términos de la Licencia Pública General de GNU.
EOF
        &print_usage();
        print "\n";
        exit 3;
}

Enlace de descarga del plugin check_memory

Debes dar permisos de ejecución al archivo:

  [root@centos6 plugins]# chmod 755 check_memory

Agregando las siguientes líneas en la configuración nrpe /etc/nagios/nrpe.d/base.cfg

192.168.1.182 - cliente nrpe - ubuntu

Aquí la ruta del archivo es diferente:

El folder de plugins es lib y no lib64.

  root@ubuntu:~# cat /etc/nagios/nrpe.d/base.cfg
command[check_disks]=/usr/lib/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
command[check_disk]=/usr/lib/nagios/plugins/check_disk -X nfs -X cifs -X none -X tmpfs -w $ARG1$ -c $ARG2$
command[memory]=/usr/lib/nagios/plugins/check_memory -w $ARG1$ -c $ARG2$
command[load]=/usr/lib/nagios/plugins/check_load -w $ARG1$ -c $ARG2$
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$
command[check_procs_c]=/usr/lib/nagios/plugins/check_procs -c $ARG1$ -C $ARG2$
command[check_procs_a]=/usr/lib/nagios/plugins/check_procs -c $ARG1$ -a $ARG2$
  

Agrega el mismo script check_memory en /usr/lib/nagios/plugins.

  root@ubuntu:~# vim /usr/lib/nagios/plugins/check_memory
root@ubuntu:~# chmod 755 /usr/lib/nagios/plugins/check_memory
root@ubuntu:~# systemctl restart nagios-nrpe-server.service
root@ubuntu:~#

Configuración en el Servidor Naemon

Inicia sesión como usuario naemon:

[root@naemon ~]# su - naemon
Último inicio de sesión: Jue Mar  9 17:11:39 CET 2017 en pts/0
-sh-4.2$

Cambia el correo electrónico del administrador en /etc/naemon/naemon.cfg

........
........
[email protected]
[email protected]
........
............

Ahora configuraremos los comandos personalizados para realizar la verificación en /etc/naemon/conf.d

Crea un archivo de comandos personalizados llamado custom_commands.cfg con el siguiente contenido.

$ vim /etc/naemon/conf.d/custom_commands.cfg
## Verificación de Host Vivo ##
# comando 'check_icmp Host Alive'
define command{
    command_name                   host_alive
    command_line                   $USER1$/check_icmp -H $HOSTADDRESS$ -n 1 -w 3000.00,80% -c 5000.00,100%
    }
### Comando de Servicio ##
# comando 'check_nrpe_disks'
define command{
    command_name                   check_nrpe_disks
    command_line                   $USER1$/check_nrpe -t 55 -u -H $HOSTADDRESS$ -c check_disks -a $ARG1$ $ARG2$ $ARG3$
    }

# comando 'nrpe'
define command{
    command_name                   nrpe
    command_line                   $USER1$/check_nrpe -t 55 -u -H $HOSTADDRESS$ -c $ARG1$
    }

# NRPE Con Argumentos
define command{
    command_name                   check_nrpe_a
    command_line                   $USER1$/check_nrpe -t 55 -u -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$ $ARG3$ $ARG4$
    }
#####################################
# Verificaciones de Windows NSClient++
# comando 'check_nt'
define command{
    command_name                   nt
    command_line                   $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$ -s $USER4$
    }

Por motivos de seguridad, guarda la contraseña de los clientes nscp en /etc/naemon/resource.cfg

...........
...........
$USER4$=howtoforge
...........
............

Ahora necesitamos definir la configuración del host.

Creamos un archivo llamado linux.cfg.

$ vim /etc/naemon/conf.d/linux.cfg
define host {
  host_name                      centos6.sunil.cc
  alias                          Centos
  address                        192.168.1.21
  use                            linux-server
  hostgroups                     linux-servers
}
define host {
  host_name                      ubuntu.sunil.cc
  alias                          Ubuntu
  address                        192.168.1.182
  use                            linux-server
  hostgroups                     linux-servers
}

Hacemos lo mismo para el host de Windows.

$ vim /etc/naemon/conf.d/windows.cfg
define host {
  host_name                      ad.sunil.cc
  alias                          Mi Servidor Windows
  address                        192.168.1.75
  use                            windows-server
}

define hostgroup {
  hostgroup_name                 windows-servers
  alias                          Servidores Windows
}

Ahora necesitamos definir la configuración del servicio.

$ vim linux_services.cfg
define service {
  service_description            Estado de Discos
  hostgroup_name                  linux-servers
  use                            generic-service                       
  check_command                  check_nrpe_a!check_disk!15%!5%
}
define service{
    use                            generic-service
    hostgroup_name                 linux-servers
    service_description            Carga Promedio
    check_command                  check_nrpe_a!load!30,25,20!45,40,35
}
define service{
    use                            generic-service
    hostgroup_name                 linux-servers
    service_description            Uso de Memoria
    check_command                  check_nrpe_a!memory!80!90
}

Para Windows, creamos una configuración similar.

$ vim window_services.cfg
define service{
    use                            generic-service
    hostgroup_name                 windows-servers
    service_description            Disco - C:
    check_command                  nt!USEDDISKSPACE!-l c -w 80 -c 90
     }
define service{
    use                            generic-service
    hostgroup_name                 windows-servers
    service_description            Carga Promedio
    check_command                  nt!CPULOAD!-l 60,90,95
}
define service{
    use                            generic-service
    hostgroup_name                 windows-servers
    service_description            Uso de Memoria
    check_command                  nt!MEMUSE!-w 90 -c 95
}

Ahora cambiaremos la dirección de correo electrónico de contacto.

$ vim contacts.cfg
define contact {
  contact_name                   naemonadmin                         ; Nombre corto del usuario
  alias                          Administrador de Naemon                        ; Nombre completo del usuario
  use                            generic-contact                     ; Heredar valores predeterminados de la plantilla generic-contact (definida arriba)
  email                          [email protected]             ; <<*** CAMBIA ESTO A TU DIRECCIÓN DE CORREO ELECTRÓNICO ****
}

Ahora eliminamos las configuraciones innecesarias que no son requeridas.

$ mv switch.cfg switch.cfg.bkp
$ mv printer.cfg printer.cfg.bkp

Para validar las configuraciones.

$ naemon -v /etc/naemon/naemon.cfg

Naemon Core 1.0.6-pkg
Copyright (c) 2013-present Naemon Core Development Team and Community Contributors
Copyright (c) 2009-2013 Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Licencia: GPL

Sitio web: http://www.naemon.org
Leyendo datos de configuración...
   Archivo de configuración principal leído correctamente...
   Archivos de configuración de objetos leídos correctamente...

Ejecutando verificación previa de vuelo en los datos de configuración...

Verificando objetos...
        Se verificaron 20 servicios.
        Se verificaron 4 hosts.
        Se verificaron 1 contactos.
        Se verificaron 2 grupos de hosts.
        Se verificaron 0 grupos de servicios.
        Se verificaron 1 grupos de contactos.
        Se verificaron 29 comandos.
        Se verificaron 5 períodos de tiempo.
        Se verificaron 0 escalaciones de hosts.
        Se verificaron 0 escalaciones de servicios.
Verificando caminos circulares...
        Se verificaron 4 hosts
        Se verificaron 0 dependencias de servicios
        Se verificaron 0 dependencias de hosts
        Se verificaron 5 períodos de tiempo
Verificando controladores de eventos globales...
Verificando comandos de procesador obsesivo compulsivo...
Verificando configuraciones misceláneas...

Total de Advertencias: 0
Total de Errores:   0

Las cosas parecen estar bien - No se detectaron problemas graves durante la verificación previa de vuelo
-sh-4.2$

Inicia sesión como root y reinicia el servicio naemon.

[root@naemon conf.d]# systemctl restart naemon
[root@naemon conf.d]# systemctl status naemon
? naemon.service - Daemon de Monitoreo Naemon
   Cargado: cargado (/usr/lib/systemd/system/naemon.service; habilitado; configuración de proveedor: deshabilitada)
   Activo: activo (en ejecución) desde Jue 2017-03-09 19:14:36 CET; hace 7s
     Docs: http://naemon.org/documentation
  Proceso: 5112 ExecStart=/usr/bin/naemon --daemon /etc/naemon/naemon.cfg (código=salió, estado=0/SUCCESS)
  Proceso: 5110 ExecStartPre=/usr/bin/chown -R naemon:naemon /var/run/naemon/ (código=salió, estado=0/SUCCESS)
  Proceso: 5108 ExecStartPre=/usr/bin/mkdir /var/run/naemon (código=salió, estado=1/FAILURE)
 Main PID: 5114 (naemon)
   CGroup: /system.slice/naemon.service
           ??5114 /usr/bin/naemon --daemon /etc/naemon/naemon.cfg
           ??5115 /usr/bin/naemon --worker /var/lib/naemon/naemon.qh
           ??5116 /usr/bin/naemon --worker /var/lib/naemon/naemon.qh
           ??5117 /usr/bin/naemon --worker /var/lib/naemon/naemon.qh
           ??5118 /usr/bin/naemon --worker /var/lib/naemon/naemon.qh
           ??5119 /usr/bin/naemon --daemon /etc/naemon/naemon.cfg

Mar 09 19:14:36 naemon.sunil.cc systemd[1]: Iniciando Daemon de Monitoreo Naemon...
Mar 09 19:14:36 naemon.sunil.cc systemd[1]: Falló al leer PID del archivo /var/run/naemon/naemon.pid: Argumento inválido
Mar 09 19:14:36 naemon.sunil.cc systemd[1]: Iniciado Daemon de Monitoreo Naemon.
[root@naemon conf.d]#

Inicia sesión en el panel y deberías ver los servicios en funcionamiento.

Vemos que los servicios fallan para el host Ubuntu.

Se observa que el paquete nrpe compilado para ubuntu tenía habilitados los argumentos deshabilitados por vulnerabilidad de seguridad y esa es la razón por la que está fallando

Necesitaremos recompilar el paquete para habilitar los argumentos, para gestionar la sintonización desde naemon.

El siguiente enlace muestra cómo se puede recompilar. También puedes encontrar el paquete ya compilado con argumentos habilitados en este sitio. Usaré este paquete precompilado para este tutorial.

https://www.claudiokuenzler.com/blog/626/nrpe-debian-jessie-command-ags-arguments-not-working-error
root@ubuntu:~# wget https://www.claudiokuenzler.com/downloads/nrpe/nagios-nrpe-server_2.15-1ubuntu2_amd64.xenial.deb

Instala el paquete.

root@ubuntu:~# dpkg -i nagios-nrpe-server_2.15-1ubuntu2_amd64.xenial.deb
(Leyendo base de datos ... 79576 archivos y directorios actualmente instalados.)
Preparando para desempaquetar nagios-nrpe-server_2.15-1ubuntu2_amd64.xenial.deb ...
Desempaquetando nagios-nrpe-server (2.15-1ubuntu2) sobre (2.15-1ubuntu1) ...
Configurando nagios-nrpe-server (2.15-1ubuntu2) ...
Procesando activadores para systemd (229-4ubuntu16) ...
Procesando activadores para ureadahead (0.100.0-19) ...
Procesando activadores para man-db (2.7.5-1) ...
root@ubuntu:~#

Reinicia NRPE.

root@ubuntu:~# systemctl restart nagios-nrpe-server.service

Ahora estamos monitoreando todos los hosts usando naemon.

Configuración de pnp4nagios

Necesitaremos configurar pnp4nagios para gráficos de rendimiento.

Ahora usaremos el mismo método de autenticación que el panel de thruk, primero haremos una copia de seguridad del archivo y cambiaremos las siguientes líneas.

[root@naemon conf.d]# cd /etc/httpd/conf.d/
[root@naemon conf.d]# cp pnp4nagios.conf pnp4nagios.conf.bkp
[root@naemon share]# cat /etc/httpd/conf.d/pnp4nagios.conf
# MUESTRA DE SNIPPETS DE CONFIGURACIÓN PARA EL SERVIDOR WEB APACHE

Alias /pnp4nagios "/usr/local/pnp4nagios/share"


        AllowOverride None
        Order allow,deny
        Allow from all
        #
        # Usa el mismo valor que se define en nagios.conf
        #
        AuthName "Acceso Thruk"
        AuthType Basic
        AuthUserFile /etc/thruk/htpasswd
        Require valid-user
        
                # Activar reescritura de URL
                RewriteEngine On
                Options symLinksIfOwnerMatch
                # Directorio de instalación
                RewriteBase /pnp4nagios/
                # Proteger archivos de aplicación y sistema de ser vistos
                RewriteRule "^(?:application|modules|system)/" - [F]
                # Permitir que cualquier archivo o directorio que exista se muestre directamente
                RewriteCond "%{REQUEST_FILENAME}" !-f
                RewriteCond "%{REQUEST_FILENAME}" !-d
                # Reescribir todas las demás URL a index.php/URL
                RewriteRule "^.*$" "index.php/$0" [PT]
        
[root@naemon share]#
[root@naemon conf.d]# systemctl restart httpd.service

Ahora necesitaremos cambiar la página de configuración.

[root@naemon share]# cd /usr/local/pnp4nagios/share/
[root@naemon share]# mv install.php install.php.txt

Ahora necesitaremos cambiar el archivo de configuración para pnp4nagios.

Cambia nagios a naemon en el archivo de configuración.

[root@naemon conf.d]# vi /usr/local/pnp4nagios/etc/config_local.php
............................
................................
$conf['nagios_base'] = "/naemon/cgi-bin";
..................................
............................

Habilita los datos de rendimiento de 0 a 1.

[root@naemon conf.d]# vi /etc/naemon/naemon.cfg
.....................
.....................
process_performance_data=1
......................
......................

Agrega las siguientes líneas al final del naemon.conf.

[root@naemon conf.d]# vi /etc/naemon/naemon.cfg
#
# datos de rendimiento del servicio
#
service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::\$TIMET$\tHOSTNAME::\$HOSTNAME$\tSERVICEDESC::\$SERVICEDESC$\tSERVICEPERFDATA::\$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::\$SERVICECHECKCOMMAND$\tHOSTSTATE::\$HOSTSTATE$\tHOSTSTATETYPE::\$HOSTSTATETYPE$\tSERVICESTATE::\$SERVICESTATE$\tSERVICESTATETYPE::\$SERVICESTATETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file

#
#
#
host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::\$TIMET$\tHOSTNAME::\$HOSTNAME$\tHOSTPERFDATA::\$HOSTPERFDATA$\tHOSTCHECKCOMMAND::\$HOSTCHECKCOMMAND$\tHOSTSTATE::\$HOSTSTATE$\tHOSTSTATETYPE::\$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file

Ahora necesitamos agregar las siguientes líneas en custom_commands.conf.

[root@naemon conf.d]# vim /etc/naemon/conf.d/custom_commands.cfg
define command{
       command_name    process-service-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.\$TIMET$
}

define command{
       command_name    process-host-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.\$TIMET$
}

Ahora creamos una plantilla para el rendimiento del host y el gráfico de rendimiento del servicio.

$ cd /etc/naemon/conf.d/templates/
$ cat pnp.cfg
define host {
   name host-pnp
   process_perf_data 1
   action_url /pnp4nagios/index.php/graph?host=\$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=\$HOSTNAME$&srv=_HOST_
   register 0
}

define service {
   name service-pnp
   process_perf_data 1
   action_url /pnp4nagios/index.php/graph?host=\$HOSTNAME$&srv=\$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=\$HOSTNAME$&srv=\$SERVICEDESC$
   register 0
}

Ahora, para acceder al gráfico de rendimiento de los servicios que necesitas, debemos actualizar el archivo service.cfg.

$ cat linux_services.cfg
define service {
  service_description            Estado de Discos
  hostgroup_name                  linux-servers
  use                            generic-service,service-pnp                       ; Nombre de la plantilla de servicio a usar
  check_command                  check_nrpe_a!check_disk!15%!5%
}
define service{
    use                            generic-service,service-pnp
    hostgroup_name                 linux-servers
    service_description            Carga Promedio
    check_command                  check_nrpe_a!load!30,25,20!45,40,35
}
define service{
    use                            generic-service,service-pnp
    hostgroup_name                 linux-servers
    service_description            Uso de Memoria
    check_command                  check_nrpe_a!memory!80!90
}
$ cat window_services.cfg
define service{
    use                            generic-service,service-pnp
    hostgroup_name                 windows-servers
    service_description            Disco - C:
    check_command                  nt!USEDDISKSPACE!-l c -w 80 -c 90
     }
define service{
    use                            generic-service,service-pnp
    hostgroup_name                 windows-servers
    service_description            Carga Promedio
    check_command                  nt!CPULOAD!-l 60,90,95
}
define service{
    use                            generic-service,service-pnp
    hostgroup_name                 windows-servers
    service_description            Uso de Memoria
    check_command                  nt!MEMUSE!-w 90 -c 95
}

Para verificar el gráfico del host, necesitamos incluirlo en el archivo a continuación.

$ cat linux.cfg
define host {
  host_name                      centos6.sunil.cc
  alias                          Centos
  address                        192.168.1.21
  use                            linux-server,host-pnp
  hostgroups                     linux-servers
}
define host {
  host_name                      ubuntu.sunil.cc
  alias                          Ubuntu
  address                        192.168.1.182
  use                            linux-server,host-pnp
  hostgroups                     linux-servers
}
$ cat windows.cfg
define host {
  host_name                      ad.sunil.cc
  alias                          Mi Servidor Windows
  address                        192.168.1.75
  use                            windows-server,host-pnp
}

define hostgroup {
  hostgroup_name                 windows-servers
  alias                          Servidores Windows
}

Valida la configuración.

$ naemon -v /etc/naemon/naemon.cfg

Naemon Core 1.0.6-pkg
Copyright (c) 2013-present Naemon Core Development Team and Community Contributors
Copyright (c) 2009-2013 Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Licencia: GPL

Sitio web: http://www.naemon.org
Leyendo datos de configuración...
   Archivo de configuración principal leído correctamente...
   Archivos de configuración de objetos leídos correctamente...

Ejecutando verificación previa de vuelo en los datos de configuración...

Verificando objetos...
        Se verificaron 20 servicios.
        Se verificaron 4 hosts.
        Se verificaron 1 contactos.
        Se verificaron 2 grupos de hosts.
        Se verificaron 0 grupos de servicios.
        Se verificaron 1 grupos de contactos.
        Se verificaron 31 comandos.
        Se verificaron 5 períodos de tiempo.
        Se verificaron 0 escalaciones de hosts.
        Se verificaron 0 escalaciones de servicios.
Verificando caminos circulares...
        Se verificaron 4 hosts
        Se verificaron 0 dependencias de servicios
        Se verificaron 0 dependencias de hosts
        Se verificaron 5 períodos de tiempo
Verificando controladores de eventos globales...
Verificando comandos de procesador obsesivo compulsivo...
Verificando configuraciones misceláneas...

Total de Advertencias: 0
Total de Errores:   0

Las cosas parecen estar bien - No se detectaron problemas graves durante la verificación previa de vuelo

Reinicia los servicios.

[root@naemon ~]# systemctl enable npcd
npcd.service no es un servicio nativo, redirigiendo a /sbin/chkconfig.
Ejecutando /sbin/chkconfig npcd on
[root@naemon ~]# systemctl restart npcd
[root@naemon ~]# systemctl restart naemon

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.