stackhpc.monasca_default_alarms

monasca-default-alarms

该角色将为 Monasca 设置默认的警报定义配置。它还提供了用于创建 Monasca 警报定义和通知的 Ansible 模块。 有关警报定义的更多详细信息,可以在 Monasca API 文档 中找到。

要求

需要 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

默认情况下,配置的警报定义将设置为发送电子邮件通知到 root@localhost。 更改 notification_address 变量以发送邮件到其他地方。 如果 notification_typeWEBHOOKSLACK,则 notification_address 指定 URL:

notification_address: "https://hooks.slack.com/services/XXXXXXXXX/YYYYYYYYY/ZZZZZZZZZZZZZZZZZZZZZZZ"
notification_name: "默认 Slack 通知"
notification_type: "SLACK"

此外,还有两个可选变量来控制创建的警报:

  • skip_tasks (列表)
  • custom_alarms (字典)

有关 custom_alarms 字段的示例,请参见示例剧本。有关 skip_tasks 选项,请参见 tasks/main.yml

该角色负责在虚拟环境中安装 python-monascaclient 依赖项。 虚拟环境的默认位置是 /opt/python-monascaclient,由于此路径通常需要特权提升,因此角色将使用 become: yes 来创建它。 使用 monasca_client_virtualenv_dir: /foo 更改虚拟环境目录。 使用 virtualenv_become: no 禁用特权提升。

示例剧本

将以下内容放入剧本文件中,并用适合您 OpenStack 部署的 keystone_ 变量替换。考虑使用 ansible-vault 或等效工具来存储 keystone_password

- name: 定义默认警报通知
  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: "主机 CPU 系统百分比"
        description: "当系统 CPU % 超过 80 时发出警报(示例自定义警报)"
        expression: "cpu.system_perc{hostname=host.domain.com} > 80"
        match_by: ['hostname']
  roles:
    - {role: stackhpc.monasca_default_alarms, tags: [alarms]}

Monasca 模块使用

库子目录中有两个可用模块,一个用于 Monasca 通知,另一个用于警报定义。例如:

- 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: 创建系统警报定义
  monasca_alarm_definition:
    name: "主机存活警报"
    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

作者信息

最初由 Tim Kuhlman 创建。由 Isaac Prior 重写以支持新的 Keystone 身份验证。

Monasca 团队 IRC: #openstack-monascafreenode.net,电子邮件: monasca@lists.launchpad.net

关于项目

Sets up default alarm definitions for Monasca

安装
ansible-galaxy install stackhpc.monasca_default_alarms
许可证
apache-2.0
下载
324
拥有者
StackHPC develops OpenStack capabilities for research computing use cases. Through extensive experience, we understand HPC and cloud.