tech:script_ha_supersivion_nagios_routeur_actif_par_snmp
Différences
Ci-dessous, les différences entre deux révisions de la page.
| tech:script_ha_supersivion_nagios_routeur_actif_par_snmp [2025/03/24 15:06] – créée - modification externe 127.0.0.1 | tech:script_ha_supersivion_nagios_routeur_actif_par_snmp [2025/03/24 16:25] (Version actuelle) – Jean-Baptiste | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | < | ||
| + | {{tag> | ||
| + | |||
| + | # Script HA supersivion Nagios routeur actif par SNMP | ||
| + | |||
| + | '' | ||
| + | ~~~bash | ||
| + | #! /bin/bash | ||
| + | |||
| + | # Creative Commons CC0 Public Domain Licence | ||
| + | |||
| + | set -euo pipefail | ||
| + | IFS=$' \t\n' | ||
| + | export LC_ALL=C | ||
| + | |||
| + | OID_HOSTNAME=.1.3.6.1.2.1.1.5.0 | ||
| + | LABEL=" | ||
| + | |||
| + | ALL_ARGS=(" | ||
| + | |||
| + | exec 6>&1 # Link file descriptor #6 with stdout. Saves stdout. | ||
| + | |||
| + | # FIX IGNORED ~/ | ||
| + | HOME=$(getent passwd " | ||
| + | |||
| + | PATH="/ | ||
| + | |||
| + | exit_malfunction() { | ||
| + | exec 1>&6 6>&- # Restore stdout and close file descriptor #6 | ||
| + | echo " | ||
| + | exit 3 | ||
| + | } | ||
| + | |||
| + | # NAGIOS EXIT STATUS | ||
| + | # STATE_OK=0 ; STATE_WARNING=1 ; STATE_CRITICAL=2 ; STATE_UNKNOWN=3; | ||
| + | STATUS_MSG=UNKNOWN | ||
| + | typeset -i STATUS_CODE=3 | ||
| + | trap 'if [ $STATUS_CODE -eq 3 ] && [ $? -ne 0 ] ; then | ||
| + | exit_malfunction " | ||
| + | fi' EXIT ERR | ||
| + | |||
| + | command_exists() { | ||
| + | command -v " | ||
| + | exit_malfunction "I require $1 but it's not installed. Aborting." | ||
| + | ) | ||
| + | } | ||
| + | |||
| + | command_exists snmpget | ||
| + | |||
| + | get_defaultgw() { | ||
| + | ip -4 route show default | awk '/ | ||
| + | } | ||
| + | |||
| + | get_hostname() { | ||
| + | local REMOTE_HOST=$1 | ||
| + | ROUTER_NAME=$(snmpget -r 2 " | ||
| + | } | ||
| + | |||
| + | main() { | ||
| + | local DEFAULTGW | ||
| + | local -i ROUTER_NB | ||
| + | DEFAULTGW=$(get_defaultgw) | ||
| + | get_hostname " | ||
| + | ROUTER_NB=$(echo " | ||
| + | if [ " | ||
| + | STATUS_CODE=0 | ||
| + | STATUS_MSG=OK | ||
| + | elif [ " | ||
| + | STATUS_CODE=1 | ||
| + | STATUS_MSG=WARNING | ||
| + | else | ||
| + | STATUS_CODE=2 | ||
| + | STATUS_MSG=CRITICAL | ||
| + | fi | ||
| + | echo " | ||
| + | |||
| + | } | ||
| + | |||
| + | main | ||
| + | exit $STATUS_CODE | ||
| + | |||
| + | ~~~ | ||
| + | |||
| + | FIXME | ||
| + | |||
