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 :)