Monitoreo de Servidores con Icinga en Debian Squeeze

Icinga es un sistema abierto de nivel empresarial monitorización de fuentes que guarda a redes y cualquier otro recurso de la red concebible, notifica al usuario de los errores y las recuperaciones y genera datos de rendimiento de informes. Escalable y extensible, Icinga puede monitorizar entornos complejos y grandes en lugares dispersos.

Icinga es una rama de Nagios y es compatible con versiones anteriores. Por lo tanto, las configuraciones de Nagios, plugins y addons se pueden usar con Icinga. Aunque Icinga conserva todas las características existentes de su predecesor, que se basa en ellos para agregar muchos parches largamente esperadas y características solicitadas por los usuarios.

Sitio Oficial

En esta receta se instalará icinga en un equipo debian squeeze con un kernel 2.6.32-5-amd64, el cual servirá de servidor y en otro equipo debian con igual kernel que servirá de cliente.

1. Escenario
servidor.01.dominio.local (Server de ICINGA) Ip 172.31.1.1
servidor.02.dominio.local (Cliente de ICINGA) ip 172.31.1.50
Nota: Debe tener instalado MySQL, PHP5, Apache2, y los otros servicios que se deseen Monitorear

2. Agregamos a nuestro sources.list los repositorios oficiales del proyecto.
servidor.01.dominio.local (Server de ICINGA)

# echo “deb http://icinga.snow-crash.org/ icinga-squeeze main” > /etc/apt/sources.list.d/icinga.list

3. Actualizamos la lista de paquetes
# apt-get update

4. Instalamos icinga de la siguiente manera:
# apt-get install icinga icinga-phpapi

Al momento de instalar, se le preguntará lo siguiente:
Que tipo de servidor web utilizara:   Apache2
Suministre el password a utilizar con el usuario icingaadmin en la interfaz web: PassWordAUsar
Colocar nuevamente el password: PassWordAUsar
Grupo de Trabajao / Dominio a Usar: dominio.local (coloque usted el suyo)
Configurar la Base de Datos para icinga-idoutils? con dbconfig-common: No

5. En este momento usted podrá revisar que los cambios realizados hasta el momento le permiter ver la interfaz web del servidor ICINGA desde la siguiente ruta:

http://servidor.01.dominio.local/icinga
usuario: icingaadmin
password: PassWordAUsar

6.  Agregando un servidor remoto (servidor.02.dominio.local) al servidor icinga (servidor.01.dominio.local).
Hasta este punto la monitorización del equipo local (servidor.01) se encuentra perfecta, ahora para añadir uno o mas servidores extras al icinga-server sera necesario instalar en el servidor.01 el Nagios NRPE (Nagios Remote Plugin Executor);

Entonces desde el servidor.01.dominio.local
# apt-get install nagios-nrpe-plugin

Suministramos las credenciales elegidas anteriormente para que el conector funcione;
usuario: icingaadmin
password: PassWordAUsar

7.  Instalación del “Agente” en el servidor.02.dominio.local

# apt-get install nagios-nrpe-server

coloque el dominio/grupo de trabajo:  dominio.local

Ahora debera “permitir” la conexion desde el servidor.01 al servidor.02 a travez del NRPE y para ello debera editar el archivo de configuracón respectivo:

# nano /etc/nagios/nrpe.cfg

Icinga es un sistema abierto de nivel empresarial monitorización de fuentes que guarda a redes y cualquier otro recurso de la red concebible, notifica al usuario de los errores y las recuperaciones y genera datos de rendimiento de informes. Escalable y extensible, Icinga puede monitorizar entornos complejos y grandes en lugares dispersos.

Icinga es una rama de Nagios y es compatible con versiones anteriores. Por lo tanto, las configuraciones de Nagios, plugins y addons se pueden usar con Icinga. Aunque Icinga conserva todas las características existentes de su predecesor, que se basa en ellos para agregar muchos parches largamente esperadas y características solicitadas por los usuarios.

Sitio Oficial

En esta receta se instalará icinga en un equipo debian squeeze con un kernel 2.6.32-5-amd64, el cual servirá de servidor y en otro equipo debian con igual kernel que servirá de cliente.

1. Escenario
servidor.01.dominio.local (Server de ICINGA)
servidor.02.dominio.local (Cliente de ICINGA)
Nota: Debe tener instalado MySQL, PHP5, Apache2, y los otros servicios que se deseen Monitorear

2. Agregamos a nuestro sources.list los repositorios oficiales del proyecto.
servidor.01.dominio.local (Server de ICINGA)

# echo “deb http://icinga.snow-crash.org/ icinga-squeeze main” > /etc/apt/sources.list.d/icinga.list

3. Actualizamos la lista de paquetes
# apt-get update

4. Instalamos icinga de la siguiente manera:
# apt-get install icinga icinga-phpapi

