check_evaperf

check_evaperf

Dieses Lösung dient zur Hardwareüberwachung einer HP EVA.

Es basiert auf das Tool evaperf, welches auf dem Managementserver installiert sein muss.

Bitte evaperf auf user friendly names umstellen, dann erspart man sich die Eingabe der relativ langen UID's.

evaperf fnh localhost domain\username
evaperf fn

Voraussetzung Managementserver

Auf dem EVA Managment Server muss nrpe_nt installiert werden.

Folgendes muss konfiguriert werden (am Beispiel eines check):

allowed_hosts=
command[check_evaperf-as]=cmd /c "C:Program Files \nrpe_nt\evaperf-as.cmd"

Analog dazu pro check eine Zeile command...

Als Voraussetzung für die Scripte muss noch AWK für Windows installiert werden.

Command Scripts

Je check muss ein cmd Script eingerichtet werden.

Array Status Option

zuerst über Aufruf von evaperf as den Namen (Node) der EVA auslesen.

Diesen im Script ersetzen.

@echo off
"C:\Program Files\Hewlett-Packard\EVA Performance Monitor\evaperf" as | findstr /I  | awk "{pipe=sprintf(\"%%c\",0x7c); print\"HP Eva Array Status: \"$1\" Req/s,\",\" \"$2\" MB/s\"pipe,\"Requests=\"$1\"Req/s;0;0;0;0\",\"Traffic=\"$2\"MB/s;0;0;0;0\"}"

Array Controller Status (je Controller ein Script)

zuerst über Aufruf von evaperf cs den Namen (Ctlr) des Controller Interfaces auslesen.

Diesen im Script ersetzen.

@echo off
"C:\Program Files\Hewlett-Packard\EVA Performance Monitor\evaperf" cs | findstr /I  | awk "{pipe=sprintf(\"%%c\",0x7c); print\"HP Eva Array Controller Status CPU:\"$1\"%%,\",\"Data:\"$2\"%%\"pipe,\"CPU=\"$1\"%%;90;95;0;100\",\"Data=\"$2\"%%;90;95;0;100\"}"

Host Port Statistik Controller (je Port ein Script)

zuerst über Aufruf von evaperf hps den Namen (Namen) und den Ctlr des Interfaces auslesen.

Diese im Script ersetzen (am Beispiel FP1 und WAD9)

@echo off
"C:\Program Files\Hewlett-Packard\EVA Performance Monitor\evaperf" hps | findstr /I  | findstr /I  | awk "{pipe=sprintf(\"%%c\",0x7c); print\"HP Eva Host Port Statistik Controller 0 Port 1 Read: \"$2\"Req/s,\",$3\"MB/s\",$4\"ms\",\",Write: \"$5\"Req/s\",$6\"MB/s\",$7\"ms\"pipe,\"Requests\_read=\"$2\"Req/s;0;0;0;0\",\"Requests\_write=\"$5\"Req/s;0;0;0;0\",\"Traffic\_read=\"$3\"MB/s;0;0;0;0\",\"Traffic\_write=\"$6\"MB/s;0;0;0;0\",\"Latency\_read=\"$4\"ms;0;0;0;0\",\"Latency\_write=\"$7\"ms;0;0;0;0\"}"

Einbindung in Nagios

commands:

Allgemein über check_nrpe mit entsp. Parametern:

  • check_nrpe command definition
  • ARG1 Name des command in nrpe.cfg
  • ARG2 timeout in sek.

Command definition:

define command{
    command_name    check_nrpe
    command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -t $ARG2$
}

Je Script, welches auf dem Managemetserver definiert wurde. muss ein check definiert werden.

Examples

Hier einige Beispiele:

Ãœberwachung des Array:

Define a service to check a script via nrpe

define service{
    use                             pnp-service         ; Name of service template to use
    host_name                       servername
    service_description             eva01_Array
    normal_check_interval           1
    check_command                   check_nrpe!check_evaperf-as!20
}

Ãœberwachung Array Controller 0:

Define a service to check a script via nrpe

define service{
    use                             pnp-service         ; Name of service template to use
    host_name                       servername
    service_description             eva01_Array_Controller_0
    normal_check\_interval           1
    check_command                   check_nrpe!check_evaperf-cs0!20
}

Ãœberwachung Array Controller 0 Hostport 1:

Define a service to check a script via nrpe

define service{
    use                             pnp-service         ; Name of service template to use
    host_name                       servername
    service_description             eva01_Controller_Host_Port_0_1
    normal_check_interval           1
    check_command                   check_nrpe!check_evaperf-hps0-1!20
}