alertmanager
УСТАРЕЛО
Эта роль устарела в пользу коллекции prometheus-community/ansible.
Ansible Роль: alertmanager
Описание
Разверните и управляйте сервисом Prometheus alertmanager с помощью ansible.
Требования
- Ansible >= 2.7 (Он может работать на более ранних версиях, но мы не можем это гарантировать)
Желательно, чтобы где-то был установлен prometheus.
Переменные роли
Все переменные, которые могут быть переопределены, хранятся в файле defaults/main.yml, а также в таблице ниже.
Название | Значение по умолчанию | Описание |
---|---|---|
alertmanager_version |
0.21.0 | Версия пакета Alertmanager. Также принимает latest в качестве параметра. |
alertmanager_binary_local_dir |
"" | Позволяет использовать локальные пакеты вместо тех, что распространены на github. В качестве параметра принимает директорию, где хранятся бинарные файлы alertmanager И amtool на хосте, на котором выполняется ansible. Это переопределяет параметр alertmanager_version . |
alertmanager_web_listen_address |
0.0.0.0:9093 | Адрес, на котором будет слушать alertmanager. |
alertmanager_web_external_url |
http://localhost:9093/ | Внешний адрес, по которому доступен alertmanager. Полезно при работе за обратным прокси. Пример: example.org/alertmanager |
alertmanager_config_dir |
/etc/alertmanager | Путь к директории с конфигурацией alertmanager. |
alertmanager_db_dir |
/var/lib/alertmanager | Путь к директории с базой данных alertmanager. |
alertmanager_config_file |
alertmanager.yml.j2 | Переменная, используемая для предоставления пользовательского файла конфигурации alertmanager в виде шаблона ansible. |
alertmanager_config_flags_extra |
{} | Дополнительные флаги конфигурации, передаваемые бинарному файлу prometheus при запуске. |
alertmanager_template_files |
['alertmanager/templates/*.tmpl'] | Список папок, в которых ansible будет искать шаблоны файлов, которые будут скопированы в {{ alertmanager_config_dir }}/templates/ . Файлы должны иметь расширение *.tmpl . |
alertmanager_resolve_timeout |
3m | Время, после которого оповещение считается разрешенным. |
alertmanager_smtp |
{} | Конфигурация SMTP (email). |
alertmanager_http_config |
{} | Конфигурация Http для использования пользовательских вебхуков. |
alertmanager_slack_api_url |
"" | URL вебхука Slack. |
alertmanager_pagerduty_url |
"" | URL вебхука PagerDuty. |
alertmanager_opsgenie_api_key |
"" | Ключ вебхука OpsGenie. |
alertmanager_opsgenie_api_url |
"" | URL вебхука OpsGenie. |
alertmanager_victorops_api_key |
"" | Ключ вебхука VictorOps. |
alertmanager_victorops_api_url |
"" | URL вебхука VictorOps. |
alertmanager_hipchat_api_url |
"" | URL вебхука Hipchat. |
alertmanager_hipchat_auth_token |
"" | Токен аутентификации Hipchat. |
alertmanager_wechat_url |
"" | URL вебхука корпоративного WeChat. |
alertmanager_wechat_secret |
"" | Секретный токен корпоративного WeChat. |
alertmanager_wechat_corp_id |
"" | Идентификатор корпорации корпоративного WeChat. |
alertmanager_cluster |
{listen-address: ""} | Конфигурация сети кластера HA. По умолчанию отключена. Более подробную информацию смотрите в readme alertmanager. |
alertmanager_receivers |
[] | Список получателей уведомлений. Конфигурация такая же, как в официальной документации. |
alertmanager_inhibit_rules |
[] | Список правил ингибирования. То же самое, что и в официальной документации. |
alertmanager_route |
{} | Маршрутизация оповещений. Подробнее в официальной документации. |
alertmanager_amtool_config_file |
amtool.yml.j2 | Шаблон для конфигурации amtool. |
alertmanager_amtool_config_alertmanager_url |
alertmanager_web_external_url |
URL alertmanager. |
alertmanager_amtool_config_output |
extended | Расширенный вывод, используйте "" для простого вывода. |
Пример
Плейбук
---
hosts: all
roles:
- ansible-alertmanager
vars:
alertmanager_version: latest
alertmanager_slack_api_url: "http://example.com"
alertmanager_receivers:
- name: slack
slack_configs:
- send_resolved: true
channel: '#alerts'
alertmanager_route:
group_by: ['alertname', 'cluster', 'service']
group_wait: 30s
group_interval: 5m
repeat_interval: 3h
receiver: slack
Демонстрационный сайт
Мы предоставляем демонстрационный сайт для полного решения мониторинга на основе prometheus и grafana. Репозиторий с кодом и ссылками на работающие экземпляры доступен на github, а сайт размещен на DigitalOcean.
Локальное тестирование
Предпочтительный способ локального тестирования роли - использовать Docker и molecule (v3.x). Вам нужно установить Docker на вашу систему. Смотрите "Начало работы" для получения подходящего пакета Docker для вашей системы. Запуск тестов так же прост, как выполнение команды molecule test
.
Непрерывная интеграция
Сочетание molecule и circle CI позволяет нам тестировать, как новые PR будут работать с несколькими версиями ansible и разными операционными системами. Это также позволяет создавать тестовые сценарии для различных конфигураций ролей. В результате у нас есть довольно большая тестовая матрица, которая может занять больше времени, чем локальное тестирование, так что, пожалуйста, будьте терпеливы.
Участие
Смотрите руководство для участников.
Устранение неполадок
Смотрите устранение неполадок.
Лицензия
Этот проект лицензирован под MIT License. Смотрите LICENSE для получения более подробной информации.
ansible-galaxy install cloudalchemy/ansible-alertmanager