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.