Если вам нужно управлять огромными объемами данных, однажды вы обнаружите, что захотите инструмент, который просто указывал бы на аномалии или несоответствия в данных и предупреждал вас в режиме реального времени.
Что такое ElastAlert?
ElastAlert создан именно для этого. Это простая структура, которая предупреждает об обнаружении аномалий, всплесков или других шаблонов правил из данных, добавленных в Elasticsearch.
Например, вы можете настроить оповещение "частота", которое будет уведомлять вас, когда за Y времени будет X событий.
Или вы можете захотеть, чтобы вас сразу же предупредили, когда происходит «всплеск», то есть когда скорость, с которой происходит событие, внезапно увеличивается или уменьшается.
Включены и другие типы правил:
- 'плоская линия' - когда за Y времени меньше X событий
- 'черный список / белый список' - когда определенное поле совпадает с 'черным списком' или 'белым списком'
- 'любой' - когда происходит событие, которое соответствует заданному фильтру
- 'изменить' - когда поле имеет два разных значения в течение определенного периода времени
Поддерживаемые типы предупреждений
В настоящее время ElastAlert имеет встроенную поддержку следующих типов предупреждений.
- Командование
- Электронное письмо
- JIRA
- OpsGenie
- SNS
- HipChat
- Слабина
- Телеграмма
- GoogleChat
- Отлаживать
- Топать
- улей
Установите ElastAlert с Elasticsearch в Ubuntu
В этой статье мы покажем вам, как установить ElastAlert на ubuntu 18.04.
Требования
- Elasticsearch
- Данные с отметкой времени ISO8601 или Unix
- Python 2.7
- пункт, см. требования.txt - (https: // github.com / Yelp / elastalert / blob / master / требования.текст)
- Пакеты для ubuntu - python-pip python-dev libffi-dev libssl-dev
Установка необходимых компонентов
Установить Python 2.7:
sudo apt-get install python-minimal
Проверьте версию Python:
sudo python --version
Тогда вы получите вывод для python 2.7.
Установите необходимые пакеты:
sudo apt-get install python-pip python-dev libffi-dev libssl-dev
Есть несколько разных способов установить ElastAlert, и здесь мы собираемся выполнить установку путем клонирования репозитория git.
Итак, нам нужно установить «git», прежде чем продолжить. Обычно Ubuntu 18.04 уже установлен git.
Проверьте установленную или доступную версию git:
политика sudo apt-cache git
Это даст подробную информацию об установленных и возможных версиях git.
Если вы не видите установленную версию git, выполните следующую команду.
sudo apt-get install git
Мы собираемся клонировать репозиторий ElastAlert в папку «/ opt», поэтому смените каталог.
sudo cd / opt
Теперь клонируйте репозиторий git.
sudo git clone https: // github.com / Yelp / elastalert.мерзавец
Теперь установите модули.
sudo pip install "setuptools> = 11".3 "
настройка sudo python.py установить
Вы можете получить такую ошибку.
Затем запустите команду ниже, чтобы установить «PyOpenSSL»
sudo pip установить PyOpenSSL
Здесь мы собираемся интегрироваться с Elastic search 6.Икс. Итак, Elasticsearch 5.0+ будет установлен здесь.
sudo pip install "elasticsearch> = 5".0.0 "
Настроить ElastAlert
Мы клонировали репозиторий ElastAlert в каталог «/ opt», поэтому перед продолжением смените каталог.
sudo cd / opt / elastalert /
Теперь мы получаем копию конфига.ямл.пример файла в качестве конфигурации.ямл
sudo cp config.ямл.пример конфигурации.ямл
Изменить конфигурацию.yaml файл.
конфигурация vim.ямл
Раскомментируйте следующие строки и измените.
Имя хоста или IP-адрес ElasticSearch
es_host: лось-сервер
Порт ElasticServer
es_port: 9200
Раскомментируйте базовую аутентификацию:
es_username: es_password:
Сохраните и закройте файл.
Создать индекс ElastAlert.
sudo elastalert-create-index
Создание правила
Теперь отредактируйте файл с названием «example_frequency.yaml »внутри папки« / opt / elastalert / example_rules / »
sudo vim example_rules / example_frequency.ямл
Раскомментируйте и измените индекс следующим образом:
индекс: filebeat- *
Теперь определите фильтр для предупреждения. Здесь мы фильтруем ключевые слова строкой «исключение».
filter: - query_string: query: "message: * exception *"
Настроить Alter с помощью Slack. Здесь вам нужно создать Slack-канал и входящий веб-перехватчик. Затем добавьте детали конфигурации следующим образом.
alert: - "слабина" slack: slack_webhook_url: "https: // хуки.слабина.ru / services / T3YSFN0GL / BFU1HPLKD / BPM2jOlIOzKxbEOHAepu6d26 "slack_username_override:" Fosslinux-Elastic-Bot "slack_channel_override:" #fosslinuxalert "slack_emoji_overgface:":
Вы можете выполнить следующие шаги, чтобы создать канал Slack.
Настройка канала Slack для ElastAlert
Если у вас нет учетной записи Slack, вы можете получить ее, просто зарегистрировавшись. Перейти к «слабину».com », введите свой адрес электронной почты и нажмите« НАЧАТЬ ».
Затем нажмите «Создать новое рабочее пространство» и подтвердите свой адрес электронной почты. Теперь вы можете войти в систему и просмотреть панель управления.
Перейдите в Обзор приложений -> Пользовательские интеграции -> Входящие веб-перехватчики -> Новая конфигурация
Затем нажмите «Создать новый канал», чтобы создать канал для отправки предупреждений.
Затем нажмите кнопку «Создать канал», и вы попадете на страницу интеграции с Webhook.
Нажмите кнопку "Добавить интеграцию входящих веб-перехватчиков". Это создаст настройки интеграции.
Правило теста
Изменить каталог на ElastAlert.
sudo cd / opt / elastalert /
Запустите команду ниже, чтобы проверить настроенное правило.
sudo elastalert-test-rule example_rules / example_frequency.ямл
Запустите ElastAlert
Запустим ElastAlert в качестве фоновой службы. Эту команду следует запускать в папке «/ opt / elastalert /».
sudo python -m elastalert.elastalert --verbose --rule example_frequency.yaml &
Теперь ElastAlert начнет проверять запросы на Elasticsearch (на сервере ELK). Если есть совпадение, он будет предупреждать Slack.
Оповещение сработало.
Оповещение будет отправлено на Slack Channel.
Вот и все, мы успешно установили и настроили ElastAlert с эластичным поиском, а также настроили оповещения для Slack. Мы надеемся, что это исчерпывающее руководство поможет вам установить ElastAlert и настроить некоторые правила для легкого запуска предупреждений. Вопросы и отзывы приветствуются в разделе комментариев.