Direkt zum Hauptinhalt

Endian VPN Überwachung

Beschreibung:

Ein Custom Check für ein python Script zur endian VPN überwachung.
Dieses script gibt Graphen mit Anzahl der Verbindung für jede VPN Instanzen aus.
und eine Gesamtverbindungsübersicht für alle VPN Instanzen.

Das Script:

#!/bin/bash

STRING=$(python /root/checkmk_setup/check_metrics4.py openvpn_users | grep openvpn)
IFS=' ' read -ra vpn_array <<< "$STRING"
LEN=${#vpn_array[@]}
printf "0 \"OPENVPN Users\" "
for (( i=5; i<$LEN; i++))
do
	  IFS='=' read -ra part <<< ${vpn_array[$i]}
	  printf "VPNCONF-${part[0]}=${part[1]}"
	  if [ $i -lt $(expr $LEN - 1) ]
          then
          	printf "|"
	  fi
done
printf "\n"



#echo "0 \"OpenVPN Users\" metric=10|metric1=20|metric3=40"

Es ruft

python /root/checkmk_setup/check_metrics4.py openvpn_users | grep openvpn

Ausgabe:

openvpn_users_total: 7 users (OK) | openvpn.2.conf_rvs6test_UDP_tecmata=6 openvpn.1.conf_rvs6test_TCP_tecmata=1 total_vpn_users=7

Diese Ausgabe muss dann nur noch in das Checkmk Format gebracht werden. Das macht das Script.
Die Ausgabe vom Script sieht dann so aus.
Befehl

. /usr/lib/check_mk_agent/local/vpn

Ausgabe:
0 "OPENVPN Users" VPNCONF-openvpn.2.conf_rvs6test_UDP_tecmata=6|VPNCONF-openvpn.1.conf_rvs6test_TCP_tecmata=1|VPNCONF-total_vpn_users=7


Überarbeitet Script mit Metriken für Schwellwerte. Der Doppelpunkt hinter einem Wert heißt darunter und nicht darüber.

#!/bin/bash
WARN=8
CRIT=1
STRING=$(python /root/checkmk_setup/check_metrics4.py openvpn_users | grep openvpn)
IFS=' ' read -ra vpn_array <<< "$STRING"
LEN=${#vpn_array[@]}
printf "P \"OPENVPN Users Metrik\" "
for (( i=5; i<$LEN; i++))
do
          IFS='=' read -ra part <<< ${vpn_array[$i]}
          printf "VPNCONF-${part[0]}=${part[1]}"
          if [ $i -lt $(expr $LEN - 1) ]
          then
              	printf "|"
          else
              	printf ";$WARN:;$CRIT:;$MIN"
          fi
done
printf "\n"



#echo "0 \"OpenVPN Users\" metric=10|metric1=20|metric3=40;8:;1:"

Installation des VPN Python Script im System

In endian RVS5

Der unterschied in RVS5 zu 6 sind die Pfade für die OPENVPN Log

In RVS5 liegen diese unter os.chdir("/var/volatile/tmp/openvpn")
Somit muss im Script der Pfad angepasst werden.

Nach os.chdir im Abschnitt openvpnuser suchen und anpassen nach os.chdir("/var/volatile/tmp/openvpn")
Wurde aber schon gemacht in der Datei : check_metrics4_rvs5.py

Die check_metrics4_rvs5.py auf den RVS kopieren.
Zum Beispiel nach  ~/checkmk_setup/

Das Script erstellen mit

nano /usr/lib/check_mk_agent/local/vpn

Das das Script rein, mit oder Ohne Metrik. Halt was gewünscht ist.
Wenn mit Metrik, nicht vergessen die Metrik Werte anzupassen.
Und den Pfad zur Checkmetric4 Python File anpassen, da es ja RVS5 oder 6 sein kann

Nun erscheint der Service in den Services vom Host

In endian RVS6

Der unterschied in RVS5 zu 6 sind die Pfade für die OPENVPN Log

In RVS5 liegen diese unter os.chdir("/run/openvpn")
Somit muss im Script der Pfad angepasst werden.
Nach os.chdir im Abschnitt openvpn suchen und anpassen nach os.chdir("/run/openvpn")
Wurde aber schon gemacht in der Datei : check_metrics4.py

Die check_metrics4.py auf den RVS kopieren.
Zum Beispiel nach ~/checkmk_setup/

Das Script erstellen mit

nano /usr/lib/check_mk_agent/local/vpn

Das das Script rein, mit oder Ohne Metrik. Halt was gewünscht ist.
Wenn mit Metrik, nicht vergessen die Metrik Werte anzupassen.
Und den Pfad zur Checkmetric4 Python File anpassen, da es ja RVS5 oder 6 sein kann

Nun erscheint der Service in den Services vom Host