Plugin. HP ILO

Vamos a ver como monitorizar un servidor HP a través de su interface gestión ILO. El plugin correspondiente nos avisará en caso de que exista una problema de Hardware en el servidor (Temperaturas, fuentes de alimentación, memoria, micros,…)

Para chequear la salud Hardware de servidores HP tenemos básicamente dos opciones:

  1. Realizarlo a través del puerto de gestión ILO.
  2. Realizarlo a través de SNMP para lo que necesitamos que el Sistema Operativo del Servidor tenga instalado el agente de HP Insight Manager que es el que nos añade las librerías necesarias para disponer de esos datos por SNMP.

En este articulo veremos la primera opción, mediante ILO. Usaremos el plugin disponible en NagiosExchange:  check_ilo2_health. Mirar bien los comentarios en la página ya que hay en estos un enlace a una versión del plugín más actualizada. Este plugin también nos funcionará para las ilo3 y parece que para ilo4.

Lo bajamos y copiamos nuestro directorio de plugins y lo hacemos ejecutable. En nuestro caso lo probamos en un servidor Debian  y fue necesario previamente tener instalado algunos módulos de Perl.

apt-get install libnet-smtp-ssl-perl libxml-simple-perl

Lo probamos en la línea de comandos contra el servidor, con usuario Administrator p.e.:

#./check_ilo2_health.pl -H 192.0.0.10 -u Administrator –p Password -n -3

OJO. Si es ILO3/4 añadimos el Flag “-3”, versiones previas no lo ponemos.

Si queremos ver la salida de todo lo que chequea usaremos el flag de verbose –v. Nos podemos hacer una idea de esta forma de todo lo que chequea. Mirando la ayuda podemos ver que tiene varias opciones activables para chequear también discos, fuente redundante, datos de rendimiento para las gráficas,…

Podemos configurar el check_command para recibir los parámetros habitualmente o podemos hacer uso de macros variables a medida (Custom Variable Macros) para simplificar el acceso a todas las ILOs. En este caso, para aportar algo más :-), lo haremos de esa manera. En otro artículo hablaremos más a fondo del tema.

Nuestros commands de ambas formas (con y sin macros variables a medida) serian básicamente los siguientes. Usaremos en los ejemplos el segundo:

# CHECK_ILO
  define command {
  command_name check_ilo
  command_line $USER1$/check_ilo2_health.pl -u $USER10$ -p $USER11$ -H $HOSTADDRESS$ -n
}
# CHECK_ILO, con macros a medida
  define command {
  command_name check_ilo_mod
  command_line $USER1$/check_ilo2_health.pl -u $_HOSTILO_USER$ -p $_HOSTILO_PASS$ -H $_HOSTILO_ADDRESS$ -n
}

¿Por qué usar “custom variable macros”?. En este caso nos encontramos con que tenemos un servidor que monitorizar por dos direcciones ips con servicios diferentes (ip S.O. e ip de la ILO). Tenemos la opción de crear un Host independiente para la ILO con su dirección IP y listo, sin complicaciones. Para este caso podemos usar como nombre de Host para la ILO el mismo que para el S.O. pero añadiéndole al final “-ILO”, para que aparezcan seguidos. La otra opción, usando estas macros, es definir directamente el chequeo de la ILO como un servicio más de nuestro servidor. También se podía haber hecho a mano pero de esta forma pienso ganamos en claridad y orden. Todos nuestros hosts con ILOs los podemos definir de la misma forma.

define host{
 use generic-host
 host_name virtual3
 alias virtual3
 address 192.168.2.12
 _ILO_ADDRESS 192.168.1.12
 _ILO_USER Administrator
 _ILO_PASS XXXXXXX
}

Y la definición del servicio sería p.e. para un host

 # Servicio - Chequeo de estado equipos HP a traves de ILO -
define service {
 use generic-service
 host_name virtual3
 #hostgroup_name HPILO-Servers
 service_description EstadoHardwareHP_ILO2
 check_command check_ilo_mod
}

Siempre será mejor crear un grupo de hosts que contenga todos los que tienen ILO. El resultado sería el siguiente:

nagios_plugin_check_ilo

 

Este uso en concreto tiene una pequeña pega… las passwords… En el artículo sobre Macros globales comentábamos que es mejor limitar el uso de passwords al fichero resource.cfg donde se definen las macros globales. Lo estamos incumpliendo.
Lo mejor realmente sería crear en todas nuestras ILOs mediante su interface web un usuario adicional con una password única y definir estas en resource.cfg, p.e.:

#Acceso HP ILOs
$USER15$=UserNagios
$USER16$=password_userNagios

Cambiamos nuestros objetos host y command de la siguiente forma:

define host{
 use generic-host
 host_name virtual3
 alias virtual3
 address 192.168.0.63
 _ILO_ADDRESS 192.168.0.73
}
 # CHECK_ILO, con macros a medida
 define command {
 command_name check_ilo_mod
 command_line $USER1$/check_ilo2_health.pl -u $USER15$ -p $USER16$ -H $_HOSTILO_ADDRESS$ -n
}

Listo…

Como vemos, las macros variables a medida pueden ser muy interesantes para pasar cualquier valor que se nos ocurra a la hora de realizar un chequeo desde un servicio de dicho host pero debemos tener cuidado de intentar no usarlas para passwords. Si las tienes presentes seguro que te surgirá una oportunidad de usarlas que te ahorrará complicaciones y te hará la definición de objetos más clara y versátil.

Bajaté el artículo en PDF.

.

 

 

2 thoughts on “Plugin. HP ILO

  1. David

    Conseguido….

    Me falta crear un usuario nuevo en la ILO (cuando pueda apagar el proliant) para dejarlo perfecto, pero de momento me vale.

    Buen articulo. Gracias.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Comment moderation is enabled. Your comment may take some time to appear.