miércoles, 2 de septiembre de 2009

Respuesta a Claudio Aliste sobre Nagios

No es ninguna molestia contestar un correo de alguien que necesite mi ayuda. No soy un gran experto en el tema, pero conseguí montarlo después de muchas pruebas.

Sinceramente no recuerdo exactamente como llegué a configurarlo, ahora mi vida profesional ha tomado otro rumbo, orientándose más al análisis de información (BI) y tengo un poco olvidado el tema de la administración de servidores. Pero aún mantengo el servidor Nagios que monté hace más de un año para mantener vigilados unos 50 servidores.

Veo en el servidor que la configuración de Nagios se hace desde /usr/local/nagios/etc, ahí deberás encontrar los ficheros que necesitas para configurarlos.

Te adjunto la salida de un tree de mi directorio /usr/local/nagios/etc.
Debian5Nagios:/usr/local/nagios/etc# tree
.
|-- cgi.cfg
|-- htpasswd.users
|-- nagios.cfg
|-- nrpe.cfg
|-- objects
| |-- commands.cfg
| |-- contacts.cfg
| |-- localhost.cfg
| |-- localhost.cfg.original
| |-- printer.cfg
| |-- switch.cfg
| |-- templates.cfg
| |-- timeperiods.cfg
| `-- windows.cfg
|-- resource.cfg
`-- servers
|-- asd
| |-- hostgroup.cfg
| `-- nahor.cfg
|-- dsa
| |-- dabih.cfg
| `-- hostgroup.cfg
...

El resultado es mayor, porque dentro del directorio servers tengo un montón de directorios (uno por cada cliente) y dentro los ficheros de configuración de cada uno de los servidores correspondientes. Es una buena forma de organizar Nagios:
/usr/local/nagios/etc/servers/cliente1/servidor11.cfg
/usr/local/nagios/etc/servers/cliente1/servidor12.cfg

/usr/local/nagios/etc/servers/cliente2/servidor21.cfg
/usr/local/nagios/etc/servers/cliente2/servidor22.cfg
/usr/local/nagios/etc/servers/cliente2/servidor23.cfg

Tendrás que editar el fichero /usr/local/nagios/etc/nagios.cfg y descomentar la linea "cfg_dir=/usr/local/nagios/etc/servers" (para descomentarla quitale la # que tiene al principio), así te cogerá todos los .cfg que crees en /usr/local/nagios/etc/servers/*

Te adjunto el fichero de configuración de un servidor en concreto, este se llama nahor y Nagios monitoriza algunos de los servicios más basicos (ping, http y ssh).
Debian5Nagios:/usr/local/nagios/etc# cat servers/aic/nahor.cfg
# Define a host for the local machine

define host{
host_name nahor
alias nahor
address DIRECCION DEL SERVIDOR
parents internet
check_command check-host-alive
check_interval 5
retry_interval 1
max_check_attempts 5
check_period 24x7
process_perf_data 0
retain_nonstatus_information 0
# contact_groups router-admins
notification_interval 30
notification_period 24x7
notification_options d,u,r
icon_image firewall.gif
statusmap_image firewall.gd2
}

# Define a service to "ping" the local machine

define service{
use local-service ; Name of service template to use
host_name nahor
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}

define service{
use local-service ; Name of service template to use
host_name nahor
service_description HTTP
check_command check_http
notifications_enabled 0
}

define service{
use local-service ; Name of service template to use
host_name nahor
service_description SSH
check_command check_ssh
notifications_enabled 0
}

Además dentro de cada cliente yo he creado un hostgroup.cfg como podrás ver en la salida del "tree". Esto es porque todos los servidores tienen que pertenecer a un grupo.

En este caso el cliente "asd" solo tiene un servidor al que monitorizar. Esta es la salida de su
hostgroup.cfg.
define hostgroup{
hostgroup_name asd ; The name of the hostgroup
alias ada ; Long name of the group
members nahor ; Comma separated list of hosts that belong to this group
}

Para verificar que toda tu configuración sea correcta, tendrás que ejecutar el comando:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Y en una de las lineas te tiene que decir "Total Errors: 0" cuando tengas esto haz un restart del servicio nagios y todo tiene que funcionar correctamente.

Espero que mi información te sea de ayuda.
Un saludo.