Wie mache ich Foglight Custom Skriptagenten portabel? Komfortables Erzeugen von Cartridge-Dateien.

Wie mache ich Foglight Custom Skriptagenten portabel? Komfortables Erzeugen von Cartridge-Dateien.

Neben den umfangreichen Funktionalitäten die Foglight im Bereich Monitoring, Reporting und Analyse bietet, gab es schon immer die Möglichkeit eigene Skriptagenten zu erstellen und als Datensammler spezifischer Informationen einzubinden. Bewährte, bisher verwendete Skripte können so weiterhin in Foglight genutzt werden.

Bisher war es jedoch aufwändig wenn die Anforderung bestand, Skripte in Foglight mit Übergabeparametern zu versehen und sie anschließend mit Dashboards und Regeln als Cartridge zu exportieren und so portabel zu machen. Die Übergabe aus der Entwicklung in Testsysteme und schließlich in die Produktion wurde unnötig erschwert. Seit der Version 5.7.1 von Foglight existiert eine komfortable, aber leider etwas versteckte Möglichkeit dies zu tun.

Im Tools-Verzeichnis befindet sich die Cartridge-Datei „Cart-Builder-Complete-5_6_5.car“. Nachdem dieses Cartridge in Fogtlight geladen wird, erweitert sich der Bereich „Development Tools“ im Dasboard Menü um den Punkt „Cartridge Builder“.

 

Im Cartridge Builder kann jetzt ein Cartridge definiert werden.

 

Das Cartridge kann jetzt editiert werden.

 

Über „Add Elements“ können nun beliebige Komponenten wie z.B. für den Agenten erstellte Dashboards oder Regeln hinzugefügt werden.

 

Wichtig ist auch der Punkt „add New Agent“. Hier wird der eigentliche Agent erstellt. Beim Editieren des Agenten können das erforderliche Skript und ggf. „Agent Properties“, also Übergabeparameter zugewiesen werden. Wichtig ist, dass sich die Namen der Parameter auch im Skript wiederfinden.

 

Hier ein einfaches Beispiel für ein Skript mit Übergabeparametern. Es wird die Anzahl von Dateien in drei Verzeichnissen gezählt. Die Agent Properties müssen Verzeichnis1, Verzeichnis2 und Verzeichnis3 heißen und mit entsprechendem Datentyp definiert werden.

#!/bin/bash
array=($Verzeichnis1 $Verzeichnis2 $Verzeichnis3)
element_count=${#array[*]}
x=0
y=1
echo TABLE filecount1
while [ $y -le $element_count ];
do
  cd ${array[$x]}
  echo START_SAMPLE_PERIOD
  echo name.String.Id=${array[$x]}
  echo filecount:count=`find . -type f | wc -l`
  echo NEXT_SAMPLE
  x=`expr $x + 1`
  y=`expr $y + 1`
done
echo END_SAMPLE_PERIOD
echo END_TABLE

Ist alles fertig, wird das Cartrige File generiert und kann dann gespeichert werden. Foglight bietet dabei die Möglichkeit der Versionisierung.

Regeln, Dashboards, Agentenskript usw. sind nun in einer Cartridge-Datei zusammengefasst und können so bei anderen Foglight Management Server importiert werden. Die Verteilung, Administration und Konfiguration entsprechen dann der gewohnten Vorgehensweise.

Tipp: Die beschriebene Funktionalität kann natürlich auch dafür genutzt werden, selbsterstellte Regeln, Dashboards, Registry-Variablen und andere Elemente, als CAR-Dateien auf weitere Foglight-Installationen zu übertragen, ohne explizit einen Agenten definieren zu müssen.

Anonymous