utr ist ein CLI-Tool für UptimeRobot. Im Gegensatz zu anderen Tools können damit Monitore, Wartungsfenster, Alarmkontakte und Statusseiten zustandsbasiert, ähnlich wie bei Ansible, verwaltet werden. Die gewünschte Konfiguration wird in YAML-Dateien definiert und utr sorgt idempotent dafür, dass der Ist-Zustand automatisch dem Soll-Zustand entspricht.
Benötigt werden lediglich Python 3 und ein gültiger UptimeRobot-API-Key, der wahlweise direkt über die Option --api_key
oder per Datei (Standard: ~/.uptimerobot
) übergeben wird. Das Tool lässt sich mittels pip install --user uptimerobot-cli
installieren. Der Aufruf von utr --help
zeigt alle verfügbaren Befehle und Optionen.
Es wurde in der Linuxfabrik entwickelt, ist Open Source und steht unter der UNLICENSE. Details und Dokumentation finden sich auf github.com/linuxfabrik.
Monitore, Wartungsfenster (mwindows) und Alarmkontakte werden in einer oder mehreren YAML-Dateien definiert. Beispiel:
mwindows:
- type: 'weekly'
value: 'wed'
start_time: '03:30'
end_time: '05:30'
status: 'active'
state: 'present'
monitors:
- prefix: 'prod'
url: 'https://www.example.com/'
interval: 30
http_method: 'get'
type: 'keyw'
keyword_type: 'notex'
keyword_case_type: 'ci'
keyword_value: 'Example Inc.'
mwindows:
- friendly_name: 'weekly wed 03:30-05:30'
state: 'present'
Weitere Details zur YAML-Syntax finden sich in der YAML-Dokumentation des Projekts.
Mithilfe von apply
wird die YAML-Definition auf UptimeRobot angewendet:
utr apply config.yml
Create-, Update- und Delete-Aktionen werden idempotent ausgeführt, um den gewünschten Zustand in UptimeRobot herzustellen.
Für schnelle Abfragen oder Bulk-Updates ohne YAML stehen get
und set
zur Verfügung. Beispiele:
utr get account
utr get monitors --output=table
utr set monitors --search=example --status=paused
Damit lassen sich einzelne Ressourcen im Handumdrehen verwalten.