EN | DE

Bloonix Skripte und Cronjobs

Skripte

SkriptInstalliert durchKurzbeschreibung
bloonix-check-for-maintenancebloonix-serverEinrichtung einer globalen Downtime.
bloonix-count-es-service-documentsbloonix-serverAnzahl der Dokumente eines Hosts in Elasticsearch.
bloonix-delete-es-host-databloonix-serverDaten eines Hosts löschen.
bloonix-get-sms-countbloonix-serverAnzahl der versendeten SMS einer Company.
bloonix-roll-forward-logbloonix-serverEinspielen von JSON Daten nach Ausfall von Elasticsearch.
bloonix-update-agent-host-configbloonix-serverAutomatische Aktualisierung der Hostkonfiguration für den Bloonix-Agenten.
bloonix-clibloonix-agentCommand-Line-Interface für die WebGUI.
bloonix-init-hostbloonix-agentEinen Host in der Agenten-Konfiguration anlegen.
bloonix-create-pluginbloonix-plugin-configErzeugung einer importfähigen Konfigurationsdatei eines Plugins.
bloonix-load-pluginsbloonix-plugin-configEine Konfigurationdatei eines Plugins in die Datenbank importieren.

bloonix-check-for-maintenance

Mit diesem Skript kann geprüft werden, ob der Monitoring-Server eventuell Netzwerkprobleme hat. Die Prüfung erfolgt über einfache Ping-Checks zu einem externen Server. Der Aufruf des Skripts sieht beispielhaft wie folgt aus:

bloonix-check-for-maintenance -H a.server.example -H b.server.example -H c.server.example -e 600

Die angegeben Server werden mittels check-ping geprüft. Wenn die Ping-Checks für alle Server einen höheren Status als WARNING zurückgeben (CRITICAL oder UNKNOWN), so wird das Warnmeldesystem von Bloonix deaktiviert. Wenn nach der Deaktivierung mindestens ein Ping-Check wieder erfolgreich war, so wird das Warnmeldesystem nach einer Wartezeit von 600 Sekunden wieder aktiviert.

Hintergrund:

Die Überwachung von Hosts und Services geschieht über die Bloonix-Agenten. Wenn ein Bloonix-Agent den Bloonix-Server netzwerktechnisch nicht mehr erreichen kann, so laufen die Services, die von den Agenten überwacht werden, nach wenigen Minuten auf einen Timeout, der dazu führt, dass eine Warnmeldung für die Services generiert wird.

Beispiel: Auf einem Server haben Sie den Bloonix-Agenten installiert. Dieser überwacht die Load-Average des Servers. Der Bloonix-Agent kann den Bloonix-Server nicht erreichen, um den aktuellen Status zu liefern. Irgendwann merkt der Bloonix-Server, dass der Status für die Load-Average seit mehreren Minuten nicht mehr aktualisiert wurde und würde nach einem Timeout eine eigene kritische Warnmeldung generieren.

Nun, genau betrachtet gibt es jedoch kein Problem mit dem Host oder den Services, für die in diesem Fall eine Warnmeldung generiert würde, denn das Problem liegt nicht am Host, der überwacht wird, sondern beim Monitoring-Server selbst. Diese Warnmeldung könnte somit irreführend sein. Das Skript bloonix-check-for-maintenance würde also einen Eintrag in der Bloonix-Datenbank tätigen, die alle Bloonix-Server dazu veranlasst, Warnmeldungen via SMS oder E-Mail zu unterdrücken.

bloonix-count-es-service-documents

Dieses Skript zeigt die Anzahl Dokumente für jeden Service, welche in Elasticsearch gespeichert sind. Je nach Menge hat das Skript eine sehr lange Laufzeit, da es jeden Index befragen muss, wieviel Dokumente zu einer Service-ID gespeichert sind.

bloonix-delete-es-host-data

Mit diesem Skript können Daten von Hosts aus Elasticsearch entfernt werden. Die Aufbewahrungsdauer der Daten wird bei der Konfiguration der Hosts in der WebGUI bestimmt. Der Parameter hierzu lautet Aufbewahrungszeit.

