Icinga (Monitoring Solution) Instalación y configuración en CentOS
Icinga es un sistema de monitoreo de código abierto de nivel empresarial que vigila las redes y cualquier recurso de red concebible, notifica al usuario sobre errores y recuperaciones y genera datos de rendimiento para la elaboración de informes. Escalable y extensible, Icinga puede monitorear entornos grandes y complejos en ubicaciones dispersas.
Voy con la instalación básica de Icinga y es similar a Nagios y este documento también se puede consultar para la instalación de Nagios. Hay muchos documentos disponibles en Internet y se instalarán con el usuario de Nagios, pero para mi configuración utilicé el usuario predeterminado que ya está presente en el sistema (daemon) y tampoco lo instalaré en la ruta predeterminada. Me referiré a /opt ya que lo encuentro muy conveniente. La interfaz de usuario de Icinga es mucho mejor que la de Nagios.
En este tutorial usaré tres servidores:
192.168.1.20 – Servidor de monitoreo Icinga (centos5)
192.168.1.30 – Win 2008 para ser monitoreado
192.168.1.40 – Servidor Ubuntu 10.10 para ser monitoreado
Requisitos
Nota:asegúrese de que las herramientas de desarrollo y las bibliotecas de desarrollo se hayan instalado durante la instalación:
- compilador GCC
- Bibliotecas de desarrollo C/C++
- Bibliotecas de desarrollo GD
Paquetes necesarios
1. Xampp para Linux:
[[email protected]~]# mkdir /software
[[email protected]~]# cd /software
[[email protected] software]# wget http://sourceforge.net/projects/xampp /archivos/XAMPP%20Linux/1.7.3/xampp-linux-1.7.3.tar.gz/download
2. Núcleo de icinga:
[[email protected] software]# wget http://sourceforge.net/projects/icinga/files/icinga/1.2.1/icinga-1.2.1.tar.gz/download
Instalacion de Icinga
1. Descomprima el paquete xampp:
[software [protegido por correo electrónico]]# tar -zxvf xampp-linux-1.7.3.tar.gz
software [protegido por correo electrónico]]# mv lampp/ /opt/
El paquete Xampp es un paquete muy bien compilado y extraerlo es más que suficiente para obtener más detalles, puede consultar la página de xampp:
http://www.apachefriends.org/en/xampp.html
2. Descomprima el paquete Icinga:
[[correo electrónico protegido] software]# tar -zxvf icinga-1.2.1.tar.gz
[[correo electrónico protegido] software]# cd icinga-1.2.1
[[correo electrónico protegido] icinga-1.2 .1]# ./configure --prefix=/opt/icinga --with-icinga-user=daemon --with-icinga-group=daemon --with-httpd-conf=/opt/lampp/etc
Nota:asegúrese de no obtener ningún error durante la compilación. Si recibe errores, asegúrese de que los paquetes necesarios estén instalados.
[[email protected] icinga-1.2.1]# make all
[[email protected] icinga-1.2.1]# make install
[[email protected] icinga-1.2.1]# make install -config
[[email protected] icinga-1.2.1]# make install-commandmode
[[email protected] icinga-1.2.1]# make install-webconf
3. Ahora necesita configurar Apache con Icinga:
[[email protected] icinga-1.2.1]# cd /opt/lampp/etc/
[[email protected]]# vim httpd.conf
4. Agregue la siguiente línea:
Include etc/icinga.conf
5. Establecer contraseña para iniciar sesión:
[[email protected] /]# cd /opt/lampp/bin/
[[email protected] bin]# ./htpasswd –c /opt/icinga/etc/htpasswd.users icingaadmin
Nueva contraseña:
Vuelva a escribir la nueva contraseña:
Añadiendo contraseña para el usuario icingaadmin
6. Inicie Apache:
[[email protected]]# cd /opt/lampp/
[[email protected]]# ./lamp startapache
XAMPP:Iniciando Apache con SSL (y PHP5)...
XAMPP:¡Error 1! ¡No se pudo iniciar Apache!
XAMPP:Iniciando diagnóstico...
XAMPP:Haga que httpd.conf se ajuste a su sistema.
XAMPP:Próximo intento...
XAMPP:Iniciando Apache con SSL (y PHP5)...
7. Compruebe si Apache está funcionando:
http://192.168.1.20

