Devisenkurse im vR Ops – Skriptüberwachung mit dem EPOPS Agent

Von | 17. September 2015

Dollarnote_hqMit 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.

tb_sc_2015-09-17_12-29-50_pm

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:

tb_sc_2015-09-17_12-30-07_pmIm 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.

tb_sc_2015-09-17_12-38-02_pm

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:

tb_sc_2015-09-17_01-47-58_pm

print

2 Gedanken zu „Devisenkurse im vR Ops – Skriptüberwachung mit dem EPOPS Agent

  1. Johannes

    Super Funktion!

    Kann ich den rückgabewerden auch andere Label verpassen als Utilization oder Througput?

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.