für die Ankopplung eines vorhandenen Business Process Monitorings muss ich eine Schnittstelle basteln. Das System benötigt pro fehlerhaften System eine Datei die den Hostnamen und eine Textbeschreibung des Fehlers, sowie die Kritikalität (Warnung, Fehler, Wartung) enthält. Ich hatte schon vor langer Zeit ein C-Programm gebaut, das eine CSV Datei von unserem alten Monitoring System liest und diesen Haufen Dateien erzeugt und auch wieder löscht wenn der Fehler behoben ist.
Ich müsste also periodisch, ca. alle 5 Minuten, eine Liste aller Server aus dem CheckMK ziehen, die irgendwelche roten oder gelben oder auf Wartung stehende Checks enthalten. Am besten noch mit der Liste der Checknamen oder Fehlerbeschreibung. Ich brauche nur eine Zeile pro Server, unabhängig wie viele Checks rot sind. Wie mache ich sowas?
Erster Ansatz wäre wohl, sich über die Services Search eine passende Tabelle zusammenzustellen und diese als CSV zu speichern. Der Speichern-Link ist dann recht länglich. Kann man sich den einfach rauskopieren und dann periodisch mit wget runterladen?
Einfach so geht es anscheinend nicht. Wget bekommt damit nicht die CSV geliefert, sondern eine Script-Datei (s.u.). Liegt vermutlich, daran, dass es sich ja nicht am CheckMK anmelden kann.
Alternativ könnte natürlich auch auf dem CheckMK Server das Script laufen und die Liste ggfs. nicht via URL sondern mit irgendwelchen CheckMK Commands erzeugen.
Oder vielleicht hat ja noch jemand eine bessere Idee. Ich hatte es schon mal über einen Alarmhandler gemacht, war aber unzuverlässig, da es vorkam dass eine “Wieder OK” Meldung verloren ging und damit der Alarm nie wieder zurückgenommen wurde.
<!--
var focus_obj = document.login._username;
if (focus_obj) {
focus_obj.focus();
if (focus_obj.select)
focus_obj.select();
}
// -->
</script>
<script type="text/javascript">
cmk.visibility_detection.initialize();
</script>
</body></html>
Schau dir dazu mal den äußerst performanten Livestatus an. Dieser bietet auch die Möglichkeit die Daten in verscheidensten Formaten auszugeben.
EDIT:
Diesen kannst du auch remote aufrufen oder auch einen Service (xinetd) bereitstellen, der exakt die Daten liefert, die du brauchst. Bei mehreren Sites arbeitet checkmk auch inter zwischen den Sites mit dieser Technik.
Hm, ja. WebAPI. Hab ich von gehört.
Noch nie benutzt. Muss ich mir mal die Doku anschauen. Auf die Idee bin ich nicht gekommen. Cool wäre es, wenn man sie die Tabelle irgendwie in der GUI zusammenklicken könnte und dann irgendwie den WebAPI Befehl herausbekommt um genau die Spalten zu bekommen die man selektiert hat.