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