opstree_devops.elastalert

Ansible Rolle: ElastAlert

======================== Diese Rolle dient zur Installation und Einrichtung von ElastAlert sowie zur Definition der Alert-Konfiguration durch den Benutzer.

Versionsgeschichte

Datum Version Beschreibung Geändert von
27. Juni 2020 v0.0.1 Erster Entwurf Ashutosh Mishra
11. Januar 2021 v0.0.2 Aktualisierung der Regelverwaltung Paul Belloc @NanoPish für https://perfmaker.com/

Wichtige Funktionen

  • Diese Rolle automatisiert die Einrichtung von Alerts mit ElastAlert. In dieser Rolle können ElastAlert-Regeldateien angehängt werden.

Unterstützte Betriebssysteme

  • Ubuntu bionic
  • Ubuntu xenial

Voraussetzungen

  • python3
  • python-pip3
  • PyYAML
  • setuptools

Abhängigkeiten

  • Elasticsearch

Verzeichnisstruktur

├── 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 Verzeichnisse, 12 Dateien

Rollenvariablen

Variablen Standardwerte Beschreibung Typ
host_name localhost Elasticsearch-Host Obligatorisch
es_port 9200 Elasticsearch-Port Obligatorisch
elastalert_rules_dir /opt/elastalert/rules Verzeichnis für ElastAlert-Regeln Obligatorisch
elastalert_upload_local_rules_dir files/elastalert/rules Ansible-Maschine lädt Regeln in diesem Verzeichnis hoch. Verwenden Sie False, wenn Sie manuell hochladen möchten Obligatorisch, wenn Sie möchten, dass die Rolle Regeln von elastalert_upload_local_rules_dir auf der Ansible-Maschine in elastalert_rules_dir auf der ElastAlert-Maschine hochlädt
elastalert_delete_rules_not_in_elastalert_upload_local_rules_dir yes Löscht Regeln, die nicht im elastalert_upload_local_rules_dir vorhanden sind Obligatorisch, wenn Sie Regeln auf der ElastAlert-Maschine löschen möchten, die nicht im elastalert_upload_local_rules_dir auf der Ansible-Maschine sind
elastalert_service_user_name elastalert ElastAlert-Benutzername Obligatorisch
elastalert_service_group_name elastalert ElastAlert-Gruppenname Obligatorisch
elastalert_data_dir /opt Datenverzeichnis Obligatorisch
installation_dir /opt Verzeichnis für die ElastAlert-Installation Obligatorisch
elastalert_version 0.2.1 ElastAlert-Version Obligatorisch
es_user elastic Elasticsearch-Benutzername Obligatorisch, wenn eine Authentifizierung in ES vorhanden ist
es_pass password Elasticsearch-Passwort Obligatorisch, wenn eine Authentifizierung in ES vorhanden ist
use_ssl False SSL verwenden Optional (nur wenn Sie SSL benötigen)
verify_certs False Zertifikate überprüfen Optional (nur wenn Sie SSL benötigen und Zertifikate überprüfen möchten)
client_cert /opt/elastalert/clientcert.cer SSL-Zertifikat Optional (nur wenn Sie SSL benötigen)
client_key /opt/elastalert/clientcert.key SSL-Zertifikat-Schlüssel Optional (nur wenn Sie SSL benötigen)

Beispiel-Playbook

Einfaches Beispiel

---
- name: Automatisiert die ElastAlert-Einrichtung
  hosts: elastalert
  roles:
    - role: osm_elastalert
        es_pass: password
        host_name: "Ihre Elasticsearch-IP oder Domain"
...

Mit HTTP-Authentifizierung für Elasticsearch + SSL + spezifischem lokalem ElastAlert-Regelverzeichnis + Slack-Webhook, der in der Regeldatei verwendet wird

---
- name: Automatisiert die ElastAlert-Einrichtung
  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/Ihre_webhook_url"
        host_name: "Ihre Elasticsearch-IP oder Domain"
        elastalert_upload_local_rules_dir: files/elastalert/cluster_one_elastalert_rules/
...

Alle Aufgaben ausführen

$  ansible-playbook site.yml -i inventory

Nur Aufgaben ausführen, die mit dem Hochladen und Löschen von Regeln zu tun haben, um den Inhalt des ElastAlert-Regelverzeichnisses mit dem Inhalt des lokalen Ansible-Regelverzeichnisses zu synchronisieren

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

Inventar

Ein Inventar sollte folgendermaßen aussehen:-

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

Zukünftige vorgeschlagene Änderungen

  • ElastAlert für CentOS 6, 7 aktualisieren.

Referenzen

Autor Informationen

Name: Ashutosh Mishra
MailID: [email protected]
Installieren
ansible-galaxy install opstree_devops.elastalert
GitHub Repository
Lizenz
Unknown
Downloads
77
Besitzer