Al momento de instalar, se le preguntará lo siguiente:
Que tipo de servidor web utilizara:   Apache2
Suministre el password a utilizar con el usuario icingaadmin en la interfaz web: PassWordAUsar
Colocar nuevamente el password: PassWordAUsar
Grupo de Trabajao / Dominio a Usar: dominio.local (coloque usted el suyo)
Configurar la Base de Datos para icinga-idoutils? con dbconfig-common: No

5. En este momento usted podrá revisar que los cambios realizados hasta el momento le permiter ver la interfaz web del servidor ICINGA desde la siguiente ruta:

http://servidor.01.dominio.local/icinga
usuario: icingaadmin
password: PassWordAUsar

6.  Agregando un servidor remoto (servidor.02.dominio.local) al servidor icinga (servidor.01.dominio.local).
Hasta este punto la monitorización del equipo local (servidor.01) se encuentra perfecta, ahora para añadir uno o mas servidores extras al icinga-server sera necesario instalar en el servidor.01 el Nagios NRPE (Nagios Remote Plugin Executor);

Entonces desde el servidor.01.dominio.local
# apt-get install nagios-nrpe-plugin

Suministramos las credenciales elegidas anteriormente para que el conector funcione;
usuario: icingaadmin
password: PassWordAUsar

7.  Instalación del “Agente” en el servidor.02

# apt-get install nagios-nrpe-server

coloque el dominio/grupo de trabajo:  dominio.local

Ahora debera “permitir” la conexion desde el servidor.01 al servidor.02 a travez del NRPE y para ello debera editar el archivo de configuracón respectivo:

# nano

Icinga es un sistema abierto de nivel empresarial monitorización de fuentes que guarda a redes y cualquier otro recurso de la red concebible, notifica al usuario de los errores y las recuperaciones y genera datos de rendimiento de informes. Escalable y extensible, Icinga puede monitorizar entornos complejos y grandes en lugares dispersos.

Icinga es una rama de Nagios y es compatible con versiones anteriores. Por lo tanto, las configuraciones de Nagios, plugins y addons se pueden usar con Icinga. Aunque Icinga conserva todas las características existentes de su predecesor, que se basa en ellos para agregar muchos parches largamente esperadas y características solicitadas por los usuarios.

Sitio Oficial

En esta receta se instalará icinga en un equipo debian squeeze con un kernel 2.6.32-5-amd64, el cual servirá de servidor y en otro equipo debian con igual kernel que servirá de cliente.

1. Escenario
servidor.01.dominio.local (Server de ICINGA)
servidor.02.dominio.local (Cliente de ICINGA)
Nota: Debe tener instalado MySQL, PHP5, Apache2, y los otros servicios que se deseen Monitorear

2. Agregamos a nuestro sources.list los repositorios oficiales del proyecto.
servidor.01.dominio.local (Server de ICINGA)

# echo “deb http://icinga.snow-crash.org/ icinga-squeeze main” > /etc/apt/sources.list.d/icinga.list

3. Actualizamos la lista de paquetes
# apt-get update

4. Instalamos icinga de la siguiente manera:
# apt-get install icinga icinga-phpapi

Al momento de instalar, se le preguntará lo siguiente:
Que tipo de servidor web utilizara:   Apache2
Suministre el password a utilizar con el usuario icingaadmin en la interfaz web: PassWordAUsar
Colocar nuevamente el password: PassWordAUsar
Grupo de Trabajao / Dominio a Usar: dominio.local (coloque usted el suyo)
Configurar la Base de Datos para icinga-idoutils? con dbconfig-common: No

5. En este momento usted podrá revisar que los cambios realizados hasta el momento le permiter ver la interfaz web del servidor ICINGA desde la siguiente ruta:

http://servidor.01.dominio.local/icinga
usuario: icingaadmin
password: PassWordAUsar

6.  Agregando un servidor remoto (servidor.02.dominio.local) al servidor icinga (servidor.01.dominio.local).
Hasta este punto la monitorización del equipo local (servidor.01) se encuentra perfecta, ahora para añadir uno o mas servidores extras al icinga-server sera necesario instalar en el servidor.01 el Nagios NRPE (Nagios Remote Plugin Executor);

Entonces desde el servidor.01.dominio.local
# apt-get install nagios-nrpe-plugin

Suministramos las credenciales elegidas anteriormente para que el conector funcione;
usuario: icingaadmin
password: PassWordAUsar

7.  Instalación del “Agente” en el servidor.02

# apt-get install nagios-nrpe-server

coloque el dominio/grupo de trabajo:  dominio.local

8. Ahora debera “permitir” la conexion desde el servidor.01 al servidor.02 a travez del NRPE y para ello debera editar el archivo de configuracón respectivo:

# nano  /etc/nagios/nrpe.cfg

y añadir la ip del servidor principal (iciga server)
ubicamos la siguiente linea;

allowed_hosts=127.0.0.1

y anexamos la ip correspondiente al servidor:

allowed_hosts=127.0.0.1,172.31.1.1

Una vez guardado los cambios, reiniciamos el servicio

server.02.dominio.local#/etc/init.d/nagios-nrpe-server restart

