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:
Tomas Baublys
Seine Lieblingsthemen sind Operations Management, Log-Analyse, Compliance und Konfigurationsmanagement.
Der berufliche Werdegang birgt viele Jahre IBM (Linux on Power, AIX und Tivoli) Erfahrung. Einen gewissen Hang zu Open Source kann er seit den Anfängen bei ID-PRO nicht abstreiten.
Es ist schön, für das bezahlt zu werden, was man gerne tut :)
Letzte Artikel von Tomas Baublys (Alle anzeigen)
- vR Ops 6.2.1 erschienen - 28. April 2016
- Objekte mit Eigenschaften - 8. April 2016
- Installation des Log Insight Agenten - 24. März 2016