opstree_devops.elastalert

https://galaxy.ansible.com/opstree_devops/elastalert POR Ashutosh Mishra.

Rol de Ansible: ElastAlert

Este rol instala y configura ElastAlert junto con la configuración de alertas definidas por el usuario.

Historial de Versiones

Fecha Versión Descripción Cambiado Por
27 de junio de 2020 v0.0.1 Borrador Inicial Ashutosh Mishra
11 de enero de 2021 v0.0.2 Actualización de gestión de reglas Paul Belloc @NanoPish para https://perfmaker.com/

Características Principales

  • Este rol automatiza la configuración de alertas utilizando ElastAlert. En este rol, se pueden adjuntar archivos de reglas de ElastAlert.

Sistemas Operativos Soportados

  • Ubuntu bionic
  • Ubuntu xenial

Requisitos

  • python3
  • python-pip3
  • PyYAML
  • setuptools

Dependencias

  • Elasticsearch

Estructura del Directorio

├── README.md
├── defaults
│   └── main.yml
├── handlers
│   └── main.yml
├── meta
│   └── main.yml
├── tasks
│   ├── install.yml
│   ├── main.yml
│   └── service.yml
├── templates
│   ├── config.yaml.j2
│   └── elastalert-systemd.service.j2
├── tests
│   ├── inventory
│   └── test.yml
└── vars
    └── main.yml

7 directorios, 12 archivos

Variables del Rol

Variables Valores por Defecto Descripción Tipo
host_name localhost Host de Elasticsearch Obligatorio
es_port 9200 Puerto de Elasticsearch Obligatorio
elastalert_rules_dir /opt/elastalert/rules Directorio para reglas de ElastAlert Obligatorio
elastalert_upload_local_rules_dir files/elastalert/rules El servidor Ansible sube reglas en este directorio. Usa False si deseas subir manualmente Obligatorio si deseas que el rol suba reglas de elastalert_upload_local_rules_dir en la máquina Ansible a elastalert_rules_dir en la máquina ElastAlert
elastalert_delete_rules_not_in_elastalert_upload_local_rules_dir yes Eliminará reglas que no están presentes en elastalert_upload_local_rules_dir Obligatorio si deseas eliminar reglas en la máquina ElastAlert que no están en elastalert_upload_local_rules_dir en la máquina Ansible
elastalert_service_user_name elastalert Nombre de usuario de ElastAlert Obligatorio
elastalert_service_group_name elastalert Nombre del grupo de ElastAlert Obligatorio
elastalert_data_dir /opt Directorio de datos Obligatorio
installation_dir /opt Directorio de instalación de ElastAlert Obligatorio
elastalert_version 0.2.1 Versión de ElastAlert Obligatorio
es_user elastic Nombre de usuario de Elasticsearch Obligatorio si hay autenticación en ES
es_pass password Contraseña de Elasticsearch Obligatorio si hay autenticación en ES
use_ssl False Usar SSL Opcional (solo si necesitas SSL)
verify_certs False Verificar certificados Opcional (solo si necesitas SSL y deseas verificar certificados)
client_cert /opt/elastalert/clientcert.cer Certificado SSL Opcional (solo si necesitas SSL)
client_key /opt/elastalert/clientcert.key Clave del certificado SSL Opcional (solo si necesitas SSL)

Ejemplo de Playbook

Ejemplo simple

---
- name: Automatizar la configuración de ElastAlert
  hosts: elastalert
  roles:
    - role: osm_elastalert
        es_pass: password
        host_name: "tu IP o dominio de Elasticsearch"
...

Con autenticación HTTP de Elasticsearch + SSL + directorio local específico de reglas de ElastAlert + webhook de Slack utilizado en el archivo de reglas

---
- name: Automatizar la configuración de ElastAlert
  hosts: elastalert
  roles:
    - role: osm_elastalert
        es_pass: password
        use_ssl: True
        client_cert: /opt/elastalert/clientcert.cer
        client_key: /opt/elastalert/clientcert.key
        slack_webhook_url: "https://hooks.slack.com/services/tu_webhook_url"
        host_name: "tu IP o dominio de Elasticsearch"
        elastalert_upload_local_rules_dir: files/elastalert/cluster_one_elastalert_rules/
...

Ejecutar todas las tareas

$  ansible-playbook site.yml -i inventory

Solo ejecutar tareas relacionadas con la subida y eliminación de reglas para sincronizar el contenido del directorio de reglas de ElastAlert con el contenido del directorio de reglas local de Ansible

$  ansible-playbook site.yml --tags elastalert,elastalert-rules

Inventario

Un inventario debería verse así:-

[server]                 
192.xxx.x.xxx    ansible_user=ubuntu 

Cambios Propuestos Futuros

  • Actualizar ElastAlert para CentOS 6 y 7 también.

Referencias

Información del Autor

Nombre: Ashutosh Mishra
Correo: [email protected]
Instalar
ansible-galaxy install opstree_devops.elastalert
Licencia
Unknown
Descargas
77
Propietario