moira-trigger-role
moira-trigger-role
Если вы здесь впервые, рекомендуется ознакомиться с нашим основным README.
Роль Ansible для создания, обновления и удаления триггеров Moira на основе python-moira-client.
Использование роли
Установка
Ansible Galaxy
ansible-galaxy install moira-alert.moira-trigger-role
Ansible роль с Makefile
Поместите содержимое из примера в свой Makefile, чтобы загрузить роль из Ansible Galaxy и создать плейбук для управления триггерами с заранее установленными параметрами в ваших файлах vars:
- name: управлять триггерами moira
hosts: имя_сервиса
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
Примечание: Все задачи должны выполняться с вашего управляющего компьютера Ansible.
Конфигурация
Заранее определите следующие параметры в ваших файлах vars. Рабочие примеры можно найти здесь.
Аутентификация
Параметр | Описание | Тип | Обязательно | Значение по умолчанию | Пример |
---|---|---|---|---|---|
moira_api | URL Moira API | Строка | Да | N/A | http://localhost/api/ |
moira_auth_custom | Заголовки для пользовательской аутентификации | Словарь | Нет | Нет | Authorization: apiKey |
moira_auth_user | Пользователь для аутентификации (Basic Auth) | Строка | Нет | Нет | admin |
moira_auth_pass | Пароль для аутентификации (Basic Auth) | Строка | Нет | Нет | pass |
moira_auth_login | Логин для аутентификации (Basic Auth) | Строка | Нет | Нет | admin |
Примечание: Используйте moira_auth_custom, если вы используете дополнительные механизмы аутентификации вместо
обычной базовой аутентификации. В противном случае используйте moira_auth_user, moira_auth_pass и moira_auth_login.
moira_auth_login должен содержать значение для заголовка X-Webauth-User.
Состояние триггера
Параметр | Описание | Тип | Обязательно | Выборы | Значение по умолчанию | Пример |
---|---|---|---|---|---|---|
state | Желаемое состояние триггера | Строка | Да | present absent |
N/A | present |
id | Идентификатор триггера | Строка | Да | N/A | N/A | trigger_1 |
name | Имя триггера | Строка | Да | N/A | N/A | Trigger 1 |
tags | Список тегов триггера | Список | Да | N/A | N/A | - Проект - Сервис |
targets | Список целей триггера Смотрите доступные функции Graphite |
Список | Да | N/A | N/A | - prefix.*.postfix |
warn_value | Значение для установки статуса WARN | Число с плавающей запятой | Нет | N/A | Нет | 300 |
error_value | Значение для установки статуса ERROR | Число с плавающей запятой | Нет | N/A | Нет | 600 |
trigger_type | Тип триггера | Строка | Нет | rising falling expression |
N/A | rising |
expression | C-подобное выражение | Строка | Нет | N/A | Пустая строка | t1 >= 10 ? ERROR : (t1 >= 1 ? WARN : OK) |
ttl | Когда нет метрик для триггера, Moira переключает метрику в состояние TTLState через TTL секунд | Целое число | Нет | N/A | 600 | 600 |
ttl_state | Состояние триггера по истечении 'ttl' | Строка | Нет | NODATA DEL ERROR WARN OK |
NODATA | WARN |
is_remote | Использовать удаленное хранилище. Устарело, используйте trigger_source вместо |
Логический | Нет | True False |
False | False |
trigger_source | Указать источник триггера, заменяет is_remote | Строка | Нет | graphite_local graphite_remote prometheus_remote |
Нет | graphite_local |
cluster_id | Указать идентификатор кластера | Строка | Нет | N/A | Нет | default |
desc | Описание триггера | Строка | Нет | N/A | Пустая строка | описание тестового триггера |
mute_new_metrics | Если истина, первое событие NODATA → OK будет пропущено | Логический | Нет | True False |
False | False |
disabled_days | Дни, когда триггер будет в безмолвном режиме | Список | Нет | N/A | Пустой список | - Пн - Ср |
timezone_offset | Сдвиг часового пояса (в минутах) | Целое число | Нет | N/A | 0 | -180 |
start_hour | Время начала отправки оповещений | Целое число | Нет | N/A | 0 | 9 |
start_minute | Время начала отправки оповещений (минуты) | Целое число | Нет | N/A | 0 | 0 |
end_hour | Время окончания отправки оповещений | Целое число | Нет | N/A | 23 | 17 |
end_minute | Время окончания отправки оповещений (минуты) | Целое число | Нет | N/A | 59 | 0 |
alone_metrics | Установить некоторые цели как единственные метрики | Объект, пример: | Нет | N/A | {'t1': False, 't2': True, ... 'tN': True} | {'t1': False, 't2': False} |
Задачи роли
Управление зависимостями
Задача для проверки, установлен ли python-moira-client (через pip).
Управление триггерами
Используйте состояние 'present' для создания и редактирования существующих триггеров:
- name: создать триггер
moira_trigger:
...
state: present
...
Для удаления существующих триггеров используйте состояние 'absent':
- name: удалить триггер
moira_trigger:
...
state: absent
...
Ansible role to create, update and delete Moira triggers
ansible-galaxy install moira-alert/moira-trigger-role