8. Ahora debemos iniciar Icinga, pero antes de eso, debemos verificar si Icinga se ha compilado correctamente y si todas las configuraciones están establecidas:
[[email protected]]# cd /opt/icinga/
9. Antes de configurar Icinga vamos a empezar y ver si nos sale la página:
[[email protected]]# /opt/icinga/bin/icinga –v /opt/icinga/etc/icinga.cfg
Advertencias totales:0
Errores totales:0
Las cosas se ven bien:no se detectaron problemas graves durante la verificación previa al vuelo.
10. Ahora inicie Icinga ya que no obtenemos ningún error:
[[correo electrónico protegido]]# /opt/icinga/bin/icinga -d /opt/icinga/etc/icinga.cfg
[[correo electrónico protegido]]# ps -ef|grep icinga
demonio 6961 1 0 19:03 ? 00:00:00 /opt/icinga/bin/icinga -d /opt/icinga/etc/icinga.cfg
root 6998 2929 0 19:05 pts/1 00:00:00 grep icinga
[[correo electrónico protegido]]# chmod 777 /opt/
[[correo electrónico protegido]]# chmod 777 /opt/icinga/
[[correo electrónico protegido]]# chmod 777 /opt/icinga/var/
[[correo electrónico protegido]]# chmod 777 /opt/icinga/var/rw/
[[correo electrónico protegido]]# chmod 777 /opt/icinga/var/rw/icinga.cmd
11. Inicie sesión para comprobar si se abre el sitio web de Icinga:


