Configuración Nagios 3

Nos conectamos al servidor como root:

01_conexion.jpg

su -

Los archivos a modificar están en /etc/nagios3/. Nos situamos en ese directorio:

02_directorio.jpg

cd /etc/nagios3/

Las lineas precedidas por el simbolo "<" salen del fichero, las lineas precedidas por ">", son nuevas lineas que se incluyen en el fichero.

apach2.conf

03_apache1.jpg04_apache2.jpg

vi apache2.conf

< #ScriptAlias /cgi-bin/nagios /usr/lib/cgi-bin/nagios3
< #ScriptAlias /nagios/cgi-bin /usr/lib/cgi-bin/nagios3
< #ScriptAlias /cgi-bin/nagios2 /usr/lib/cgi-bin/nagios3
< #ScriptAlias /nagios2/cgi-bin /usr/lib/cgi-bin/nagios3

> ScriptAlias /cgi-bin/nagios /usr/lib/cgi-bin/nagios3
> ScriptAlias /nagios/cgi-bin /usr/lib/cgi-bin/nagios3
> ScriptAlias /cgi-bin/nagios2 /usr/lib/cgi-bin/nagios3
> ScriptAlias /nagios2/cgi-bin /usr/lib/cgi-bin/nagios3

< #Alias /nagios2 /usr/share/nagios3/htdocs
< #Alias /nagios /usr/share/nagios3/htdocs

> Alias /nagios2 /usr/share/nagios3/htdocs
> Alias /nagios /usr/share/nagios3/htdocs

cgi.cfg

05_cgi1.jpg06_cgi2.jpg

vi cgi.cfg

< authorized_for_all_services=nagiosadmin
< authorized_for_all_hosts=nagiosadmin

> authorized_for_all_services=nagiosadmin,nagios-ro
> authorized_for_all_hosts=nagiosadmin,nagios-ro

commands.cfg

07_commands1.jpg08_commands2.jpg

Sustituimos todo el contenido del apartado "NOTIFICATION COMMANDS" por:

vi commands.cfg

#'host-email-kiosco' command definition
define command{
command_name host-email-quiosco
command_line /usr/bin/printf "%b" "* MONITORIZACION *\n\nTipo Notificacion: $NOTIFICATIONTYPE$\nHost: $HOSTALIAS$\nEstado: $HOSTSTATE$ por $HOSTDURATION$\nDireccion: $HOSTADDRESS$\nInfo:\n\n$HOSTOUTPUT$\n\nFecha/Hora: $LONGDATETIME$\n\nReconocido por: $HOSTACKAUTHOR$\nComentario: $HOSTACKCOMMENT$\n" | /usr/bin/mail -a "From: moc.odimsiul|con#moc.odimsiul|con" -s "** $NOTIFICATIONTYPE$ alerta $NOTIFICATIONNUMBER$ - $HOSTALIAS$ esta $HOSTSTATE$ **" $CONTACTEMAIL$
}

#'notify-email-kiosco' command definition
define command{
command_name notify-email-quiosco
command_line /usr/bin/printf "%b" "* MONITORIZACION *\n\nLe informamos que el $SERVICEDESC$ del $HOSTALIAS$ esta en estado $SERVICESTATE$.\n\n\nAtentamente\n\nNOC LUISMIDO\moc.odimsiul|conn#moc.odimsiul|conn\n" | /usr/bin/mail -a "From: moc.odimsiul|con#moc.odimsiul|con" -s "** $NOTIFICATIONTYPE$ - $HOSTALIAS$/$SERVICEDESC$ estado: $SERVICESTATE$ **" $CONTACTEMAIL$
}

#'host-notify-by-email' command definition
define command{
command_name host-notify-by-email
command_line /usr/bin/printf "%b" "* Nagios *\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTALIAS$\nState: $HOSTSTATE$ for $HOSTDURATION$\nAddress: $HOSTADDRESS$\nInfo:\n\n$HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n\nACK by: $HOSTACKAUTHOR$\nComment: $HOSTACKCOMMENT$\n" | /usr/bin/mail -a "From: moc.odimsiul|con#moc.odimsiul|con" -s "** $NOTIFICATIONTYPE$ alert $NOTIFICATIONNUMBER$ - $HOSTALIAS$ host is $HOSTSTATE$ **" $CONTACTEMAIL$
}

#'host-notify-by-epager' command definition
define command{
command_name host-notify-by-epager
command_line /usr/bin/printf "%b" "Host '$HOSTALIAS$' is $HOSTSTATE$\nInfo: $HOSTOUTPUT$\nTime: $LONGDATETIME$" | /usr/bin/mail -a "From: moc.odimsiul|con#moc.odimsiul|con" -s "$NOTIFICATIONTYPE$ alert - Host $HOSTNAME$ is $HOSTSTATE$" $CONTACTPAGER$
}

