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.