elastalert

Ansible Роль: ElastAlert

Эта роль предназначена для установки и настройки ElastAlert вместе с конфигурацией оповещений, определенной пользователем.

История Версий

Дата Версия Описание Изменено
27 июня 2020 v0.0.1 Первоначальный черновик Ашутош Мишра
11 января 2021 v0.0.2 Обновление управления правилами Пол Беллок @NanoPish для https://perfmaker.com/

Основные Особенности

  • Эта роль автоматизирует настройку оповещений с использованием ElastAlert. В этой роли можно прикреплять файлы правил ElastAlert.

Поддерживаемые ОС

  • Ubuntu bionic
  • Ubuntu xenial

Требования

  • python3
  • python-pip3
  • PyYAML
  • setuptools

Зависимости

  • Elasticsearch

Структура Директорий

├── 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 директорий, 12 файлов

Переменные Роли

Переменные Значения по умолчанию Описание Тип
host_name localhost хост Elasticsearch Обязательно
es_port 9200 порт Elasticsearch Обязательно
elastalert_rules_dir /opt/elastalert/rules Директория для правил ElastAlert Обязательно
elastalert_upload_local_rules_dir files/elastalert/rules Директория для загрузки правил на машине Ansible. Используйте False, если хотите загрузить вручную Обязательно, если хотите, чтобы роль загружала правила из elastalert_upload_local_rules_dir на машине an ansible в elastalert_rules_dir на машине elastalert
elastalert_delete_rules_not_in_elastalert_upload_local_rules_dir yes Удалит правила, которые отсутствуют в elastalert_upload_local_rules_dir Обязательно, если хотите удалить правила на машине elastalert, которых нет в elastalert_upload_local_rules_dir на машине ansible
elastalert_service_user_name elastalert имя пользователя ElastAlert Обязательно
elastalert_service_group_name elastalert имя группы ElastAlert Обязательно
elastalert_data_dir /opt Директория для данных Обязательно
installation_dir /opt Директория установки ElastAlert Обязательно
elastalert_version 0.2.1 версия ElastAlert Обязательно
es_user elastic имя пользователя Elasticsearch Обязательно, если есть аутентификация в ES
es_pass password пароль Elasticsearch Обязательно, если есть аутентификация в ES
use_ssl False использование SSL Не обязательно (только если вам нужен SSL)
verify_certs False проверка сертификатов Не обязательно (только если вам нужен SSL и вы хотите проверить сертификаты)
client_cert /opt/elastalert/clientcert.cer ssl сертификат Не обязательно (только если вам нужен SSL)
client_key /opt/elastalert/clientcert.key ssl ключ сертификата Не обязательно (только если вам нужен SSL)

Пример playbook

Простой пример

---
- name: Автоматизация настройки ElastAlert
  hosts: elastalert
  roles:
    - role: osm_elastalert
        es_pass: password
        host_name: "ваш IP или домен Elasticsearch"
...

С HTTP аутентификацией ElasticSearch + SSL + конкретной локальной директорией правил ElastAlert + вебхуком slack

---
- name: Автоматизация настройки 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/ваш_webhook_url"
        host_name: "ваш IP или домен Elasticsearch"
        elastalert_upload_local_rules_dir: files/elastalert/cluster_one_elastalert_rules/
...

Запуск всех задач

$  ansible-playbook site.yml -i inventory

Запуск только задач, связанных с загрузкой и удалением правил, для синхронизации содержимого директории правил elastalert с локальным содержимым директории правил ansible

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

Инвентарь

Инвентарь должен выглядеть так:-

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

Будущие Предлагаемые Изменения

  • Обновление elastalert для centos 6, 7 также.

Ссылки

Информация об Авторе

Имя: Ашутош Мишра
Email: [email protected]
Установить
ansible-galaxy install OT-OSM/elastalert
Лицензия
Unknown
Загрузки
68
Владелец