atosatto.alertmanager
Rola Ansible: Alertmanager
Zainstaluj i skonfiguruj Prometheus Alertmanager.
Wymagania
Instalacja Ansible w wersji 2.2 lub wyższej.
Ta rola korzysta z filtru Ansible json_filter
, który wymaga zainstalowania jmespath
na maszynie Ansible.
Szczegóły dotyczące konkretnej wersji jmespath
wymaganej przez rolę znajdziesz w pliku requirements.txt
.
Zmienna roli
Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi (patrz defaults/main.yml):
alertmanager_release_tag: "latest"
Wydanie Alertmanagera do zainstalowania. Domyślnie jest to najnowsze wydanie opublikowane na https://github.com/prometheus/alertmanager/releases.
alertmanager_release_url: ""
Jeśli ustawione, rola pobierze Alertmanagera z podanego adresu URL zamiast korzystać z linku do pobrania wskazanego w metadanych wydania Github Alertmanagera.
alertmanager_user: "alertmanager"
alertmanager_group: "alertmanager"
Systemowy użytkownik i grupa Alertmanagera.
alertmanager_install_path: "/opt"
Katalog zawierający pobrane pliki wydania Alertmanagera.
alertmanager_bin_path: "/usr/local/bin"
Katalog, do którego będą tworzone łącza symboliczne do binariów Alertmanagera.
alertmanager_config_path: "/etc/alertmanager"
alertmanager_config_file: "alertmanager.yml"
Plik konfiguracji Alertmanagera i katalog.
alertmanager_config: {}
Słownik YAML zawierający konfigurację Alertmanagera.
Pełna dokumentacja konfiguracji Alertmanagera jest dostępna pod adresem
https://prometheus.io/docs/alerting/configuration/.
UWAGA: dostarczona konfiguracja Alertmanagera zostanie scalona z domyślną zdefiniowaną w vars/main.yml
.
alertmanager_templates_path: "{{ alertmanager_config_path }}/templates"
alertmanager_templates: {}
Katalog i definicje szablonów Alertmanagera.
alertmanager_config:
templates:
- "{{ alertmanager_templates_path }}/*.tmpl"
alertmanager_templates:
"example": "{{ define "slack.myorg.text" }}https://internal.myorg.net/wiki/alerts/{{ .GroupLabels.app }}/{{ .GroupLabels.alertname }}{{ end}}"
Powyższy przykład pokazuje, jak stworzyć plik example.tmpl
w katalogu alertmanager_templates_path
oraz jak skonfigurować Alertmanager do jego załadowania.
alertmanager_listen_address: "127.0.0.1:9093"
Adres IP i port, na którym nasłuchuje serwer webowy Alertmanagera.
UWAGA: metryki Alertmanagera będą dostępne pod adresem {{ alertmanager_listen_address }}/metrics
.
alertmanager_storage_path: "/var/lib/alertmanager"
alertmanager_storage_retention: "120h"
Katalog używany do przechowywania stanów powiadomień i wyciszeń Alertmanagera. Domyślnie, stare dane będą usuwane po 120 godzinach.
alertmanager_log_level: "info"
Poziom szczegółowości logów demona Alertmanagera.
alertmanager_additional_cli_args: ""
Dodatkowe argumenty wiersza poleceń, które mają być dodane do jednostki usługi Alertmanagera.
Aby uzyskać pełną dokumentację dost available CLI arguments, zapoznaj się z wynikiem polecenia alertmanager --help
.
Zależności
Brak.
Przykłady playbooków
$ cat playbook.yml
- name: "Zainstaluj i skonfiguruj Prometheus Alertmanager"
hosts: all
roles:
- { role: atosatto.alertmanager }
Testowanie
Testy są zautomatyzowane z użyciem Molecule.
$ pip install tox
Aby przetestować wszystkie scenariusze, uruchom
$ tox
Aby uruchomić niestandardowe polecenie molekuły
$ tox -e py27-ansible29 -- molecule test -s alertmanager-latest
Licencja
MIT
Informacje o autorze
Andrea Tosatto (@_hilbert_)
Install and Configure Prometheus Alertmanager
ansible-galaxy install atosatto.alertmanager