1.- Instalar Nagios
apt-get install nagios2 nagios-plugins nagios-images
2.- Al instalar el nagios-plugins nos va pedir que instalemos varios paquetes com el samba pero todo se deja en blanco y el dhcp del samba le decimos que no.
3.- Una vez instalado abrir un navegador e ir a http://localhost/nagios2 de lo contrario hacer un virtual host que apunte a esta direccion /usr/share/nagios2/htdocs debe salir la ventana de seguridad de nagios. Vamos a /etc/nagios2 y creamos el file con usuario que va a administrar el servicio via web.
htpasswd -c /etc/nagios2/htpasswd.users nagiosadmin
accedemos a la pagina y veremos un ejemplo de los servicios locales …
DE AQUI EN ADELANTE EMPEZAMOS YA LA CONFIGURACION DE NAGIOS2
Estructura de los archivos….
web /usr/share/nagios2/htdocs/ configuracion /etc/nagios2/conf.d/ plugins /etc/nagios-plugins/
vamos a poner un ejemplo de un servidor el cual va a tener los siguientes servicios.. mail ftp http
1. Definir los contactos a los cuales vamos a enviar los reportes..de los servicio editamos el file de configuracion contacts_nagios2.cfg y le ponemos esto dentro.
define contact{ contact_name admin alias Administrador Nagios contactgroups admin service_notification_period 24x7 host_notification_period 24x7 service_notification_options w,u,c,r host_notification_options d,u,r service_notification_commands notify-by-email host_notification_commands host-notify-by-email email lolo@micorreo.cu }
donde…
define contact{ contact_name {nombre del contacto} alias {descripcion del contacto} contactgroups {grupo de contactos al cual pertenece} service_notification_period {priodo de tiempo de notificaciones de servicios} host_notification_period {priodo de tiempo de notificaciones de hosts} service_notification_options {opciones de notificacion por servicio} host_notification_options {opciones de notificacion por host} service_notification_commands {comando de notificacion a utilizar por servicio} host_notification_commands {comando de notificacion a utilizar por host} email {direccion de email del contacto} } define contactgroup{ contactgroup_name admins ; el grupo al que pertenece (lo creamos nosotros) alias Admins vcl.rimed.cu ; nombre descriptivo del grupo members admin ; usuario que va a pertenecer a este grupo (si hay mas de uno es separado por coma) }
2. Agregamos los host a los cuales vamos a comprobar reportes de servicios (no recomendable para hacer en la maquina localhost) en el file host-gateway_nagios2.cfg
define host{ use generic-host host_name mailserver alias servidor de correo address 10.10.10.1 check_command check-host-alive max_check_attempts 10 notification_interval 120 notification_period 24x7 notification_options d,u,r } define host{ use {ver abajo} se recomienda ponerlo en sentido general host_name {nombre-host} alias {alias-descriptivo} address {ip} check_command {commando para chequear el host} (para esto primero has un ping a ese servidor si no te va a dar como apagado) contact_groups {grupo de contacto}; max_check_attempts {maxima cantidad de chequeos} notification_interval {intervalo de tiempo entre notificaciones} notification_period {priodo de tiempo de notificaciones} notification_options {cuando enviar notificaciones} ver abajo } use generic-services #eso es para todos los sistemas operativos local-services # para servicios locales linux-services windows-services storage-services # lo referente a discos y almacenamientos notification_options
Esta directiva indica a Nagios en que momentos debe enviar notificaciones de estado
d = DOWN cuando el host esta caido ? u = UNREACHABLE cuando el host no es visible o es inalcanzable ? r = RECOVERY (OK) cuando el host se recupero ? f = FLAPPING cuando el host se inicia o detiene
n = NONE no enviar notificaciones
?
3. definir los grupos de maquinas (servidores) que van a ser verificados por el nagios que esta en el file hostgroups_nagios2.cfg
define hostgroup { hostgroup_name ISP ; nombre del grupo alias servidores members mailserver ; los maquinas que va a pertenecer a este grupo.. (mas de una separada por coma) }
4. Este el el file mas trabajoso en el cual se van a definir todos los servicios services_nagios2.cfg
Hay dos formas de definir los servicios.
1 por grupo (ejemplo hacer chequeo a todo el grupo)
2 independiente (ejemplo hacer chequeo a maquinas y sus servicios por independientes)
para esto vamos a trabajar en el segundo ya que es el mas recomendable
editamos el file anterior y comentamos todo lo que esta dentro y agregamos esto:
define service { use generic-services host_name mailserver service_description salida smtp is_volatile 0 check_period 24x7 max_check_attempts 3 normal_check_interval 5 retry_check_interval 1 contact_groups admins notification_period 24x7 notification_options c,r check_command check_smtp } define service {
donde…
define service { use {template de servicio a utilizar} host_name {hosts que ejecutan dicho servicio} service_description {descripcion del servicio} servicegroups {grupo al cual pertenece} (opcional) is_volatile {si el servicio es volatil} check_period {periodo de tiempo para el chequeo} max_check_attempts {maximo de intentos de chequeo} normal_check_interval {intervalo de tiempo a programar los chequeos} retry_check_interval {intervalo de tiempo para un re-chequeo} contact_groups {grupo de contacto}; max_check_attempts {maxima cantidad de chequeos} notification_period {priodo de tiempo de notificaciones} notification_options {cuando enviar notificaciones} check_command {comando de chequeo con sus argumentos} }
check_command es el comando que se le va a asignar a ese servicio desde el plugins… veamos el ejemplo anterior
check_command check_smtp <code> en el directorio de plugins hay uno que se llama //mail.cfg// y dentro tiene el commando asignado para verificar el puerto smtp lo mismo pasa con todos los otros servicios <code> define service { use generic-services host_name mailserver service_description servicio http is_volatile 0 check_period 24x7 max_check_attempts 3 normal_check_interval 5 retry_check_interval 1 contact_groups admins notification_period 24x7 notification_options c,r check_command check_http }
5. APARTE DE LO QUE SE EXPLICA AQUI EN LAS CONFIGURACIONES FILES
contacts_nagios2.cfg # comentar todo menos lo explicado extinfo_nagios2.cfg # comentar todo generic-host_nagios2.cfg # esto no tocar.. es de forma general lo que se configura en los host generic-service_nagios2.cfg # esto no tocar.. es de forma general lo que se configura en los servicios host-gateway_nagios2.cfg # Comentar todo menos lo explicado hostgroups_nagios2.cfg # comentar todo menos lo explicado localhost_nagios2.cfg # comentar todo services_nagios2.cfg # comentar todo menos lo explicado timeperiods_nagios2.cfg # no tocar (Opcional) es donde se define el tiempo (check_period)
con esto ya estamos casi listo para arrancar el demonio del nagios2.
para comprobar si tenemos algun error en la configuracion ejecutamos
nagios2 -v /etc/nagios2/nagios.cfg
ponerlo publico o no?
se puede poner publico si no habilitas los comandos externos los cuales te permiten parar e iniciar los servicios via web esto se deshabilita y se habilita en nagios.cfg línea 130
para quitar la autenticacion cgi.cfg línea 84
apache2.conf de nagios línea 16 18 19
si no hay errores reiniciamos el nagios
invoke-rc.d nagios2 restart
NOTA: Para que el nagios nos reporte los servicios tenemos que intalar postfix en el servidor que está el nagios y en el main.cf en la linea que dice
relayhost = {ip del servidor SMTP de la red local}