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_token
monasca_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