9. Verificando la conexión entre el servidor icinga y los clientes:

server.01.dominio.local# /usr/lib/nagios/plugins/check_nrpe -H 172.31.1.50

Nota1: de poseer errores de conexion ssl cambiar la linea;

dont_blame_nrpe=1
por
dont_blame_nrpe=0
en el archivo /etc/nagios/nrpe.cfg (del equipo cliente)

Nota2: Si tienes un firewall en tu red interna, recuerda hacer las redirecciones / aperturas  pertinentes para que puedas acceder al conector, el puerto es el 5666 TCP

10. Servicios a monitorear en el cliente
Para que el servidor de icinga entienda que vamos a monitorear en el / los clientes es necesario “definir” los servicios en cuestion:

server02.dominio.local# nano /etc/nagios/nrpe.cfg

Descomentar o agregar las siguientes líneas:

command[check_procs]=/usr/lib/nagios/plugins/check_procs -w 250 -c 400
command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w '20%' -c '10%' -e
command[check_mysql_cmdlinecred]=/usr/lib/nagios/plugins/check_mysql -H localhost -u 'icingauser' -p 'icingapassword'

11. Reiciamos el agente para que tome los cambios:
server.02.dominio.local#/etc/init.d/nagios-nrpe-server restart

12. Verificar que el servidor02 esta escuchando

server.02.dominio.local# nmap localhost | grep nrpe

o

server.02.dominio.local# netstat -tap | grep nrpe

12. Monitor de MySQL
Para que sea efectiva la monitorización del servidor de base de datos, agregaremos un usuario y sus respectivos permisos dentro del mismo:

server.02.diminio.local# mysql -u root -p

mysql>  GRANT USAGE ON *.* TO icingauser@localhost IDENTIFIED BY ‘icingapassword’;
mysql>  GRANT USAGE ON *.* TO icingauser@localhost.localdomain IDENTIFIED BY ‘icingapassword’;
mysql>  FLUSH PRIVILEGES;
mysql> \q

13. Creación del perfil del servidor.02.dominio.local dentro del servidor principal icinga.

server.01.dominio.local# touch /etc/icinga/objects/server02.icinga.cfg
server.01.dominio.local# nano -w /etc/icinga/objects/server02.icinga.cfg

y agregamos las siguientes líneas:

define host{
use generic-host
host_name server.02.dominio.local
alias server.02
address 172.31.1.50
}
define service{
use generic-service
host_name server.02.dominio.local
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
define service{
use                             generic-service         ; Name of service template to use
host_name                       server.02.dominio.local
service_description             Disk Space
check_command                   check_nrpe!check_all_disks!20%!10%
}
define service{
use                             generic-service
host_name                       server.02.dominio.local
service_description             Current Users
check_command                   check_nrpe!check_users!20!50
}
define service{
use                             generic-service
host_name                       server.02.dominio.local
service_description             Total Processes
check_command                   check_nrpe!check_procs!250!400
}
define service{
use                             generic-service         ; Name of service template to use
host_name                       server.02.dominio.local
service_description             Current Load
check_command                   check_nrpe!check_load!5.0!4.0!3.0!10.0!6.0!4.0
}
define service{
use                             generic-service
host_name                       server.02.dominio.local
service_description             MySQL
check_command                   check_nrpe!check_mysql_cmdlinecred!icingauser!icingapassword
}
define service{
use                             generic-service
host_name                       server.02.dominio.local
service_description             SMTP
check_command                   check_smtp
}
define service{
use                             generic-service
host_name                       server.02.dominio.local
service_description             POP3
check_command                   check_pop
}
define service{
use                             generic-service
host_name                       server.02.dominio.local
service_description             IMAP
check_command                   check_imap
}

14.  Usted podrá de igual manera agregar el servidor.02.dominio.local al grupo de servidores http, ssh, o el de su preferencia, editando el siguiente archivo:

server01.dominio.local# nano -w /etc/icinga/objects/hostgroups_icinga.cfg

y dejandolo de la siguiente manera:

# Some generic hostgroup definitions

# A simple wildcard hostgroup
define hostgroup {
        hostgroup_name  all
                alias           All Servers
                members         *
        }

# A list of your Debian GNU/Linux servers
define hostgroup {
        hostgroup_name  debian-servers
                alias           Debian GNU/Linux Servers
                members         localhost,server.02.dominio.local
        }

# A list of your web servers
define hostgroup {
        hostgroup_name  http-servers
                alias           HTTP servers
                members         localhost,server.02.dominio.local
        }

# A list of your ssh-accessible servers
define hostgroup {
        hostgroup_name  ssh-servers
                alias           SSH servers
                members         localhost,server.02.dominio.local
        }

Despues de realizar los ajustes pertienentes, usted debera reiniciar el servidor icinga, para que este tome los cambios:
servidor.01.dominio.local# /etc/init.d/icinga restart

y a partir de este momento usted podrá apreciar el servidor.02.dominio.local desde la interfaz web.

Enlaces:

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: