stackhpc.monasca_default_alarms
monasca-standard-alarm
Diese Rolle richtet eine Standardalarmdefinitionskonfiguration für Monasca ein. Sie bietet außerdem Ansible-Module zur Erstellung von Monasca-Alarmschreibweisen und -benachrichtigungen. Weitere Details zu Alarmdefinitionen finden Sie in der
Monasca API-Dokumentation.
Anforderungen
Ansible >=2.8 wird benötigt, um Funktionen in dieser Rolle, wie z.B. Dokumentfragmente, zu nutzen. Es wird davon ausgegangen, dass der Dienstendpunkt für Monasca ordnungsgemäß in Keystone registriert ist, es sei denn, es wird eine monasca_api_url
bereitgestellt.
Rollenvariablen
Diese Variablen müssen definiert werden. Wenn eine entsprechende OS_ENV
-Umgebungsvariable auf dem Steuerungs-Host definiert ist, wird sie mit Vorrang vor dem Standard verwendet.
keystone_url
(OS_AUTH_URL
)keystone_project
(OS_PROJECT_NAME
)
und entweder
keystone_user
(OS_USERNAME
)keystone_password
(OS_PASSWORD
)
oder
keystone_token
monasca_api_url
Standardmäßig werden die konfigurierten Alarmdefinitionen mit einer E-Mail-Benachrichtigung an root@localhost
eingerichtet. Ändern Sie die Variable notification_address
, um E-Mails anderswohin zu senden. Alternativ, falls notification_type
WEBHOOK
oder SLACK
ist, gibt notification_address
die URL an:
notification_address: "https://hooks.slack.com/services/XXXXXXXXX/YYYYYYYYY/ZZZZZZZZZZZZZZZZZZZZZZZ"
notification_name: "Standard Slack Benachrichtigung"
notification_type: "SLACK"
Zusätzlich gibt es zwei optionale Variablen, um die erstellten Alarme zu steuern:
skip_tasks
(Liste)custom_alarms
(Dictionary)
Siehe Beispiel-Playbook für custom_alarms
-Felder. Siehe tasks/main.yml
für Optionen zu skip_tasks
.
Die Rolle ist verantwortlich für die Installation der Abhängigkeit python-monascaclient in einer virtuellen Umgebung. Der Standardort der virtuellen Umgebung ist /opt/python-monascaclient
- da dieser Pfad normalerweise eine Privilegienerhöhung erfordert, verwendet die Rolle become: yes
, um sie zu erstellen. Ändern Sie das Verzeichnis der virtuellen Umgebung mit monasca_client_virtualenv_dir: /foo
. Deaktivieren Sie die Privilegienerhöhung mit virtualenv_become: no
.
Beispiel-Playbook
Platzieren Sie Folgendes in einer Playbook-Datei und ersetzen Sie die keystone_
-Variablen durch geeignete für Ihre OpenStack-Bereitstellung. Erwägen Sie die Verwendung von ansible-vault oder Ähnlichem, um keystone_password
zu speichern.
- name: Standardalarmbenachrichtigungen definieren
hosts: monitoring
gather_facts: no
vars:
keystone_url: http://192.168.128.2:35357/v3/
keystone_user: admin
keystone_password: password
keystone_project: monasca_control_plane
skip_tasks: ["misc", "openstack", "monasca", "ceph"]
custom_alarms:
- name: "Host CPU System Prozent"
description: "Alarmiert, wenn der System-CPU-Prozentsatz über 80 liegt (Beispiel für einen benutzerdefinierten Alarm)"
expression: "cpu.system_perc{hostname=host.domain.com} > 80"
match_by: ['hostname']
roles:
- {role: stackhpc.monasca_standard_alarms, tags: [alarms]}
Verwendung der Monasca-Module
Es gibt zwei Module im Bibliotheksunterverzeichnis, eines für Monasca-Benachrichtigungen und das andere für Alarmdefinitionen. Zum Beispiel:
- name: Root-E-Mail-Benachrichtigung einrichten
monasca_notification_method:
name: "E-Mail Root"
type: 'EMAIL'
address: 'root@localhost'
keystone_url: "{{ keystone_url }}"
keystone_user: "{{ keystone_user }}"
keystone_password: "{{ keystone_password }}"
keystone_project: "{{ keystone_project }}"
register: default_notification
- name: System-Alarmdefinitionen erstellen
monasca_alarm_definition:
name: "Host Alive Alarm"
description: "Trigger, wenn ein Host-Lebenszeichen-Check fehlschlägt"
expression: "host_alive_status > 0"
keystone_url: "{{ keystone_url }}"
keystone_user: "{{ keystone_user }}"
keystone_password: "{{ keystone_password }}"
keystone_project: "{{ keystone_project }}"
monasca_api_url: "{{ default_notification.monasca_api_url }}"
severity: "HIGH"
alarm_actions:
- "{{ default_notification.notification_method_id }}"
ok_actions:
- "{{ default_notification.notification_method_id }}"
undetermined_actions:
- "{{ default_notification.notification_method_id }}"
Siehe die Dokumentation innerhalb des Moduls für vollständige Details.
Lizenz
Apache
Autoreninformationen
Ursprünglich erstellt von Tim Kuhlman. Umgeschrieben von Isaac Prior zur Unterstützung neuer Keystone-Authentifizierung.
Monasca-Team IRC: #openstack-monasca
auf [email protected].
ansible-galaxy install stackhpc.monasca_default_alarms