moira-alert.moira-trigger-role
moira-trigger-role
Wenn du neu hier bist, schau dir am besten unser Haupt-README an.
Ansible-Rolle zum Erstellen, Aktualisieren und Löschen von Moira-Triggern basierend auf dem python-moira-client.
Verwendung der Rolle
Installation
Ansible Galaxy
ansible-galaxy install moira-alert.moira-trigger-role
Ansible Rolle mit Makefile
Füge den Inhalt von Beispiel in dein Makefile ein, um die Rolle von Ansible Galaxy herunterzuladen
und ein Playbook zu erstellen, um Trigger mit vordefinierten Parametern in deinen Variablen-Dateien zu verwalten:
- name: moira Trigger verwalten
hosts: serviceName
roles:
- role: moira-alert.moira-trigger-role
moira_api: http://localhost:8081/api
moira_triggers: '{{ ServiceNameTriggers }}'
delegate_to: 127.0.0.1
run_once: True
dry_run: False
Hinweis: Alle Aufgaben müssen von deiner Ansible-Controller-Maschine ausgeführt werden.
Konfiguration
Definiere die folgenden Parameter in deinen Variablen-Dateien. Funktionsfähige Beispiele findest du hier.
Authentifizierung
Parameter | Beschreibung | Typ | Erforderlich | Standard | Beispiel |
---|---|---|---|---|---|
moira_api | URL der Moira API | String | Ja | N/A | http://localhost/api/ |
moira_auth_custom | Benutzerdefinierte Autorisierungsheader | Dictionary | Nein | Keine | Authorization: apiKey |
moira_auth_user | Benutzer (Basic Auth) | String | Nein | Keine | admin |
moira_auth_pass | Passwort (Basic Auth) | String | Nein | Keine | pass |
moira_auth_login | Anmeldedaten (Basic Auth) | String | Nein | Keine | admin |
Hinweis: Verwende moira_auth_custom, wenn du zusätzliche Authentifizierungsmechanismen anstelle von
einfacher Basic Auth verwendest. Andernfalls verwende moira_auth_user, moira_auth_pass und moira_auth_login.
moira_auth_login muss einen Wert für den X-Webauth-User-Header enthalten.
Triggerstatus
Parameter | Beschreibung | Typ | Erforderlich | Optionen | Standard | Beispiel |
---|---|---|---|---|---|---|
state | Gewünschter Status eines Triggers | String | Ja | present absent |
N/A | present |
id | Trigger-ID | String | Ja | N/A | N/A | trigger_1 |
name | Triggername | String | Ja | N/A | N/A | Trigger 1 |
tags | Liste der Trigger-Tags | List | Ja | N/A | N/A | - Projekt - Dienst |
targets | Liste der Trigger-Ziele Siehe verfügbare Graphite-Funktionen |
List | Ja | N/A | N/A | - prefix.*.postfix |
warn_value | Wert für WARN-Status | Float | Nein | N/A | Keine | 300 |
error_value | Wert für ERROR-Status | Float | Nein | N/A | Keine | 600 |
trigger_type | Art eines Triggers | String | Nein | rising falling expression |
N/A | rising |
expression | C-ähnliche Ausdruck | String | Nein | N/A | Leerer String | t1 >= 10 ? ERROR : (t1 >= 1 ? WARN : OK) |
ttl | Wenn es keine Metriken für den Trigger gibt, wechselt Moira nach TTL Sekunden in den TTLState | Int | Nein | N/A | 600 | 600 |
ttl_state | Triggerstatus nach Ablauf von 'ttl' | String | Nein | NODATA DEL ERROR WARN OK |
NODATA | WARN |
is_remote | Verwendung eines Remote-Speichers. Veraltet, stattdessen trigger_source verwenden |
Bool | Nein | True False |
False | False |
trigger_source | Bestimme Triggerquelle, überschreibt is_remote | String | Nein | graphite_local graphite_remote prometheus_remote |
Keine | graphite_local |
cluster_id | Bestimme Cluster-ID | String | Nein | N/A | Keine | default |
desc | Triggerbeschreibung | String | Nein | N/A | Leerer String | Beschreibung des Trigger-Tests |
mute_new_metrics | Wenn wahr, wird das erste Ereignis NODATA → OK übersprungen | Bool | Nein | True False |
False | False |
disabled_days | Tage, an denen der Trigger im stillen Modus ist | List | Nein | N/A | Leere Liste | - Mo - Mi |
timezone_offset | Zeitzonenverschiebung (Minuten) | Int | Nein | N/A | 0 | -180 |
start_hour | Startzeit für Benachrichtigungen | Int | Nein | N/A | 0 | 9 |
start_minute | Startminute für Benachrichtigungen | Int | Nein | N/A | 0 | 0 |
end_hour | Endzeit für Benachrichtigungen | Int | Nein | N/A | 23 | 17 |
end_minute | Endminute für Benachrichtigungen | Int | Nein | N/A | 59 | 0 |
alone_metrics | Setze einige Ziele als einzelne Metrik | Object, Beispiel: | Nein | N/A | {'t1': False, 't2': True, ... 'tN': True} | {'t1': False, 't2': False} |
Rollenaufgaben
Abhängigkeiten verwalten
Aufgabe, um zu überprüfen, ob der python-moira-client (über pip) installiert ist.
Trigger verwalten
Verwende den Status 'present', um neue Trigger zu erstellen oder bestehende zu bearbeiten:
- name: Trigger erstellen
moira_trigger:
...
state: present
...
Um bestehende Trigger zu löschen, verwende den Status 'absent':
- name: Trigger entfernen
moira_trigger:
...
state: absent
...
Ansible role to create, update and delete Moira triggers
ansible-galaxy install moira-alert.moira-trigger-role