Nos conectamos al servidor como root:

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

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


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


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


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

vi nagios.cfg

< check_external_commands=0
> check_external_commands=1

< use_syslog=1
> use_syslog=0

< max_service_check_spread=30
> max_service_check_spread=5

< max_host_check_spread=30
> max_host_check_spread=5

< use_retained_scheduling_info=1
> use_retained_scheduling_info=0

< process_performance_data=0
> process_performance_data=1

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

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

< #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$

< #host_perfdata_file_mode=a
< #service_perfdata_file_mode=a> host_perfdata_file_mode=a
> service_perfdata_file_mode=a

< #host_perfdata_file_processing_interval=0
< #service_perfdata_file_processing_interval=0> host_perfdata_file_processing_interval=30
> service_perfdata_file_processing_interval=30

< enable_flap_detection=1
> enable_flap_detection=0

< date_format=iso8601
> date_format=euro

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

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


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:


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:




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:




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