bloonix-get-sms-count

Dieses Skript gibt die Anzahl versendeter SMS eines Unternehmens aus. Der Aufruf des Skripts ist sehr einfach:

bloonix-get-sms-count 2014-01-01 2014-01-31

Die Ausgabeformat hat folgenen Aufbau:

COMPANY-ID ; REAL-COMPANY-ID ; SMS-COUNT

Der Unterschied zwischen COMPANY-ID und REAL-COMPANY-ID ist, dass die COMPANY-ID das Auto-Increment Feld der Tabelle COMAPNY ist, während REAL-COMPANY-ID frei vergeben werden kann. Der Wert kann zum Beispiel verwendet werden, um die ID mit einer fremden Kundendatenbank abzugleichen.

bloonix-roll-forward-log

Mit diesem Skript können Daten importiert werden, die während eines Ausfalls von Elasticsearch nicht über den Bloonix-Server gespeichert werden konnten.

Erläuterung:

Der Bloonix-Server speichert Events und Statistiken von Services in Elasticsearch. Wenn das Speichern der Daten nicht erfolgreich war, zum Beispiel weil Elasticsearch nicht erreichbar war, so werden die Daten temporär in der Datei /var/log/bloonix/elasticsearch-roll-forward.json gespeichert. Um diese Daten nun nachträglich zu importieren, kann das Skript bloonix-roll-forward-log gestartet werden. Das Skript sucht automatisch nach der Log-Datei, importiert die Daten und legt danach eine neue Log-Datei an.

Bitte beachten Sie, dass die Daten, vorallem die Event-Daten, extrem wichtig sind für die Reports und zur Ermittlung der Flap-Detection von Services. Wenn Events in Elasticsearch fehlen, dann führt das dazu, dass die Reports von betroffenen Services verfälscht sind. Um sicherzustellen, dass dies nie der Fall ist, sollten Sie die Größe der Datei /var/log/bloonix/elasticsearch-roll-forward.json über das Plugin Filestat.Check überwachen. Sobald sich Daten darin befinden, sollten diese umgehend importiert werden. Die Log-Datei muss auf allen Server überwacht werden, auf denen der Bloonix-Server aktiv ist.

bloonix-update-agent-host-config

Mit diesem Skript können Sie die Host-Konfiguration eines Agenten automatisiert pflegen. Angenommen, Sie möchten einen zentralen Agenten einrichten, der alle Service-Checks mit der Agenten-Lokation remote überwachen soll.

bloonix-update-agent-host-config --addr localhost --agent-id remote --run

Das Skript würde also nun alle Service-Checks mit der Lokation remote aus der Datenbank lesen und diese in einer Datei namens /etc/bloonix/agent/conf.d/hosts.conf schreiben und anschließend den Agenten neu laden. Der Parameter --addr sagt aus, dass der Agent lokal liegt. Wenn Sie die Konfiguration eines Agenten aktualisieren möchten, der auf einem andere Server läuft, so können Sie einfach den Hostnamen über --addr angeben.

bloonix-update-agent-host-config --addr agent.bloonix.net --agent-id remote --run

Das Skript würde dann versuchen, sich über SSH auf dem Server agent.bloonix.net mit dem Benutzer root zu verbinden um dort die Konfiguration zu aktulisieren und den Agenten neu zu laden.

Bitte beachten Sie, dass über den Parameter --agent-id auch mehrere Lokationen komma-separiert angegeben werden können. Beispiel:

bloonix-update-agent-host-config --addr agent.bloonix.net --agent-id intranet,remote --run

bloonix-cli

Mit diesem Skript kann vereinfacht mit der WebGUI kommuniziert werden. Der Aufruf des Skripts ist recht einfach:

bloonix-cli https://webgui/hosts -d '{ "limit": 10 }'

