Mit den OS-Agents auf Linux (na gut auch Windows) haben wir die Möglichkeit eigene Skripte einzubinden. Die Skripte müssen einen Wert (Zahl) zurückliefern. Das heisst, dass wir im Grunde alles in der Welt monitoren können, was wir per Skript abfragen und einen Wert bekommen. Wenn Sie zum Beispiel ihre ersparten Admin-Millionen auf einem Dollar-Konto auf den Cayman Islands lagern, können Sie den aktuellen Dollarkurs per Skript abfragen und anzeigen lassen.
English version with stock data instead of currency: http://tbaublys.clarify-it.com/d/mgctvg
EPOPS Agenten installieren
Zuallererst muss der Agent auf einem Linux installiert sein (es ist auch möglich, den Agent auf dem vR Ops Server selbst zu installieren). Hier ist eine Kurzanleitung.
Skript vorbereiten
Zweitens brauchen wir ein Skript, dass uns die Daten liefert.
Wenn Sie keine Internetverbindung haben, eignet sich dieses Skript gut zum testen:
#!/bin/bash VAR=$(shuf -i 20-30 -n 1) echo $VAR
Das Skript gibt eine Zufallszahl zwischen 20 und 30 raus. Die Metrik können Sie dann “Steigerung der Produktivität” nennen.
Alternativ nehmen wir ein Skript, dass den Dollarkurs abfragt. Zum Beispiel ein python-Skript von dieser Seite hier:
#!/usr/bin/python import urllib2 import json def currencyConverter(currency_from,currency_to,currency_input): yql_base_url = "https://query.yahooapis.com/v1/public/yql" yql_query = 'select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20("'+currency_from+currency_to+'")' yql_query_url = yql_base_url + "?q=" + yql_query + "&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys" try: yql_response = urllib2.urlopen(yql_query_url) try: yql_json = json.loads(yql_response.read()) currency_output = currency_input * float(yql_json['query']['results']['rate']['Rate']) return currency_output except (ValueError, KeyError, TypeError): return "JSON format error" except IOError, e: if hasattr(e, 'code'): return e.code elif hasattr(e, 'reason'): return e.reason currency_input = 1 currency_from = "USD" # currency codes : http://en.wikipedia.org/wiki/ISO_4217 currency_to = "EUR" rate = currencyConverter(currency_from,currency_to,currency_input) print rate
Wichtig ist, dass die Skripte z.B. unter /usr/local/bin abgelegt werden und ausführbar sind. Der EPOPS-Agent läuft nach der RPM-Installation als User “epops” (nicht als root! – auch wenn man es ändern könnte). Also am besten gleich ausprobieren, ob der User “epops” das Skript ausführen kann und ob eine Zahl als Ausgabe kommt:
vrops01-prod:~ # su - epops su: warning: cannot change directory to /home/epops: No such file or directory epops@vrops01-prod:/root> /usr/local/bin/currency 0.8835
Skript Monitoring definieren
Im vR Ops das OS Objekt auswählen und unter “Actions” “Add Monitor Script” auswählen:
Im Dialog-Fenster den Pfad zum Skript angeben. Auf Argumente können wir hier verzichten, aber man kann Skripte auch so gestalten, dass diese Argumente akzeptieren und dann universell einsetzen.
Collection Interval bestimmt wie oft das Skript aufgerufen wird. Timeout, wie lange man auf die Ausgabe maximal warten soll.
Nach einem Kaffee sollten die Daten im vR Ops auftauchen:
- Wetter Content Pack für Log Insight - 24. Juni 2016
- NBA Statistiken in Log Insight - 31. Mai 2016
- Login-Alarme für Linux - 30. Mai 2016
Super Funktion!
Kann ich den rückgabewerden auch andere Label verpassen als Utilization oder Througput?
Leider derzeit noch nicht.