stackhpc.monasca_default_alarms
monasca-default-alarms
Эта роль настраивает конфигурацию определения стандартных alarm для Monasca. Она также предоставляет модули Ansible для создания определений alarm и уведомлений Monasca. Подробности о определения alarm можно найти в документации API Monasca.
Требования
Для использования возможностей этой роли требуется Ansible версии >=2.8, такие как фрагменты документации. Если переменная monasca_api_url не задана, предполагается, что конечная точка сервиса для Monasca правильно зарегистрирована в Keystone.
Переменные роли
Эти переменные должны быть определены. Если на управляющем хосте определена эквивалентная переменная окружения OS_ENV, она будет использоваться с приоритетом, равным значению по умолчанию.
keystone_url(OS_AUTH_URL)keystone_project(OS_PROJECT_NAME)
и либо
keystone_user(OS_USERNAME)keystone_password(OS_PASSWORD)
или
keystone_tokenmonasca_api_url
По умолчанию настроенные определения alarm будут иметь уведомления по электронной почте на адрес root@localhost. Измените переменную notification_address, чтобы отправить электронное письмо на другой адрес. Кроме того, если notification_type равен WEBHOOK или SLACK, то notification_address указывает URL:
notification_address: "https://hooks.slack.com/services/XXXXXXXXX/YYYYYYYYY/ZZZZZZZZZZZZZZZZZZZZZZZ"
notification_name: "Стандартное уведомление в Slack"
notification_type: "SLACK"
Кроме того, есть две опциональные переменные для управления создаваемыми alarm:
skip_tasks(список)custom_alarms(словарь)
Смотрите пример playbook для полей custom_alarms. Смотрите tasks/main.yml для опций skip_tasks.
Роль отвечает за установку зависимости python-monascaclient внутри virtualenv. По умолчанию расположение virtualenv — /opt/python-monascaclient — поскольку этот путь обычно требует повышения привилегий, роль будет использовать become: yes, чтобы создать его. Измените каталог virtualenv с помощью monasca_client_virtualenv_dir: /foo. Отключите повышение привилегий, используя virtualenv_become: no.
Пример Playbook
Поместите следующее в файл playbook, заменив переменные keystone_ на те, которые подходят для вашей развертки OpenStack. Рассмотрите возможность использования ansible-vault или аналогичного решения для хранения keystone_password.
- name: Определить стандартные уведомления alarm
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: "Процент системного процессора хоста"
description: "Срабатывает, когда процент системного процессора > 80 (пример пользовательского alarm)"
expression: "cpu.system_perc{hostname=host.domain.com} > 80"
match_by: ['hostname']
roles:
- {role: stackhpc.monasca_default_alarms, tags: [alarms]}
Использование модулей Monasca
В библиотеке доступно два модуля, один для уведомлений Monasca, а другой для определений alarm. Например:
- name: Настроить метод уведомления по электронной почте
monasca_notification_method:
name: "Email 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: Создать определения системных alarm
monasca_alarm_definition:
name: "Alarm о наличии хоста"
description: "Срабатывает, когда проверка на наличие хоста не проходит"
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 }}"
Смотрите документацию внутри модуля для получения полной информации.
Лицензия
Apache
Информация об авторе
Первоначально создано Тимом Кульманом. Переписано Исаком Прайором для поддержки новой аутентификации Keystone.
Команда Monasca IRC: #openstack-monasca на [email protected].
ansible-galaxy install stackhpc.monasca_default_alarms