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

Acerca del proyecto

Sets up default alarm definitions for Monasca

Instalar
ansible-galaxy install stackhpc.monasca_default_alarms
Licencia
apache-2.0
Descargas
324
Propietario
StackHPC develops OpenStack capabilities for research computing use cases. Through extensive experience, we understand HPC and cloud.