Instalación de complementos de Nagios para monitoreo
1. Descarga el complemento de Nagios y compila el mismo:
[software [protegido por correo electrónico]]# wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz
[software [protegido por correo electrónico]]# tar -zxvf nagios -plugins-1.4.15.tar.gz
[[correo electrónico protegido] software]# cd nagios-plugins-1.4.15
[[correo electrónico protegido] nagios-plugins-1.4.15]# ./ configure --prefix=/opt/icinga/ --with-nagios-user=daemon --with-nagios-group=daemon
[[email protected] nagios-plugins-1.4.15]# make &&make install
Cutomización de Icinga
Configuración de alerta de correo:
[[email protected] /]# cd /opt/icinga/etc/
[[email protected]]# vi objects/contacts.cfg
define contact{
contact_nameicingaadmin ; Short name of user
use generic-contact ; Inherit default values from generic-contact template (defined above)
alias Icinga Admin ; Full name of user
[email protected] ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
} Cambie la dirección de correo electrónico de [email protected] a su dirección de correo electrónico [email protected].
Asegúrese de haber configurado smarthost en el servidor CentOS.
Para configurar el host inteligente en CentOS
[[email protected]]# rpm -qa|grepsendmail
sendmail-8.13.8-2.el5
[[email protected]]# vim /etc/mail/sendmail.mc
Deshabilite la siguiente línea:
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl dnl#DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
Habilite la siguiente línea:
dnl define(`SMART_HOST', `smtp.your.provider')dnl
Proporcione su dirección smtp aquí, en este caso, sunil.cc:
define(`SMART_HOST', `smtp.sunil.cc')dnl
[[email protected] /]#m4 /etc/mail/sendmail.mc> /etc/mail/sendmail.cf
[[email protected] /]#/etc/init.d/sendmail restart
Instalando Nagios Plugin y nrpe en Ubuntu 192.168.1.40
1. Para que Ubuntu sea monitoreado por el servidor Icinga, necesitamos instalar el complemento Nagios y nrpe:
[email protected]:~# apt-get install gcc*
[email protected]:~#wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz
[email protected]:~# tar -zxvf nagios-plugins-1.4.15.tar.gz
2. Compilación del complemento de Nagios:
[correo electrónico protegido]:~# cd nagios-plugins-1.4.15/
[correo electrónico protegido]:~/nagios-plugins-1.4.15# ./configure --with-nagios-user=daemon --with -nagios-group=daemon
[correo electrónico protegido]:~/nagios-plugins-1.4.15# make &&make install
[correo electrónico protegido]:~/nagios-plugins-1.4.15# chown - R demonio:demonio /usr/local/nagios/
Instalación de NRPE (Ejecutor remoto de complementos de Nagios)
1. Descarga y compila NRPE:
[email protected]:~# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
[correo electrónico protegido]:~# tar -zxvf nrpe-2.12.tar.gz
[correo electrónico protegido]:~# cd nrpe-2.12/
[correo electrónico protegido]:~/nrpe-2.12# apt- get install openssllibssl-dev
[email protected]:~# make all
[email protected]:~# make install-plugin
[email protected]:~# make install-daemon
[email protected]:~# make install-daemon-config
[email protected]:~/nrpe-2.12# apt-get installxinetd
[email protected]:~# make install-xinetd
2. Necesitamos configurar el nrpe como un servicio xinetd:
[email protected]:~/nrpe-2.12# vim /etc/xinetd.d/nrpe
servicenrpe
{
flags = REUSE
socket_type = stream
port = 5666
wait = no
user = daemon
group = daemon
server = /usr/local/nagios/bin/nrpe
server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd
log_on_failure += USERID
disable = no
only_from = 127.0.0.1
} 3. Edite agregando la IP del servidor Icinga en only_from:
servicenrpe
{
flags = REUSE
socket_type = stream
port = 5666
wait = no
user = daemon
group = daemon
server = /usr/local/nagios/bin/nrpe
server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd
log_on_failure += USERID
disable = no
only_from = 127.0.0.1 192.168.1.20
} 4. Ahora necesitamos ejecutarlo como un servicio agregando la siguiente línea:
[email protected]:~# vim /etc/services
nrpe 5666/tcp
5. Reinicie el servicio xinetd:
[email protected]:~# /etc/init.d/xinetd restart
6. Compruebe si nrpe se ha iniciado:
[email protected]:~# netstat -a |grep nrpe
Para verificar si Ubuntu puede comunicarse con el servidor Icinga:
[email protected]:~# /usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.12
Debería poder obtener este resultado.
Configuración del lado del cliente Windows 2008 (192.168.1.30)
1. Descarga desde http://nsclient.org/nscp/downloads.
2. Solo sigue las capturas de pantalla:







3. Verifique que nsclient++ se esté ejecutando como un servicio:

Configuración de Ubuntu y Win 2008 en el lado del servidor
1.
[[email protected] /]# cd /opt/icinga/etc/objects/
2. Primero configuramos el cliente de Ubuntu.
3. Cree un archivo cfg para el mismo con el siguiente contenido, también puede consultar localhost.cfg presente en el mismo directorio:
[[email protected] ~]# vim /opt/icinga/etc/objects/ubuntu10.cfg
define host{
uselinux-server
host_name ubuntu10
alias ubuntu10
address 192.168.1.40
}
define service{
use local-service
host_name ubuntu10
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
define service{
use local-service
host_name ubuntu10
service_description Root
check_command check_local_disk!20%!10%!/
}
define service{
use local-service
host_name ubuntu10
service_description Current Users
check_command check_local_users!20!50
}
define service{
use local-service
host_name ubuntu10
service_description Total Processes
check_command check_local_procs!250!400!RSZDT
}
define service{
use local-service
host_name ubuntu10
service_description Current Load
check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
}
define service{
use local-service
host_name ubuntu10
service_description Swap Usage
check_command check_local_swap!20!10
}
define service{
use local-service
host_name ubuntu10
service_description SSH
check_commandcheck_ssh
notifications_enabled 0
} Para la agrupación de servidores, puede agregar esta línea a ubuntu10.cfg:
definehostgroup{
hostgroup_namelinux-servers ; The name of the hostgroup
alias Linux Servers ; Long name of the group
memberslocalhost, ubuntu10 ; Comma separated list of hosts that belong to this group
} 4. Para Windows 2008 nos referiremos a windows.cfg:
define host{
use windows-server ; Inherit default values from a template
host_namewin2008 ; The name we're giving to this host
alias My Windows Server ; A longer name associated with the host
address 192.168.1.30 ; IP address of the host
}
define service{
use generic-service
host_name win2008
service_descriptionNSClient++ Version
check_commandcheck_nt!CLIENTVERSION
}
define service{
use generic-service
host_name win2008
service_description Uptime
check_commandcheck_nt!UPTIME
}
define service{
use generic-service
host_name win2008
service_description CPU Load
check_commandcheck_nt!CPULOAD!-l 5,80,90
}
define service{
use generic-service
host_name win2008
service_description Memory Usage
check_commandcheck_nt!MEMUSE!-w 80 -c 90
}
define service{
use generic-service
host_name win2008
service_description C:\ Drive Space
check_commandcheck_nt!USEDDISKSPACE!-l c -w 80 -c 90
} 5. Necesitamos configurar la contraseña para iniciar sesión en el servidor de Windows:
[[email protected] etc]# vim objects/commands.cfg
# 'check_nt' command definition
define command{
command_namecheck_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$
} 6. Añade tu contraseña:
define command{
command_namecheck_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 –s [email protected] -v $ARG1$ $ARG2$
} [[email protected] objects]# chown -R daemon:daemon /opt/icinga/
[[email protected]]# vimicinga.cfg
cfg_file=/opt/icinga/etc/objects/ubuntu10.cfg cfg_file=/opt/icinga/etc/objects/win2008.cfg
Añade las dos líneas.
Detener e iniciar Icinga.

