Nagios es un proyecto de código libre que nos permite monitorizar a
pequeña,media o gran escala equipos y servicios, y teniendo múltiples
opciones de configuración a través de plugins o diversos protocolos,alertas
via sms de poco espacio en disco, ping para saber si está up, memoria ram
disponible y un largo etcétera, de tal manera que podemos saber algo que va
a ocurrir, antes de que ocurra =)
Para más info www.nagios.org
Primeramente,hay que escoger el tipo de instalación de Nagios que vamos a
realizar,compilado desde tarball o mediante los repositorios de Debian
Etch,para el primer caso realizariamos lo siguiente:
Download Nagios 2.6 y plugins 1.4.4 en tarball de la pagina oficial
Descomprimir Nagios,acceder al directorio:
Se crea un usuario y grupo de nombre nagios
$ groupadd nagios && useradd nagios -g nagios
Se agrega un grupo para ejecutar comandos nagios utilizando el grupo nagios:
$ usermod -G nagios (usuario-apache)*
El usuario apache se extrae de ps -aux|grep apache2 = www-data
Configure
./configure –prefix=/usr/local/nagios –with-cgiurl=/nagios/cgi-bin
–with-htmlurl=/nagios/ –with-nagios-user=nagios
–with-nagios-grp=nagios –with-command-grp=nagios
Compilar :
$ make all
Instalacion Binarios y archivos html :
$ make install
Instalar ejemplos de configuracion:
$ make install-config en /usr/local/nagios/etc/
Instala script de iniciacion:
$ make install-init
Todos los archivos de /usr/local/nagios deben pertenecer a usuario y grupo
nagios:
$ chown -R nagios:nagios nagios
$ ls -sahl /usr/local/nagios
Configuracion del script creado para que se ejecue siempre al arranque:
$ update-rc.d nagios defaults
Configuracion permisos de algunos directorios:
$ make install-commandmode
Creacion de symlins de binarios para nuestro sistema:
$ ln -s /usr/local/nagios/bin/nagios /usr/sbin/nagios
$ ln -s /usr/local/nagios/bin/nagiostats /usr/bin/nagiostats
Instalacion de los plugins:
$ tar -zxvf nagios-plugins-1.4.4.tar.gz && cd nagios-1.4.4
Configuracion:
$ ./configure –prefix=/usr/local/nagios –with-cgiurl=/nagios/cgi-bin
Instalacion:
$ make && make install && make install-root
Creacion de interfaz web editando /etc/apache2/sites-available/default ( más
abajo )
Creacion del archivo login/pass:
$htpasswd -c /usr/local/nagios/etc/htpasswd.users admin
$cat /usr/local/nagios/etc/htpasswd.users
Al haber ejecutado make install-config se nos crean ficheros sample de
configuracion de nagios en /usr/local/nagios/etc/, debemos renombrarlos de
fichero-sample.cfg a fichero.cfg,aun así,nos faltarán diversos ficheros que
son los siguientes y que iremos creando a mano:
define host{
use generic-host ; Name of host template to use
host_name pc-javi
alias PC de Javi
address 192.168.1.110
check_command check-host-alive
max_check_attempts 20
contact_groups admin
notification_interval 60
notification_period 24x7
notification_options d,u,r
}
Fichero services.cfg
define service{
name generic-service ; The n ame of this service template
active_checks_enabled 1 ; Active service checks are enabled
passive_checks_enabled 1 ; Passive service checks are enabled/accepted
parallelize_check 1 ; Active service checks should be parallelized
(disabling t
obsess_over_service 1 ; We should obsess over this service (if necessary)
check_freshness 0 ; Default is to NOT check service freshness
notifications_enabled 1 ; Service notifications are enabled
event_handler_enabled 1 ; Service event handler is enabled
flap_detection_enabled 1 ; Flap detection is enabled
failure_prediction_enabled 1 ; Failure prediction is enabled
process_perf_data 1 ; Process performance data
retain_status_information 1 ; Retain status information across program
restarts
retain_nonstatus_information 1 ; Retain non-status information across
program r
is_volatile 0 ; The service is not volatile
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A
TEM
}
define service{
# use generic-service ; Name of service template to use
host_name pc-javi
service_description PING
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups admin
notification_interval 240
notification_period 24x7
notification_options c,r
check_command check_ping!100.0,20%!500.0,60%
}
Fichero timeperiods.cfg
# This defines a timeperiod where all times are valid for checks,
# notifications, etc. The classic 24x7 support nightmare. : - )
define timeperiod{
timeperiod_name 24x7
alias 24 Hours A Day, 7 Days A Week
sunday 00:00-24:00
monday 00:00-24:00
tuesday 00:00-24:00
wednesday 00:00-24:00
thursday 00:00-24:00
friday 00:00-24:00
saturday 00:00-24:00
}
# workhours timeperiod definition
define timeperiod{
timeperiod_name workhours
alias Normal Working Hours
monday 09:00-18:00
tuesday 09:00-18:00
wednesday 09:00-18:00
thursday 09:00-18:00
friday 09:00-18:00
saturday 10:00-13:00
}
# nonworkhours timeperiod definition
define timeperiod{
timeperiod_name nonworkhours
alias Non-Work Hours
sunday 00:00-24:00
monday 00:00-09:00,18:00-24:00
tuesday 00:00-09:00,18:00-24:00
wednesday 00:00-09:00,18:00-24:00
thursday 00:00-09:00,18:00-24:00
friday 00:00-09:00,18:00-24:00
saturday 00:00-10:00,13:00-24:00
}
# none timeperiod definition
define timeperiod{
timeperiod_name none
alias No Time Is A Good Time
}
Revisión de los ficheros de configuracion con:
$nagios -v /usr/local/etc/nagios.cfg
Total Warnings: 0
Total Errors: 0
Ahora solo debemos configurar apache para la autenticación de la siguiente
manera editando el fichero /etc/apache2/sites-available/default
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin/nagios/" Options ExecCGI AllowOverride None Order allow,deny Allow from all AuthName "Nagios Access" AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd.users Require valid-user Alias /nagios /usr/local/nagios/share nagios/share"> Options None AllowOverride None Order allow,deny Allow from all AuthName "Nagios Access" AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd.users Require valid-user
Reiniciar apache2:
$ /etc/init.d/apache2 restart
Ejecutar http://192.168.1.90/nagios :)
