Du möchtest einen spezifischen Tunnel auf der FortiGate überwachen und weißt nicht wie. Diverse Icinga2 Plugins bieten dir lediglich die Funktion alle Tunnel zu überwachen. Das ist leider nicht immer zielführend. Wir verwenden für die Überwachung das SNMP Plugin check_snmp.
Als Erstes ziehst du dir von deiner Fortigate das MIB File. Das findest du unter System -> SNMP. Dieses speicherst du unter /usr/share/snmp/mibs/ ab. Um an die entsprechenden OID's der Tunnel zu kommen, musst du ein wenig mit snmpwalk spielen. Dazu machst du als erstes ein snmwalk auf die konfigurierten Namen in Phase 2. Der Parameter -On gibt dir die realen OID's aus.
snmpwalk -v2c -c public X.X.X.X FORTINET-FORTIGATE-MIB::fgVpnTunEntPhase2Name -On
Du erhälst dann in etwa so eine Liste:
.1.3.6.1.4.1.12356.101.12.2.2.1.3.1.1 = STRING: Kunde1-Tunnel1
.1.3.6.1.4.1.12356.101.12.2.2.1.3.1.2 = STRING: Kunde1-Tunnel2
.1.3.6.1.4.1.12356.101.12.2.2.1.3.1.3 = STRING: Kunde1-Tunnel3
.1.3.6.1.4.1.12356.101.12.2.2.1.3.2.1 = STRING: Kunde2-Tunnel1
.1.3.6.1.4.1.12356.101.12.2.2.1.3.2.2 = STRING: Kunde2-Tunnel1
und so weiter
Nun hast du schon einmal die ID's zu den Tunneln. Jetzt ein weiterer snmpwalk für den Tunnel Status.
snmpwalk -v2c -c public X.X.X.X FORTINET-FORTIGATE-MIB::fgVpnTunEntStatus
Dann bekommst du folgende Ausgabe:
.1.3.6.1.4.1.12356.101.12.2.2.1.20.1.1 = INTEGER: up(2)
.1.3.6.1.4.1.12356.101.12.2.2.1.20.1.2 = INTEGER: up(2)
.1.3.6.1.4.1.12356.101.12.2.2.1.20.1.3 = INTEGER: up(2)
.1.3.6.1.4.1.12356.101.12.2.2.1.20.2.1 = INTEGER: up(2)
.1.3.6.1.4.1.12356.101.12.2.2.1.20.2.2 = INTEGER: up(2)
Nun erstellst einen Icinga2 Check nach folgendem Format:
./check_snmp -H 172.16.4.2 -C public -v 2c -o .1.3.6.1.4.1.12356.101.12.2.2.1.20.1.1 -c 2
Das führst du für jede OID durch und bekommst damit einzelne Checks für die einzelnen Tunnel in Phase 2.