====== NAGIOS2 para el monitoreo de los servicios ====== 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 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 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}