Aktionen

NetApp Uhrzeit und Abweichung monitoren überwachen

Aus znilwiki

1 Ausgangslage

Bei einem Kunden weigert sich seine NetApp beharrlich die Uhrzeit mit einem der Zeitserver abzugleichen.
Weicht die lokale Zeit der NetApp aber zu sehr von der Zeit in der Windowsdomäne ab ist kein Zugriff mehr auf die Cifs-Freigaben möglich das die Authentifizierung fehlschlägt - ich meine mich zu Erinnern das es nicht mehr als 15 Minuten Abweichung sein dürfen.

Bis der Support das Problem mit dem Zeitserver gelöst hat sollte zumindest die Abweichung der Zeit überwacht werden um ggf. Rechtzeitig von Hand gegenzusteuern.


2 Das Skript

Der Test wird vom Zabbix-Server aus durchgeführt. Als Voraussetzung muss sshpass installiert sein:

apt-get install sshpass


und das Skript (richtigen Pfad für eure Installation wählen!):

nano /share/zabbix/externalscripts/netapptime.sh

oder(!)

nano /usr/local/share/zabbix/externalscripts/netapptime.sh

<script lang="bash">

  1. !/bin/bash

tempvar1=`sshpass -pPASSWORT ssh -o UserKnownHostsFile=/tausch/netapp -o StrictHostKeyChecking=no admin\@192.168.254.7 'date' | grep Europe 2>/dev/null` echo "NetApp Zeit: $tempvar1" netapptime=`echo $tempvar1 | cut -d':' -f2` echo "Netapp Minuten: $netapptime" localtime=`date | cut -d':' -f2` echo "Lokale Minuten: $localtime" echo "Differenz: $(( $netapptime - $localtime ))" /usr/local/bin/zabbix_sender -z 127.0.0.1 -s NetApp -k znil.netapp.timedifference -o $(( $netapptime - $localtime )) </script> Ein etwas schmutziges Skript, anpassen müsst Ihr folgende Textstellen:

-pPASSWORT             : Das Passwort für den admin Benutzer (mit dem -p davor)
/tausch/netapp         : In der Datei legt er beim erste

n mal den host verification key ab - das muss so sein damit ab dem 2. mal der grep funktioniert.

                 Also bitte einen gültigen Pfad (nicht den /tmp Ordner nehmen)
192.168.254.7          : Die IP-Adresse eurer NetApp, und zwar die IP des Cluster Management - ggf. von Hand testen ob Ihr euch per sshanmelden und den Befehl date ausführen könnt
/usr/bin/zabbix_sender : Pfad zum Zabbix-Sender Datei   
-s NetApp              : Name des Hosts in Zabbix


Macht das Skript ausführbar:

chmod 755 /share/zabbix/externalscripts/netapptime.sh

und testet es - es wird erst beim 2. Aufruf richtig funktionieren da beim ersten mal der Grep nicht richtig klappt (wegen der Meldung das der Host-Key hinzugefügt wird).
Beispielausgabe:

NetApp Zeit:           Mon Apr 23 11:34:53 2018 Europe/Berlin
Netapp Minuten: 34
Lokale Minuten: 34
Differenz: 0
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000030"
sent: 1; skipped: 0; total: 1

Das Skript "greift" sich die Minuten und vergleicht diese mit dem lokalen Minuten des Servers. Die Abweichung wird an den Zabbix-Server gesendet.


3 Das Item

Name : NetApp Zeitabweichung
Type : Zabbix trapper
Key  : znil.netapp.timedifference
Type : Numeric (float)
Units: s
ClipCapIt-180423-113111.PNG

Das Preprocessing:

ClipCapIt-180423-113148.PNG

Somit zeigt uns Zabbix den Wert in Stunden/Minuten/Sekunden an.
Nun führt zum Testen das Skript noch einmal aus und schaut ob der Wert beim Host landet. Das Skript sollte am Ende ein< br>

info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000030"

ausgeben (kein failed)


4 Der Trigger

Dieser meldet euch nach Belieben die Abweichung nach oben oder unten. Der Wert wird in Sekunden umgewandelt, deshalb müsst Ihr auch auf eine Abweichung in Sekunden prüfen, hier sind es 5 Minuten. (240 sind 4 Minuten, der Wert wird aber immer nur in 60 Sekunden Schritten springen):

ClipCapIt-180423-114051.PNG



5 Der Cronjob

Wenn das Skript den Wert wie gewünscht sendet legt Ihr einen CronJob auf dem Zabbix-Server an:

crontab -e

und folgende Zeile anhängen:

30 * * * * /share/zabbix/externalscripts/netapptime.sh

Den Pfad ggf. wieder anpassen.
Der Job wird immer zu jeder halben Stunde ausgeführt. 24 mal am Tag sollte reichen und mit der Ausführung zur 30. Minute gibt es kein Problem bei dem Errechnen der Differenz selbst bei größeren Abweichungen.


6 Kommentare


Kommentar hinzufügen
znilwiki freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, trage deinen Namen oder deine Email-Adresse ein oder melde dich an. Du kannst das Feld auch einfach leer lassen.