# Heimdall

## Beschreibung

- führt Prüfungen durch um den Zustand von Systemen zu überwachen und meldet Unstimmigkeiten


## Technologien

- python


## Erstellung

- `tools/build`


## Ausführung

- siehe `build/heimdall -h`
- sollte als minütlich laufender Cronjob aufgerufen werden


### Eigene Skripte

Mittels den Prüfungs-Art `script`, kann man selbst definierte Prüf-Funktionen schreiben. Diese Skripte sollen durch exit-Codes das Ergebnis der Prüfung kommunizieren:

- `0`: alles prima
- `1`: Warnung
- `2`: kritisch
- alles andere: Fehler bei Ausführung (unbekannter Status)

Infos (z.B. was genau schief gelaufen ist) sollen zu `stdout` geschrieben werden.


### Konfiguration

Die Konfiguration erfolgt in Form einer JSON-Datei gemäß des Schemas `doc/hmdl.schema.json`. Dieses Schema erlaubt auch eine [grafische Anfertigung](https://json-editor.github.io/json-editor/) einer solchen Datei.


## Testen

### Manuell

- für ein einzelnen Ablauf: `build/heimdall -c examples/test.hdml.json` ausführen
- zum allgemeinenen Rumspielen:
	- `watch -n 10 build/heimdall -c examples/test.hdml.json`
	- `touch /tmp/test` ausführen
	- Werte in `examples/test.hdml.json` ändern


### Automatisch

TODO


## Ausrollen

- mittels `tools/deploy`


## Überwachung

(nicht relevant)


## Sicherung

(nicht relevant)



