Archives de catégorie : Nagios

SNMP : extend

Pour lister les ajouts extend dans le fichier snmpd.conf :

extend zfs /sbin/zfsstatus

Ne pas oublié le sheebang, sinon snmp pete une erreur (rage).

~:cat /sbin/zfsstatus#!/bin/bash
/sbin/zpool status -x data
/sbin/zpool status -x rpool
/sbin/zpool status -x raid10

 

Logiquement, ça affiche quelque chose :

snmpwalk -v2c -c public localhost NET-SNMP-EXTEND-MIB::nsExtendOutLine

Recuperer l’OID :

snmptranslate -On 'NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."zfs"'

Plugin : check_ipfire_core_update

Depuis IpFire

Créer un script pour savoir si une mise à jour est disponible pour ipfire, par exemple copié collé dans /usr/lib/nagios/check_ipfire_core_update. Puis attribuer les droits d’exécution :

mkdir -p /usr/lib/nagios/
cat > /usr/lib/nagios/check_ipfire_core_update <<EOF
#!/bin/bash
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
STATE_DEPENDENT=4
SYSTEM=\`cat /opt/pakfire/db/lists/core-list.db |grep "core_"\`
PAKFIRE=\\\$core_release=\"\`cat /opt/pakfire/db/core/mine\`\"\;
if [[ \$SYSTEM == \$PAKFIRE ]]
then
echo \$STATE_OK
exit 0
else
echo \$STATE_CRITICAL
exit 2
fi
exit 3
EOF
chmod +x /usr/lib/nagios/check_ipfire_core_update

Ajouter la ligne suivante dans /etc/snmpd.conf et on relance le service snmpd

echo "extend update /usr/local/bin/check_ipfire_core_update" >> /etc/snmpd.conf
/etc/init.d/snmpd restart
 

Avant, sur Ipfire, on check l’OID.

snmpwalk -v2c -c public 127.0.0.1 nsExtendOutput1
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."update" = STRING: 0
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."echotest" = STRING: hello world
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."update" = STRING: 0
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."echotest" = STRING: hello world
NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."update" = INTEGER: 1
NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."echotest" = INTEGER: 1
NET-SNMP-EXTEND-MIB::nsExtendResult."update" = INTEGER: 0
NET-SNMP-EXTEND-MIB::nsExtendResult."echotest" = INTEGER: 0
snmptranslate -On NET-SNMP-EXTEND-MIB::nsExtendOutput1Line.\"update\"
.1.3.6.1.4.1.8072.1.3.2.3.1.1.6.117.112.100.97.116.101

Depuis le superviseur

Command à créer dans Eyes Of Network :

$USER1$/check_snmp -H $HOSTADDRESS$ -P 1 -C $USER2$ -o .1.3.6.1.4.1.8072.1.3.2.3.1.1.6.117.112.100.97.116.101 -l "Update" -s 0 -c 2

Ce qui donnerai dans un fichier texte normal

define command {
    command_name    check_ipfire_update
    command_line    $USER1$/check_snmp -H $HOSTADDRESS$ -P 1 -C $USER2$ -o .1.3.6.1.4.1.8072.1.3.2.3.1.1.6.117.112.100.97.116.101 -s 0 -c 2 -l "Update"
}