opstree_devops.elastalert
https://galaxy.ansible.com/opstree_devops/elastalert PAR Ashutosh Mishra.
Rôle Ansible : ElastAlert
Ce rôle permet d'installer et de configurer ElastAlert avec les alertes définies par l'utilisateur.
Historique des Versions
Date | Version | Description | Modifié par |
---|---|---|---|
27 juin 2020 | v0.0.1 | Ébauche initiale | Ashutosh Mishra |
11 janvier 2021 | v0.0.2 | Mise à jour de la gestion des règles | Paul Belloc @NanoPish pour https://perfmaker.com/ |
Caractéristiques Principales
- Ce rôle automatise la configuration des alertes en utilisant ElastAlert. Dans ce rôle, vous pouvez attacher des fichiers de règles ElastAlert.
Systèmes d'exploitation supportés
- Ubuntu bionic
- Ubuntu xenial
Exigences
- python3
- python-pip3
- PyYAML
- setuptools
Dépendances
- Elasticsearch
Structure du Dossier
├── 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 dossiers, 12 fichiers
Variables du Rôle
Variables | Valeurs par Défaut | Description | Type |
---|---|---|---|
host_name | localhost | Hôte Elasticsearch | Obligatoire |
es_port | 9200 | Port Elasticsearch | Obligatoire |
elastalert_rules_dir | /opt/elastalert/rules | Dossier pour les règles ElastAlert | Obligatoire |
elastalert_upload_local_rules_dir | files/elastalert/rules | Les règles sont téléchargées dans ce dossier par la machine Ansible. Utilisez False si vous souhaitez télécharger manuellement | Obligatoire si vous voulez que le rôle télécharge les règles du dossier elastalert_upload_local_rules_dir sur la machine Ansible vers elastalert_rules_dir sur la machine ElastAlert |
elastalert_delete_rules_not_in_elastalert_upload_local_rules_dir | yes | Supprime les règles non présentes dans elastalert_upload_local_rules_dir | Obligatoire si vous souhaitez supprimer les règles sur la machine ElastAlert qui ne sont pas dans elastalert_upload_local_rules_dir sur la machine Ansible |
elastalert_service_user_name | elastalert | Nom d'utilisateur ElastAlert | Obligatoire |
elastalert_service_group_name | elastalert | Nom de groupe ElastAlert | Obligatoire |
elastalert_data_dir | /opt | Dossier de données | Obligatoire |
installation_dir | /opt | Dossier d'installation ElastAlert | Obligatoire |
elastalert_version | 0.2.1 | Version d'ElastAlert | Obligatoire |
es_user | elastic | Nom d'utilisateur Elasticsearch | Obligatoire s'il y a une authentification dans ES |
es_pass | password | Mot de passe Elasticsearch | Obligatoire s'il y a une authentification dans ES |
use_ssl | False | Utiliser SSL | Optionnel (uniquement si vous avez besoin de SSL) |
verify_certs | False | Vérifier les certificats | Optionnel (uniquement si vous avez besoin de SSL et souhaitez vérifier les certificats) |
client_cert | /opt/elastalert/clientcert.cer | Certificat SSL | Optionnel (uniquement si vous avez besoin de SSL) |
client_key | /opt/elastalert/clientcert.key | Clé de certificat SSL | Optionnel (uniquement si vous avez besoin de SSL) |
Exemple de Playbook
Exemple simple
---
- name: Il va automatiser la configuration d'ElastAlert
hosts: elastalert
roles:
- role: osm_elastalert
es_pass: password
host_name: "votre adresse IP ou domaine Elasticsearch"
...
Avec authentification HTTP Elasticsearch + SSL + dossier spécifique des règles ElastAlert locales + webhook Slack utilisé dans le fichier de règles
---
- name: Il va automatiser la configuration d'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/votre_url_webhook"
host_name: "votre adresse IP ou domaine Elasticsearch"
elastalert_upload_local_rules_dir: files/elastalert/cluster_one_elastalert_rules/
...
Exécuter toutes les tâches
$ ansible-playbook site.yml -i inventory
Exécuter uniquement les tâches liées au téléchargement et à la suppression des règles pour synchroniser le contenu du dossier des règles ElastAlert avec le contenu du dossier des règles Ansible local
$ ansible-playbook site.yml --tags elastalert,elastalert-rules
Inventaire
Un inventaire doit ressembler à ceci :
[server]
192.xxx.x.xxx ansible_user=ubuntu
Changements Proposés pour l'Avenir
- Mettre à jour ElastAlert pour CentOS 6, 7 également.
Références
Informations sur l'Auteur
Nom : Ashutosh Mishra
Mail : ashutosh.mishra@opstree.com
Installer
ansible-galaxy install opstree_devops.elastalert
Licence
Unknown
Téléchargements
77
Propriétaire