SNMP extend

Möchte man das Ergebnis von eigenen Skripten dem Nagios bekannt machen, bietet sich SNMP an. Zumal wenn letzteres schon eingerichtet ist, um andere Systemwerte im Nagios abzufragen.

Die Zeile extend check_xyz "/usr/local/scripts/check_xyz.sh arg1 argn" in der Datei /etc/snmp/snmpd.conf macht das Sktipt dem SNMPD bekannt. Mit dem Befehl sudo service snmpd restart wird die geänderte Konfiguration eingelesen. Möchte man die Änderung testen, kann die Abfrage mit snmpwalk -v1 -c public localhost NET-SNMP-EXTEND-MIB::nsExtendObjects bei entsprechenden Rechten ausgeführt werden.

Erscheint innerhalb der SNMP-Meldungen „Permission denied“, kann das an einer unzureichenden SELinux-Konfiguration liegen. Der Befehl sudo setenforce 0 deaktiviert die Sperrung (bis sudo setenforce 1 oder ein Reboot ausgeführt wird). Kann das eigene Skript in diesem Zustand genutzt werden, müssen die SELinux-Policies angepasst werden.

Weitere Details im Red Had Deployment Guide unter „18.5.5. Extending Net-SNMP“.

Mit folgendem Mini-Skript als Nagios-Command kann auf dem Nagios-System die erste Ausgabezeile und der Exit-Code im Nagios-Service genutzt werden.

[code lang=“bash“]#!/bin/sh

# snmpwalk -v1 -c public localhost NET-SNMP-EXTEND-MIB::nsExtendObjects

if [ $# -ne 3 ]; then
echo -n „Falscher Skriptaufruf. Korrekt: “
echo „`basename $0`
exit 99
fi

HOSTNAME=$1
COMMUNITY=$2
SCRIPTNAME=$3

SNMPCMD=“/usr/bin/snmpget -OevqU -v1 -c $COMMUNITY $HOSTNAME“

OID_RESULT=’NET-SNMP-EXTEND-MIB::nsExtendResult.“SCRIPTNAME“‚
SNMP_RESULT=`$SNMPCMD ${OID_RESULT/SCRIPTNAME/$SCRIPTNAME}`

OID_OUTPUT=’NET-SNMP-EXTEND-MIB::nsExtendOutLine.“SCRIPTNAME“.1‘
SNMP_OUTPUT=`$SNMPCMD ${OID_OUTPUT/SCRIPTNAME/$SCRIPTNAME}`

echo $SNMP_OUTPUT

exit $SNMP_RESULT[/code]

Schreib einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.