meta data de esta página
  •  

Agente IPMI

En nuestro caso vamos a partir de un servidor Dell con una tarjeta BMC (Baseboard Management Controller). Lo primero sería configurar la BMC, para ello

  • Cuando se esté inicializando el BMC presionar “Ctrl + E”.
  • Activar IPMI sobre LAN.
  • Seleccionar “dedicated” en el NIC si sólo se va a usar como BMC
  • Establecer una ip estática.
  • Crear usuario y contraseña para el BMC.

Una vez configurada la tarjeta de control debemos de activar el IPMI en el Zabbix, ya que por defecto no viene activado.

Activar IPMI en Zabbix

  1. Editamos /etc/zabbix/zabbix_server.conf y añadimos al final del archivo <box>StartIPMIPollers=3</box>
  2. creamos un nuevo host y añadimos la interfaz IPMI.
  3. ponemos el usuario y contraseña que habiamos creado en la BMC en la pestaña IPMI.
para poder saber la clave que debemos usar a la hora de monitorizar un ítem en un host, debemos instalar IPMItools y realizar una búsqueda en el equipo que vamos a monitorizar.
Instalar ipmitool
 yum install ipmitool

Creamos un archivo para recopilar la información de los items disponibles en ese servidor en “/etc/zabbix” ipmitool.sh con lo siguiente:

#!/bin/bash

/usr/bin/ipmitool -H X.X.X.X -U TuUsuario -P TuContraseña -I lan -L USER sdr > /etc/zabbix/server1.sdr
/usr/bin/ipmitool -H X.X.X.X -U TuUsuario -P TuContraseña -I lan -L USER sel > /etc/zabbix/server1.sel
/usr/bin/ipmitool -H X.X.X.X -U TuUsuario- P TuContraseña -I lan -L USER fru > /etc/zabbix/server1.fru
Cuando ejecutemos el comando se crearán tres archivos con información referente al servidor. De los tres archivos que crea el sdr es el más importante

Para comprobar la disponibilidad del ítem creamos un archivo llamado comprobar.pl 1)

#!/usr/bin/perl
# Script provided for Zabbix community by Rick Wagner (wagner.234@gmail.com)


use strict;
use warnings;

die usage() if ($#ARGV == -1);

my $regex    = qr/\s*\|\s*/;
my $val;

#my $OUTPUT;

if (open( FILE, "< /etc/zabbix/server1.sdr")) {
    while (<FILE>) {
        chomp($_);

        my @fields = split (/$regex/,$_);
        #print $fields[0];
        if ($#fields >= 2 && $ARGV[0] eq $fields[0]) {
            last if ($fields[2] eq 'ns');

            $val = $fields[1];
            last;
        }
    }


} else {
    die "Error:. $!\n";
}

if (defined($val)) {
    ($val) = ($val =~ /^(\d+)\s+/);
    print $val."\n";
    exit(0);
} else {
    exit (-1);
}

sub usage {
    return "Usage: ./$0 <key>"
}

Ahora ejecutamos el archivo seguido del ítem que queramos comprobar

/etc/zabbix/comprobar.pl 'Ambient Temp' 

y devolverá la temperatura del servidor.

Una vez localicemos el ítem que queremos monitorizar vamos al frontend de zabbix y en “host/ítems” create ítem.

  • Name: nombre del ítem.
  • Type: IPMI agent.
  • Key: el nombre que usaremos para llamarlo en un trigger.
  • Host interface: <ipserver>:623
  • IPMI sensor: el nombre que buscamos anteriormente con el comando ipmitool (e.j. Ambient Temp).
  • Indicar el tipo de dato y el intervalo de actualización.

Enlaces

1)
en el script debemos modificar la ruta del archivo en el que va a buscar si se ha cambiado el lugar o el nombre del archivo.