Para a instalación de nagios podese seguir un manual de descarga e compilación como o da seguinte url: https://www.linode.com/docs/uptime/monitoring/install-nagios-4-on-ubuntu-debian-8/
O directorio de configuración cos diferentes ficheiros para nagios está en /usr/local/nagios/etc onde o ficheiro de configuración principal é nagios.cfg no que podes indicar en que ficheiros de configuración ou en que directorios se poden atopar as definicións de comandos,servidores ou servicios que se van monitorizar.
Algunhas das liñas de exemplo do comentado anteriormente son:
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg
Nesta sección explicamos como crear un envío de avisos por Telegram onde suporemos a existencia dun script que faga os envíos ó bot de Telegram concreto.
########TELEGRAM COMMAND ###########
define command{
command_name notify-alert-telegram
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /ruta/script/envio.py
}
###################################
define contact{
name telegram-contact
use generic-contact
service_notification_commands notify-alert-telegram
host_notification_commands notify-alert-telegram
}
Básicamente nesta configuración o que facemos é definir unha nova plantilla de contacto coas opcións seguintes:
define host{
name telegram-host
use generic-host
contact_groups telegram-admins
register 0
}
As opcións usadas serven para:
define service{
name telegram-service
use generic-service
check_interval 2
notification_interval 30
service_description Telegram avisador
contact_groups telegram-admins
register 0
}
As opcións usadas serven para:
define contact{
contact_name telegram-user
use telegram-contact
}
As opcións usadas serven para:
Na sección de CONTACT GROUPS incluímos o seguinte código:
define contactgroup{
contactgroup_name telegram-admins
members telegram-user
}
As opcións usadas serven:
Neste caso temos que diferenciar entre as alertas para a máquina local, é decir, o propio servidor de nagios e o resto de máquinas remotas as cales vamos monitorizar.
Neste caso nagios xa trae un arquivo con nome localhost.cfg na ruta ** /usr/local/nagios/etc/servers** onde se definen moitas das alertas máis comúns entre as que se atopan: ping,cpu,ram,disco.....
Teríamos que primeiro definir o host e despois os servicios a monitorizar sobre o hosting anterior. Habería que matizar que se poderían definir os hosts todos nun ficheiro e logo usar diferentes ficheiros para cada servicio ou grupo de servicios, por exemplo definir os hosts todos nun arquivo e logo definir servicios por ubicación física das máquinas ou por entorno (servicios de producción,piloto e desarrollo).
Un exemplo de definición de host(neste caso o host local pero valería con cambiar a dirección pola ip da máquina a monitorizar) é:
define host{
use telegram-host
host_name localhost
alias localhost
address 127.0.0.1
}
As opcións usadas servern:
Un exemplo de definición de servicio é:
define service{
use telegram-service
host_name localhost
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
As opcións usadas server:
A estructura a nivel de servidor de nagios é semellante á indicada na sección anterior, só cambia en que os comandos que non fagan chequeos de rede como por exemplo o de ping ou o chequeo de que un porto está aberto, fanse a través do comando check_nrpe.
O exemplo de configuración de chequeo de servicio remoto é o seguinte:
define service{
use telegram-service
host_name kvm
service_description disco
check_command check_nrpe!check_sda1
}
As opcións usadas son as mesmas que no punto anterior só cambia a:
A diferencia con outros sistemas de monitorización é que neste caso é o servidor o que se conecta ó cliente para comprobar o espacio en disco por exemplo. A continuación detallo os pasos para a instalación de un cliente en Centos e outro en Debian.
O primeiro que temos que facer é instalar o paquete de nrpe para o cliente nagios:
yum install nrpe
A maiores instalaremos o paquete cos plugins de nagios para monitorizar disco,cpu,memoria:
yum install nagios-plugins-all
O principal ficheiro de configuración para o cliente de nagios é /etc/nagios/nrpe.cfg onde o primeiro que temos que facer é permitir que a ip do servidor de nagios se poida conectar a este cliente. Eso pódese facer na liña:
allowed_hosts=127.0.0.1,::1,192.168.0.0
Neste mesmo ficheiro de configuración teremos que definir todos os comandos que logo chamaremos directamente dende o servidor de nagios co comando check_nrpe. Un exemplo de liña para engadir como comando sería:
command[check_sda1]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda1
NOTA IMPORTANTE: Hai que ter moito coidado coa inclusión de novos ficheiros de chequeo de nagios se tes activado SElinux porque poder dar problemas cos contextos dos ficheiros. Comando importante para recordar nesta nota: restorecon -Rv /directorio.
Cambia a configuración de Debian en que os comandos e paquetes de instalación son os seguintes:
apt-get install nagios-nrpe-server nagios-plugins-basic
O resto de pasos de configuración son os mesmos que no cliente de Centos.