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].

О проекте

Sets up default alarm definitions for Monasca

Установить
ansible-galaxy install stackhpc/monasca-default-alarms
Лицензия
apache-2.0
Загрузки
312
Владелец
StackHPC develops OpenStack capabilities for research computing use cases. Through extensive experience, we understand HPC and cloud.