stackhpc.monasca_default_alarms
monasca-default-alarms
Este rol configurará una definición de alarma predeterminada para Monasca. También proporciona módulos de Ansible para la creación de definiciones de alarmas y notificaciones de Monasca. Más detalles sobre las definiciones de alarma se pueden encontrar en la documentación de la API de Monasca
Requisitos
Se requiere Ansible >=2.8 para utilizar las características de este rol, como fragmentos de documentos.
A menos que se proporcione monasca_api_url
, se supone que el punto de enlace del servicio para Monasca está registrado correctamente en Keystone.
Variables del rol
Estas variables deben definirse. Si se define una variable de entorno equivalente OS_ENV
en el host de control, se usará con prioridad igual a la configuración predeterminada.
keystone_url
(OS_AUTH_URL
)keystone_project
(OS_PROJECT_NAME
)
y uno de los siguientes
keystone_user
(OS_USERNAME
)keystone_password
(OS_PASSWORD
)
o
keystone_token
monasca_api_url
Por defecto, las definiciones de alarma configuradas se configurarán con una notificación por correo electrónico a root@localhost
. Cambia la variable notification_address
para enviar el correo electrónico a otra dirección.
Alternativamente, si notification_type
es WEBHOOK
o SLACK
, entonces notification_address
especifica la URL:
notification_address: "https://hooks.slack.com/services/XXXXXXXXX/YYYYYYYYY/ZZZZZZZZZZZZZZZZZZZZZZZ"
notification_name: "Notificación Predeterminada de Slack"
notification_type: "SLACK"
Además, hay dos variables opcionales para controlar las alarmas creadas:
skip_tasks
(lista)custom_alarms
(diccionario)
Consulta el libro de ejemplos para campos de custom_alarms
. Ver tasks/main.yml
para opciones de skip_tasks
.
El rol es responsable de instalar la dependencia python-monascaclient dentro de un virtualenv.
La ubicación predeterminada del virtualenv es /opt/python-monascaclient
- dado que esta ruta generalmente requiere escalamiento de privilegios, el rol utilizará become: yes
para crearlo.
Cambia el directorio de virtualenv usando monasca_client_virtualenv_dir: /foo
.
Desactiva el escalamiento de privilegios usando virtualenv_become: no
.
Ejemplo de Playbook
Coloca lo siguiente en un archivo de playbook, reemplazando las variables keystone_
con las adecuadas para tu implementación de OpenStack. Considera usar ansible-vault o equivalente para almacenar keystone_password
.
- name: Definir notificaciones de alarmas predeterminadas
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: "Porcentaje de CPU del Sistema"
description: "Alerta cuando el porcentaje de CPU del sistema es mayor al 80 (ejemplo de alarma personalizada)"
expression: "cpu.system_perc{hostname=host.domain.com} > 80"
match_by: ['hostname']
roles:
- {role: stackhpc.monasca_default_alarms, tags: [alarms]}
Uso de Módulos de Monasca
Hay dos módulos disponibles en el subdirectorio de la biblioteca, uno para notificaciones de Monasca y el otro para definiciones de alarmas. Por ejemplo:
- name: Configurar el método de notificación por correo electrónico
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: Crear definiciones de alarmas del sistema
monasca_alarm_definition:
name: "Alarma de Host Activo"
description: "Se activa cuando falla el chequeo de viva del host"
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 }}"
Consulta la documentación dentro del módulo para más detalles.
Licencia
Apache
Información del autor
Originalmente creado por Tim Kuhlman. Reescrito por Isaac Prior para soportar la nueva autenticación de Keystone.
Equipo de Monasca IRC: #openstack-monasca
en [email protected].
ansible-galaxy install stackhpc.monasca_default_alarms