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