Check-Repository-Referenz
Repository-Typen, wie octoja sie synchronisiert und der registry.json-Aufbau, den ein Check-Repository veröffentlichen muss, damit seine Monitoring-Checks in der Check-Bibliothek erscheinen.
Check-Repository-Referenz
Ein Check-Repository ist eine Quelle für Monitoring-Check-Definitionen. octoja liest ein Repository, speichert dessen Check-Liste zwischen und zeigt die Checks in der Check-Bibliothek, damit du sie Geräten zuweisen kannst. Diese Referenz beschreibt die Repository-Typen, wie octoja sie synchronisiert und den genauen Aufbau, den ein Repository veröffentlichen muss. Die Schritt-für-Schritt-Anleitung zum Anbinden findest du unter Ein Community-Check-Repository anbinden.
Repository-Typen
Wie die Synchronisation funktioniert
- octoja synchronisiert jedes URL-basierte Repository automatisch einmal pro Stunde.
- Die stündliche Synchronisation lädt nur, wenn die Registry des Repositories einen
generated-Zeitstempel meldet, der neuer als deine letzte Synchronisation ist — ein unverändertes Repository wird übersprungen. Die manuelle Aktion Jetzt synchronisieren erzwingt immer eine vollständige Aktualisierung. - Jedes Repository wird unabhängig synchronisiert: ein nicht erreichbares oder fehlerhaftes Repository stoppt die anderen nicht, und eine fehlgeschlagene Synchronisation lässt die zuvor zwischengespeicherte Check-Liste unangetastet.
- Bei jeder erfolgreichen Synchronisation ersetzt octoja den zwischengespeicherten Eintrag jedes Checks anhand der
id, sodass Aktualisierungen eines Checks sich in die Check-Bibliothek übertragen. Ein aus der Registry entfernter Check bleibt in der Check-Bibliothek, bis du das Repository löschst. - Das UI-Manifest eines Checks wird nur dann erneut geladen, wenn die Registry eine
uiVersionmeldet, die sich von der zwischengespeicherten unterscheidet. Lässt eine RegistryuiVersionweg, wird jedes Manifest bei jeder Synchronisation geladen, weil es nichts zu vergleichen gibt. - Nutzt das Repository HTTP-Basic-Authentifizierung, werden dieselben Zugangsdaten beim Abruf der Registry, beim Abruf des Manifests jedes Checks und bei jedem Binär-Download gesendet.
Was ein Repository veröffentlichen muss
Ein Check-Repository ist eine einfache HTTP- oder HTTPS-Website. octoja löst jeden Pfad gegen die Basis-URL auf, die du registrierst — nicht gegen die baseUrl in der registry.json — und erwartet:
Die gesamte Website darf hinter einem einzigen HTTP-Basic-Auth-Bereich liegen; gib die Zugangsdaten beim Anbinden des Repositories an. Ein Repository, das Zugangsdaten verlangt, muss über https:// veröffentlicht werden: einen Benutzernamen kombiniert octoja nur bei Loopback-Adressen wie localhost mit einfachem http://, und ein Passwort nimmt octoja nur zusammen mit einem Benutzernamen an.
registry.json
{
"version": "1.0",
"generated": "2026-07-08T10:00:00Z",
"baseUrl": "https://checks.example.com/",
"checks": [
{
"id": "disk-temperature",
"name": { "en": "Disk Temperature", "de": "Festplattentemperatur" },
"description": { "en": "Reports the temperature of each drive.", "de": "Meldet die Temperatur jeder Festplatte." },
"author": "Example MSP",
"icon": { "type": "component", "library": "lucide", "name": "thermometer" },
"category": "hardware",
"tags": ["disk", "temperature"],
"platforms": ["win-x64", "linux-x64"],
"version": "1.2.0",
"uiVersion": "9f2c41e7",
"interval": 15,
"timeoutSeconds": 120,
"executionLocation": "Device",
"executable": {
"win-x64": {
"downloadUri": "https://checks.example.com/checks/disk-temperature/1.2.0/win-x64/check.exe",
"executableName": "check.exe",
"fileType": "Exe",
"executionType": "Exe"
}
}
}
]
}
Felder einer Check-Definition
Jeder Eintrag in checks[] beschreibt einen Check. Lokalisierte Textfelder (name, description) nehmen ein Objekt mit den Schlüsseln en, de, fr und nl; en wird verwendet, wenn die Sprache des Lesers fehlt.
executable-Einträge
UI-Manifest je Check (ui.json)
octoja ruft das Manifest jedes Checks unter checks/{id}/{version}/ui.json ab, wobei {version} die version des Checks aus der Registry ist. Das Manifest definiert zwei Dinge:
input— die Parameter, die beim Zuweisen des Checks an ein Gerät angezeigt werden, per Parametername. Jedes Feld deklariert seinen Typ, den lokalisierten Titel und die Beschreibung, ob es erforderlich ist, einen Standardwert und (bei Auswahlfeldern) seine Optionen. Die Feldtypen sindstring(der Rückfallwert für einen unbekannten Typ),text,password,integer,number,boolean,select,radioundarray;separatorzeichnet statt eines Feldes eine Trennlinie. Nutzepasswordfür Geheimnisse — der Wert wird in der Oberfläche maskiert und bei der Zuweisung gespeichert, muss also nie im Repository liegen. Ein Feld kann zusätzlichvisibleIftragen, um nur zu erscheinen, wenn ein anderes Feld einen bestimmten Wert hat.output— wie das Ergebnis des Checks dargestellt wird: ein Detail-Renderer für den Checks-Tab des Geräts, ein History-Renderer für vergangene Ergebnisse und ein Widget-Renderer für Dashboard-Kacheln.
Die Eingabe-Schlüssel entscheiden außerdem, ob ein Check auf Netzwerkgeräten angeboten wird — Geräten, die ohne Agent von einem deiner vorhandenen Agenten überwacht werden. Ein Feld vom Typ string, dessen Schlüssel host, ip, ipaddress, target, url, endpoint oder address lautet (Groß- und Kleinschreibung spielt keine Rolle), oder ein Feld vom Typ array mit string-Einträgen und dem Schlüssel hosts, targets oder endpoints, markiert den Check als Abfrage eines entfernten Ziels. Ein solcher Check erscheint im Dialog Check hinzufügen eines Netzwerkgeräts; das Feld selbst wird dort ausgeblendet, und octoja setzt bei jedem Lauf die Adresse des Geräts ein. Der Typ muss exakt stimmen: text zählt nicht — trotz des Namens ist es kein Texteingabefeld, sondern eine statische Beschriftung zwischen den Feldern — und ebenso wenig zählt ein endpoints-Array, dessen Einträge Objekte statt Strings sind. Wie die Ersetzung zur Laufzeit funktioniert — einschließlich der SNMP-Zugangsdaten-Schlüssel —, beschreibt Einen Custom-Script-Check konfigurieren.
Ein Check, dessen UI-Manifest nicht abgerufen werden kann, wird trotzdem gelistet. Bei der ersten Synchronisation erscheint er ohne eigene Eingabefelder und Ergebnisdarstellung; bei einer späteren Synchronisation bleibt das Manifest erhalten, das octoja bereits hat — ein still gewordenes Repository lässt eine funktionierende Darstellung also unangetastet. Ein einzelnes unlesbares Manifest hält den Rest der Registry nicht auf.
Ergebnisprotokoll eines Checks
Jeder Check, der auf einem Gerät läuft, spricht dasselbe Protokoll — unabhängig davon, in welcher Sprache er geschrieben ist. octoja startet ihn gemäß seinem executionType — powershell -ExecutionPolicy Bypass -File bei PowerShell, bash bei Bash oder die heruntergeladene Datei selbst bei Exe — schreibt die Konfiguration des Checks auf die Standardeingabe und liest das Ergebnis von der Standardausgabe. Beachte: der PowerShell-Aufruf nutzt kein -NoProfile, ein systemweites PowerShell-Profil läuft also vor dem Check.
Werte von checkResult
Wer die Marker schreibt. Ein Check aus einem Repository wird unverändert heruntergeladen und ausgeführt — sein eigenes Skript muss die Marker also selbst um die Nutzlast setzen. Bei einem in octoja gebauten Custom-Script-Check ist es umgekehrt: octoja umhüllt das Skript und setzt die Marker selbst, und ein Skript, das sie ein zweites Mal schreibt, zerstört sein eigenes Ergebnis. Ein durchgearbeitetes Beispiel für einen Repository-Check, der dieses Protokoll umsetzt, findest du unter Ein eigenes Community-Check-Repository veröffentlichen.
Eine andere octoja-Instanz als Repository
Eine octoja-Instanz kann die eigenen Checks, die du auswählst, genau in diesem Format veröffentlichen — eine zweite Instanz bindet sie dann als Community-Repository an. Die Angaben dazu findest du auf der veröffentlichenden Instanz unter Einstellungen → Repository-Zugriff.
Ergebnisse des Verbindungstests
Die Schaltfläche Verbindung prüfen in den Dialogen zum Hinzufügen und Bearbeiten prüft das Repository über denselben Codepfad, den eine echte Synchronisation nutzt.
Berechtigungen
Verwandte Artikel
- Einen Custom-Script-Check konfigurieren — baue deinen eigenen Check in octoja, statt ein Repository zu hosten.
- Checks — wie Checks funktionieren und der vollständige eingebaute Katalog.