jueves, 26 de septiembre de 2019

Tomar la temperatura del chassis HP en ILO5 con Nagios




Vamos a tomar la temperatura del chassis de un servidor HP a través de comandos SNMP para pasarle a Nagios una alarma en el caso del que el servidor se sobrecaliente por falta de ventilación o fallo de climatización.

He montado una maquina virtual con CentOS 7 (CentOS-7-x86_64-Minimal-1810.iso) corriendo sobre un servidor Wintel 2012 con Hyper-V.

El primer paso Instalar NAGIOS CORE (nagios-4.4.5.tar.gz) y  descargar las librerias de SNMP

Instalar el plugin check_snmp en /usr/local/nagios/libexec y darle permisos de acceso

chmod 755 check_snmp

Una vez instalado, editar los archivos siguientes para dar de alta los host y lo servicios. /usr/local/nagios/etc/objects
  • nagios.cfg (configuración general rutas)
  • hosts.cfg (basicamente las IP de los Host a auditar)
  • commands.cfg (son los comandos con las variables de servicios)
  • services.cfg (son los servicios a auditar)


Entrar en ILO y dar de alta usuario y credenciales con el que entraremos por SNMP desde Nagios
asegurarese tener los puertos 161 y 162 abiertos.  ir a Management - SNMP Settings y dar de alta un nuevo usuario, poner credenciales para el Protocolo de Autentificacion SHA y el Protocolo de Privacidad AES.



Entrar en la consola de Linux y ejecutar el comando con las credeciales y el OID que vamos a escojer, el cual nos devuelve la temperatura del chassis y luego escribirla en dichos archivos:

Código nagios.cfg:

# OBJECT CONFIGURATION FILE(S)
# These are the object configuration files in which you define hosts,
# host groups, contacts, contact groups, services, etc.

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
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
cfg_file=/usr/local/nagios/etc/objects/services.cfg 
# Definitions for monitoring the local (Linux) host
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
Código hosts.cfg:

         # DEFINICION DE HOSTS
         # These are the object configuration files in which you define hosts
define host {
    host_name                        ilo_srvhyperv01
    alias                                  ILO de srvhyperv01
    address                             172.26.0.152
    max_check_attempts        5
    check_interval                  1
    check_period                    24x7
    notification_interval         30
    notification_period           24x7
}

Código commands.cfg:

         # DEFINICION DE COMANDOS
         #Aquí es donde definimos los comandos a ejecutar, se pueden ejecutar previamente
         # en la linea de comandos para testearlo antes de escribir en este archivo.
# ILO 5 Proliant Server command
define command {
command_name check_ilo5_chassis_temp
command_line $USER1$/check_snmp -P 3 -U ilosnmp -L authPriv -a SHA -A authentication_passphrase -x AES -X privacy_passphrase- -H 172.26.0.152 -o $ARG1$ -w $ARG2$ -c $ARG3$
}
Código services.cfg:

         # DEFINICION DE SERVICIOS
         #Aquí es donde definimos los servicios que vamos a consultar
         # el simbolo ! define las variables $ARG$ que se van a pasar al archivo commands.cfg
         # en este caso !1.3.6.1.4.1.232.6.2.6.8.1.4.0.29   !50   !60
define service {
    host_name                            ilo_srvhyperv01
    service_description            check ilo5 chassis temp
    check_command                        check_ilo5_chassis_temp!1.3.6.1.4.1.232.6.2.6.8.1.4.0.29!50!60
    notifications_enabled          1
    max_check_attempts          5
    check_interval                    5
    retry_interval                      3
    check_period                      24x7
    notification_interval           30
    notification_period             24x7
    notification_options            w,c,r
}
Reiniciar Nagios:

service nagios restart

Resultado:



Otros plugins útiles:

http://william.leibzon.org/nagios/

Agentes de Nagios:

Monitoring Windows Machines · Nagios Core Documentation
https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/monitoring-windows.html

Monitoring Linux-Unix Machines · Nagios Core Documentation
https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/monitoring-linux.html

1. Instalar agente NSCP-0.5.2.35-x64.msi 
2. Instalar plugin check_nt en linux (si no estubiera) para comunicarse con el agente.
3. Editar archivo de configuracion y activar  las opciones a enabled
ruta: c:\Program Files\NSClient++\nsclient.ini
recordar poner la IP habilitada de Nagios para consultar el agente y la contraseña compartida.
4. Abrir los puertos del firewall puerto: 12489

5. Reiniciar el servicio NSclient Monitoring agent.

+ info sobre instalación de CentOS7 y Nagios Core:

how add host on nagios core
https://community.spiceworks.com/topic/1899607-how-add-host-on-nagios-core

install gcc
https://helloit.es/2012/01/no-acceptable-c-compiler-found-in-path/

Install Nagios Core on CentOS 7
https://linuxhostsupport.com/blog/how-to-install-nagios-core-on-centos-7/

Install net-tools
https://www.itzgeek.com/how-tos/mini-howtos/netstat-command-not-found-on-centos-7-rhel-7-quick-fix.html

Install wget
http://ayuda-it.blogspot.com/2011/07/instalacion-del-comando-wget-en-linux.html

listar servicios activos
https://www.jesusamieiro.com/como-comprobar-que-servicios-estan-en-ejecucion-en-un-sistema-linux/

Object Definitions
https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/objectdefinitions.html

problemas http forbidden
https://nksistemas.com/solucion-en-nagios-a-http-warning-http-1-1-403-forbidden/

Setup network
https://lintut.com/how-to-setup-network-after-rhelcentos-7-minimal-installation/

Abrir puerto 80 firewall
https://stackoverflow.com/questions/24729024/open-firewall-port-on-centos-7

NOTA:

Recordar modificar el archivo del sistema linux hosts (/etc/hosts) con las IPs y nombres que se nombren en el archivo hosts de Nagios (/usr/local/nagios/etc/objects).