alertmanager

УСТАРЕЛО

Эта роль устарела в пользу коллекции prometheus-community/ansible.

Ansible Роль: alertmanager

Статус сборки Лицензия Ansible Роль GitHub тег

Описание

Разверните и управляйте сервисом 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 для получения более подробной информации.

О проекте

Prometheus Alertmanager service

Установить
ansible-galaxy install cloudalchemy/ansible-alertmanager
Лицензия
mit
Загрузки
1581212
Владелец
Setup your monitoring stack with ansible