Categoría: Nagios
Nagios: Añadir un nuevo servicio al cliente linux
Ya tenemos el NRPE y el host configurados vamos a ir añadiendo nuevos servicio que no incluyen los plugins de Nagios. Los nuevos checks se tienen que configurar en el cliente, así que nos conectaremos al cliente e iremos la libreria de servicios:
# cd /usr/local/nagios/libexec/
Vamos a instalar un servicio para monitorizar la memoria, así que nos descargaremos el check_mem.pl del Nagios Exchange. Una vez que lo tengamos descargado le cambiamos los permisos:
# chmod +x check_mem.pl # chown nagios.nagios check_mem.pl
Añadiremos el servicio al archivo de configuración del NRPE /usr/local/nagios/etc/nrpe.cfg:
command[check_mem]=/usr/local/nagios/libexec/check_mem.pl -f -w 20 -c 10
También podríamos añadir otros servicios para monitorizar por ejemplo el disco sda1 y que tengamos activo el servicio de mysql:
command[check_sda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1 command[check_mysql]=/usr/local/nagios/libexec/check_procs -c 1:1 -C mysqld
Ya estaría configurado el cliente, ahora hay que añadirlo en el servidor del Nagios, en el archivo de configuración del host incluiremos los servicios:
define service{ use local-service host_name blthd01 service_description Memoria RAM check_command check_nrpe!check_mem } define service{ use local-service host_name blthd01 service_description Particion Root check_command check_nrpe!check_sda1 } define service{ use local-service host_name blthd01 service_description MySQL check_command check_nrpe!check_mysql }
Solo quedará reiniciar el servicio de Nagios:
# service nagios restart
Nagios: Configurar un nuevo host y sus servicios
Una vez instalados el Nagios y el NRPE, vamos a configurar el primer host.
Los hosts los tengo configurados por carpetas, es decir, en el /usr/local/nagios/etc tengo varias carpetas, una para servidores, otra para swtich, etcetera, cada una para los hosts que son parecidos.
Lo que haremos primero será crear una carpeta:
# /usr/local/nagios/etc/servers
Añadimos la carpeta al archivo de configuración de Nagios /usr/local/nagios/etc/nagios.cfg, para escribiremos la siguiente linea:
cfg_dir=/usr/local/nagios/etc/servers
Iremos a la carpeta que hemos creado y creamos un nuevo documento finalizado por la extensión .cfg:
# nano server1.cfg
Y escribimos la configuración del servidor:
define host{ use linux-server host_name server1 alias server1 address IP-del-cliente }
Luego añadiremos los primeros servicios:
define service{ use local-service host_name server1 service_description Particion Root check_command check_nrpe!check_sda1 } define service{ use local-service host_name server1 service_description Carga CPU check_command check_nrpe!check_load }
Una vez que tengamos esto, vamos a revisar los use, que se encuentra en el fichero templates.cfg. Revisaremos la definición del linux-server:
define host{ name linux-server ; The name of this host template use generic-host ; This template inherits other values from the generic-host template check_period 24x7 ; By default, Linux hosts are checked round the clock check_interval 5 ; Actively check the host every 5 minutes retry_interval 1 ; Schedule host check retries at 1 minute intervals max_check_attempts 10 ; Check each Linux host 10 times (max) check_command check-host-alive ; Default command to check Linux hosts notification_period 24x7 ; Linux admins hate to be woken up, so we only notify during the day ; Note that the notification_period variable is being overridden from ; the value that is inherited from the generic-host template! notification_interval 30 ; Resend notifications every 30 min notification_options d,u,r ; Only send notifications for specific host states contact_groups admins ; Notifications get sent to the admins by default register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE! hostgroups linux-servers }
Solo he añadido el hostgroups con linuxservers, el notificaction_period que lo cambié a 24×7 y el notification_interval lo cambie de 120 minutos a 30.
Luego tendríamos que crear el archivo de configuración de hostgroups en el /usr/local/nagios/etc/objects:
# nano /usr/local/nagios/etc/objects/hostgroups.cfg
Y lo añadimos al archivo de configuración de Nagios:
cfg_file=/usr/local/nagios/etc/objects/hostgroups.cfg
En el hostgroups.cfg añadimos lo siguiente para crear los hostgroups tanto de los servidores que tengamos de linux como de windows, estos ultimos tenemos que revisar que esten incluido en el template de windows-server como hicimos con el de linux:
define hostgroup{ hostgroup_name windows-servers ; The name of the hostgroup alias Windows Servers ; Long name of the group } define hostgroup{ hostgroup_name linux-server ; The name of the hostgroup alias Linux Servers ; Long name of the group }
Finalmente hay que comprobar que todo esta correctamente:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Reiniciamos el servicio de Nagios:
# service nagios restart
Ya tendremos el nuevo host monitorizando dos servicios.
Nagios: Instalación de NRPE en servidor y cliente
Ayer expliqué como instalar el Nagios, hoy explicaré como instalar el NRPE que sirve para hacer la monitorización servicios internos como discos, memoria, CPU, servicios,…
Lo primero que vamos configurar es un cliente, en este caso es un máquina Ubuntu Server. Lo primero que se debe hacer es generar el usuario de Nagios y ponerle el password:
# /usr/sbin/useradd nagios # passwd nagios
Descargar los plugins de Nagios y descomprimirlos:
# wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz # tar xzf nagios-plugins-2.0.3.tar.gz # cd nagios-plugins-2.0.3/
Instalamos lo necesario para compilar, la librería ssl y el servicio xinetd.
#apt-get install build-essential libssl-dev xinetd
Compilamos los plugins y los instalamos:
#./configure # make # make install
Cambiamos los permisos de la carpeta:
# chown nagios.nagios /usr/local/nagios/ # chown -R nagios.nagios /usr/local/nagios/libexec/
Descargaremos el NRPE y lo descomprimimos:
# wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz # tar xzf nrpe-2.15.tar.gz # cd nrpe-2.15/
Compilamos el NRPE y lo instalamos:
# ./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu # make all # make install-plugin # make install-daemon # make install-daemon-config
Instalamos el demonio de NRPE como un servicio bajo xinetd:
# make install-xinetd
Editamos /etc/xinetd.d/nrpe y añadimos la IP del servidor donde esta instalado el Nagios:
only_from = 127.0.0.1
Añadimos la siguiente entrada para el NRPE en el /etc/services:
nrpe 5666/tcp # NRPE
Reiniciamos el xinetd y la red:
# service xinetd restart # service networking restart
Comprobamos que este funcionando correctamente:
# netstat -at | grep nrpe tcp 0 0 *:nrpe *:* LISTEN
Comprobamos que funcione correctamente el NRPE:
# /usr/local/nagios/libexec/check_nrpe -H localhost NRPE v2.15
Ya tendríamos instalado el NRPE en el cliente, ahora lo instalaremos en el servidor de Nagios, que nuevamente es un Ubuntu Server 14.04 LTS.
Descargaremos el NRPE y lo descomprimimos:
# wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz # tar xzf nrpe-2.15.tar.gz # cd nrpe-2.15/
Compilamos el NRPE y lo instalamos:
# ./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu # make all # make install-plugin
Ya estaría instalado el NRPE en el servidor, podemos hacer una prueba para ver si funciona correctamente, por ejemplo, comprobar la carga de CPU, para ello se debe hacer:
# /usr/local/nagios/libexec/check_nrpe -H 'IP-del-cliente-Nagios' -c 'check_load' OK - load average: 0.13, 0.11, 0.10|load1=0.130;15.000;30.000;0; load5=0.110;10.000;25.000;0; load15=0.100;5.000;20.000;0;
Habrá que añadir en el /usr/local/nagios/objects/commands.cfg el siguiente comando para utilizar el NRPE:
define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
Luego en los servicios de cada hosts que se quiera llamar utilizaremos lo siguiente, este ejemplo es para ver la carga de CPU:
define service { host_name cliente1 service_description Check Load check_command check_nrpe!check_load use generic-service }
Instalación de Nagios 4.0.X en Ubuntu Server 14.04 LTS
A continuación os explicaré como instalar el software de monitorización Nagios en su versión 4.0.8, aunque sirve sin problema para cualquier versión 4.0. Lo instalaré sobre un servidor Ubuntu Server 14.04 LTS.
Lo primero será instalar lo que vamos a necesitar, que es un Apache, sus utilidades, la libreria de PHP5 y lo necesario para la instalación del software.
# apt-get install apache2 libapache2-mod-php5 build-essential bgd2-xpm-dev apache2-utils
Creamos el usuario de Nagios y le ponemos el password:
# /usr/sbin/useradd -m -s /bin/bash nagios # passwd nagios
Creamos el grupo Nagios y se añade el usuario:
# /usr/sbin/groupadd nagios # /usr/sbin/usermod -G nagios nagios
Se crea el grupo nagcmd para permitir lanzar comandos externos:
# /usr/sbin/groupadd nagcmd # /usr/sbin/usermod -a -G nagcmd nagios # /usr/sbin/usermod -a -G nagcmd www-data
Descargamos el Nagios:
# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.8.tar.gz
Lo descomprimimos:
# tar xzf nagios-4.0.8.tar.gz # cd nagios-4.0.8/
Compilamos el código de Nagios:
# ./configure --with-command-group=nagcmd
Luego instalamos los binarios:
# make all # make install # make install-init # make install-config # make install-commandmode # make install-webconf
Añadimos la configuración del Nagios al Apache:
# /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-enabled/nagios.conf
Cambiamos la contraseña al usuario nagiosadmin que da acceso a la web y reiniciamos el Apache:
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin # service apache2 restart
Añadimos el mail del administrador en el contact.cfg:
# nano /usr/local/nagios/etc/objects/contacts.cfg
A continuación instalaremos los plugins de Nagios, para ello lo primero es descargarlos y descomprimirlos:
# wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz # tar xzf nagios-plugins-2.0.3.tar.gz # cd nagios-plugins-2.0.3
Lo compilamos y hacemos la instalación de los binarios:
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios # make # make install
Añadimos los módulos de CGI y Rewrite al Apache y lo reiniciamos:
# a2enmod rewrite # a2enmod cgi # service apache2 restart
Configuramos que se inicie el servicio de Nagios en el arranque:
# ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
Revisamos que este todo bien en el Nagios:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Reiniciamos el servicio:
# service nagios start
Para configurar el correo, instalar las utilidades de Ubuntu de correo:
# apt-get install mailutils
Yo tengo un relay así que simplemente he añadido la IP en el /etc/postfix/main.cf, después se modifica command.cfg para que envíe a través del Postfix:
# nano /usr/local/nagios/etc/objects/commands.cfg
Cambiar las referencias de ‘/bin/mail’ a ‘/usr/bin/mail’, reiniciar el servicio de Nagios y ya estará configurado el envío de correos.
Ya se puede acceder a la web, la máquina localhost estará configurada por defecto. La dirección es http://IP-del-servidor/nagios/, pedirá usuario y contraseña de que es el de nagiosadmin.