Auf Wunsch kann man die Session-ID im Home-Verzeichnis des Benutzers speichern, um nicht bei jedem Aufruf den Benutzernamen und das Passwort eingeben zu müssen.

bloonix-init-host

Dieses Skript haben Sie eventuell bereits kennengelernt, wenn Sie einen Agenten initial eingerichtet haben. Mit diesem Skript können Sie vereinfacht einen einzelnen Host einer Agenten-Konfiguration hinzufügen.

Angenommen, Sie haben einen Host in der WebGUI eingerichtet und möchten den Agenten auf dem zu überwachenden Server nun konfigurieren. Dies können Sie wie folgt machen:

bloonix-init-host  $hostID.$hostPassword  $bloonixServer1,$bloonixServer2

Das Skript benötigt die Host-ID, das Host-Passwort und die Adressen der Bloonix-Server. Bitte beachten Sie, dass die Adressen der Bloonix-Server beim zweiten Ausführen nicht erneut mit angegeben werden müssen.

bloonix-init-host 1000.a9f8hawefhvwfhv98sahdfvauish  server1.bloonix.net,server2.bloonix.net

Nachdem das Skript ausgeführt wurde, wird eine Konfigurationsdatei names /etc/bloonix/agent/conf.d/host-1000.conf angelegt und der Agent wird neu gestartet, damit dieser sofort mit der Überwachung des Hosts beginnen kann.

bloonix-create-plugin, bloonix-load-plugins

Diese Skripts sind für Entwickler interessant, die eigene Plugins für Bloonix entwickeln möchten. Bitte lesen Sie hierzu das Dokument HowTo: Plugins entwickeln .

Über Bloonix - Über Bloonix | Über Bloonix - Lizenzen | Über Bloonix - Wie funktioniert Bloonix | Über Bloonix - Feature Liste | Über Bloonix - Plugins | Über Bloonix - Systemanforderungen | Sicherheit - Allgemein | Sicherheit - Agent und Satellit | Installation - Wichtige Information vorab | Installation - Repositories | Installation - Elasticsearch | Installation - PostgreSQL | Installation - MySQL/MariaDB | Installation - Nginx | Installation - Bloonix-WebGUI | Installation - Bloonix-Server | Installation - Bloonix-Plugins | Installation - Bloonix-Agent | Installation - Bloonix-WTRM | Installation - Manuelle Installation | Installation - Quick Guide für CentOS 7 und PostgreSQL | Installation - Quick Guide für CentOS 7 und MariaDB | Installation - Quick Guide für Debian 8 und MariaDB | Konfiguration - Allgemeines | Konfiguration - Bloonix-WebGUI | Konfiguration - Bloonix-Server | Konfiguration - Bloonix-Service-Checker | Konfiguration - Bloonix-Agent | Konfiguration - Skripte und Cronjobs | HowTos - Plugins entwickeln | HowTos - Coding mit Stil | HowTos - Dokumentation auf Bloonix.org | HowTos - Verteilte Überwachung mit dem Bloonix-Satelliten | HowTos - Automatische Registrierung von Hosts | FAQ - Wie überwacht Bloonix Hosts und Services | WebGUI - Die Bloonix-WebGUI | WebGUI - Commpanies und wie diese funktionieren | WebGUI - Einen neuen Host anlegen | WebGUI - Host Parameter im Detail | WebGUI - Host Variablen | WebGUI - Host Templates | WebGUI - Klassen von Hosts | WebGUI - Einen neuen Service anlegen | WebGUI - Service Parameter im Detail | WebGUI - Host-Alive-Checks | WebGUI - Web-Transactions | WebGUI - Abhängigkeiten | WebGUI - Geplante Wartungsarbeiten | WebGUI - Kontakte und Benachrichtigungen | WebGUI - Benutzer- und Gruppenverwaltung | WebGUI - Eigene Charts erstellen | WebGUI - Notification Screen | WebGUI - Die Bloonix JSON API | WebGUI - Den Bloonix-Agenten installieren | WebGUI - Den Bloonix-Agenten konfigurieren