#'notify-by-email' command definition
define command{
command_name notify-by-email
command_line /usr/bin/printf "%b" "* Nagios *\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nState: $SERVICESTATE$ for $SERVICEDURATION$\nAddress: $HOSTADDRESS$\n\nInfo:\n\n$SERVICEOUTPUT$\n\nDate/Time: $LONGDATETIME$\n\nACK by: $SERVICEACKAUTHOR$\nComment: $SERVICEACKCOMMENT$\n" | /usr/bin/mail -a "From: moc.odimsiul|con#moc.odimsiul|con" -s "** $NOTIFICATIONTYPE$ alert $NOTIFICATIONNUMBER$ - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}

#'notify-by-epager' command definition
define command{
command_name notify-by-epager
command_line /usr/bin/printf "%b" "Service: $SERVICEDESC$\nHost: $HOSTNAME$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\nInfo: $SERVICEOUTPUT$\nDate: $LONGDATETIME$" | /usr/bin/mail -a "From: moc.odimsiul|con#moc.odimsiul|con" -s "$NOTIFICATIONTYPE$: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" $CONTACTPAGER$
}

#Another sms notification http://www.gammu.org/wiki/index.php?title=Gammu:Main_Page
define command{
command_name host-notify-by-sms
command_line /usr/bin/printf "%b" "Host:$HOSTALIAS$ ++ Addr:$HOSTADDRESS$ ++ State:$HOSTSTATE$ ++Date:$SHORTDATETIME$" | /usr/bin/gammu —sendsms TEXT $CONTACTPAGER$
}

define command{
command_name service-notify-by-sms
command_line /usr/bin/printf "%b" "Svc:$SERVICEDESC$ ++Host:$HOSTALIAS$ ++ Addr:$HOSTADDRESS$ ++ State:$SERVICESTATE$ ++Date:$SHORTDATETIME$" | /usr/bin/gammu —sendsms TEXT $CONTACTPAGER$
}

nagios.cfg

09_nagios1.jpg

vi nagios.cfg

10_nagios2.jpg

< check_external_commands=0
> check_external_commands=1

11_nagios3.jpg

< use_syslog=1
> use_syslog=0

12_nagios4.jpg

< max_service_check_spread=30
> max_service_check_spread=5

13_nagios5.jpg

< max_host_check_spread=30
> max_host_check_spread=5

14_nagios6.jpg

< use_retained_scheduling_info=1
> use_retained_scheduling_info=0

15_nagios7.jpg

< process_performance_data=0
> process_performance_data=1

16_nagios8.jpg

< #host_perfdata_command=process-host-perfdata
< #service_perfdata_command=process-service-perfdata

> host_perfdata_command=process-host-perfdata
> service_perfdata_command=process-service-perfdata

17_nagios9.jpg

< #host_perfdata_file=/tmp/host-perfdata
< #service_perfdata_file=/tmp/service-perfdata

> host_perfdata_file=/tmp/host-perfdata
> service_perfdata_file=/tmp/service-perfdata

18_nagios10.jpg

< #host_perfdata_file_template=[HOSTPERFDATA]\t$TIMET$\t$HOSTNAME$\t$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$
< #service_perfdata_file_template=[SERVICEPERFDATA]\t$TIMET$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$

> host_perfdata_file_template=[HOSTPERFDATA]\t$TIMET$\t$HOSTNAME$\t$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$
> service_perfdata_file_template=[SERVICEPERFDATA]\t$TIMET$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$

19_nagios11.jpg

< #host_perfdata_file_mode=a
< #service_perfdata_file_mode=a

> host_perfdata_file_mode=a
> service_perfdata_file_mode=a

20_nagios12.jpg

< #host_perfdata_file_processing_interval=0
< #service_perfdata_file_processing_interval=0

> host_perfdata_file_processing_interval=30
> service_perfdata_file_processing_interval=30

21_nagios13.jpg

< enable_flap_detection=1
> enable_flap_detection=0

22_nagios14.jpg

< date_format=iso8601
> date_format=euro

23_nagios15.jpg

< admin_email=root@localhost
< admin_pager=pageroot@localhost

> admin_email=moc.odimsiul|con#moc.odimsiul|con
> admin_pager=pageroot

resource.cfg

Sustituir todo por el contenido de resource.cfg del Nagios2.

En conf.d/:

cd conf.d

host-gateway-nagios3.cfg

Renombrarlo a host-gateway.cfg:

24_gateway1.jpg

mv host-gateway-nagios3.cfg host-gateway.cfg

25_gateway2.jpg26_gateway3.jpg

vi host-gateway.cfg

< address 192.168.11.1
> address 213.190.0.225

Y lo movemos a la raiz principal:

mv host-gateway.cfg ../

contacts_nagios2.cfg

En él se encuentran unidos tanto los contactos como los grupos de contactos:

27_contacts1.jpg28_contacts2.jpg

Para tenerlo igual que en Nagios2 mejor los distinguimos en archivos separados:

- creamos el archivo contactsgroups.cfg y le añadimos toda la información
que hay en contactsgroups.cfg del nagios2:

29_contacts3.jpg30_contacts4.jpg31_contacts5.jpg32_contacts6.jpg

touch contactsgroups.cfg

Copiamos todo lo que hay en contactsgroups.cfg del nagios2

vi contactsgroups.cfg
Pegamos toda la información copiada.
:wq

- renombramos contacts_nagios2.cfg a contacts.cfg, borramos todo su contenido y
añadimos la información que haya en contacts.cfg del Nagios2:

33_contacts7.jpg34_contacts8.jpg35_contacts9.jpg36_contacts10.jpg

mv contacts_nagios2.cfg contacts.cfg

Copiamos todo lo que hay en contacts.cfg del nagios2

vi contacts.cfg
Borramos todo y pegamos toda la información copiada.
:wq

extinfo_nagios2.cfg

Renombrar a extinfo.cfg y sustituir todo por el contenido de extinfo.cfg del Nagios2.

Hay que tener en cuenta que Nagios3 utiliza las imagenes de /usr/share/nagios/htdocs/images/ por lo que además de copiar las que utilicemos en Nagios2 a ese directorio, hay que rectificar la ruta que tienen las imágenes en este ficehro (quitar 'base/').

mv extinfo_nagios2.cfg extinfo.cfg
Sustituir contenido.

hostgroups_nagios2.cfg

Renombrar a hostgroups.cfg y sustituir todo por el contenido de hostgroups.cfg del Nagios2.

mv hostgroups_nagios2.cfg hostgroups.cfg
Sustituir contenido.

generic-host_nagios2.cfg

Renombrar a hosts.cfg y sustituir todo por el contenido de hosts.cfg del Nagios2.

mv generic-host_nagios2.cfg hosts.cfg
Sustituir contenido.

generic-service_nagios2.cfg y services_nagios2.cfg

Trata por separado la plantilla genérica de los servicios.

Eliminar generic-service_nagios2.cfg, renombrar services_nagios2.cfg a services.cfg
y sustituir todo por el contenido de services.cfg del Nagios2.

rm generic-service_nagios2.cfg
mv services_nagios2.cfg services.cfg
Sustituir contenido.

localhost_nagios2.cfg

Renombrar a localhost.cfg y sustituir todo por el contenido de localhost.cfg del Nagios2.

mv localhost_nagios2.cfg localhost.cfg
Sustituir contenido.

timeperiods_nagios2.cfg

Renombrar a timeperiods.cfg

mv timeperiods_nagios2.cfg timeperiods.cfg

Copiamos las imágenes que nos interesen de Nagios2 (/usr/share/nagios/htdocs/images/logos/base) en Nagios3 (/usr/share/nagios3/htdocs/images/).

Antes de reiniciar Nagios debemos comprobar que todo lo hemos hecho bien:

nagios3 -v /etc/nagios3/nagios.cfg

Creamos logrotate para nagios3:

vi /etc/logrotate.d/nagios3

/tmp/host-perfdata {
        weekly
        missingok
        rotate 10
        compress
        notifempty
        create 644 nagios nagios
        prerotate
                        /etc/init.d/nagios3 stop > /dev/null
        endscript
        postrotate
                        /etc/init.d/nagios3 start > /dev/null
        endscript

}
/tmp/service-perfdata {
        weekly
        missingok
        rotate 10
        compress
        notifempty
        create 644 nagios nagios
        prerotate
                        /etc/init.d/nagios3 stop > /dev/null
        endscript
        postrotate
                        /etc/init.d/nagios3 start > /dev/null
        endscript

}
/var/lib/nagios3/*.out {
        weekly
        missingok
        rotate 10
        compress
        notifempty
        create 644 nagios nagios
                prerotate
                        /etc/init.d/nagios3 stop > /dev/null
        endscript
        postrotate
                        /etc/init.d/nagios3 start > /dev/null
        endscript

}

Reiniciamos: stop y start

/etc/init.d/nagios3 stop
/etc/init.d/nagios3 start

Por último comprobamos que el proceso se ha detenido y ha vuelto a iniciarse bien:

tail /var/log/nagios3/nagios.log

« Linux | Nagios 3

Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License