Изображения elastalert docker, это изображение включает плагин оповещения предприятия Wechat и плагин оповещения Dingtalk.
Образ докера elastalert интегрирует подключаемый модуль сигнализации корпоративной учетной записи WeChat и подключаемый модуль сигнализации DingTalk из коробки (на основе веб-перехватчика группового робота DingTalk, поддерживает аутентификацию по сигнатурам, а также текстовые форматы и форматы уценки).
Делаем все доступным с помощью переменных среды.
Интеграция со следующими внешними сервисами через переменные среды:
Синхронизация NTP и поддержка изменения часового пояса.
Проверка запуска и установка зависимостей расширения и оповещения.
Смещение @timestamp по местному времени (использовать часовой пояс) (поддерживает изменение @timestamp в соответствии с местным часовым поясом)
docker run -e " ELASTICSEARCH_HOST=es-host "
-e " CONTAINER_TIMEZONE=Asia/Shanghai "
-e " TZ=Asia/Shanghai "
-e " ELASTALERT_DINGTALK_ACCESS_TOKEN=xxx "
-e " ELASTALERT_DINGTALK_SECURITY_TYPE=sign "
-e " ELASTALERT_DINGTALK_SECRET=xxx "
anjia0532/elastalert-docker:v0.2.4
name : log-error
type : frequency
index : logstash-*
num_events : 20
timeframe :
minutes : 5
filter :
- query :
query_string :
query : " level:ERROR "
compare_key :
- app_name
query_key :
- app_name
# 告警抑制
# 5 分钟内相同的报警不会重复发送
realert :
minutes : 5
exponential_realert :
# 指数级扩大 realert 时间,中间如果有报警,
# 则按照 5 -> 10 -> 20 -> 40 -> 60 不断增大报警时间到制定的最大时间,
# 如果之后报警减少,则会慢慢恢复原始 realert 时间
exponential_realert :
hours : 1
alert :
- " elastalert_modules.dingtalk_alert.DingTalkAlerter "
# - "elastalert_modules.wechat_qiye_alert.WeChatAlerter"
match_enhancements :
- " elastalert_enhancements.TimeEnhancement.TimeEnhancement "
alert_text_type : alert_text_only
alert_text : |
从 {} 到 {} 产生了 {} 次 错误日志
时间: {}
模块: {}
内容: {}
堆栈: `{}`
alert_text_args :
- local_starttime
- local_endtime
- num_hits
- local_time
- app_name
- message
- stack_trace
Эти переменные задаются во время сборки Docker и обычно необходимы для работы основных функций Elastalert.
Переменные среды, заданные при создании образа, необходимы для запуска Elastalert.
Энввар | Конфигурация Elastalert var | По умолчанию | Описание |
---|---|---|---|
ELASTALERT_HOME | Н/Д | /opt/elastalert | Разместите здесь дом Elastalert |
SET_CONTAINER_TIMEZONE | Н/Д | True | Устанавливать ли часовой пояс контейнера на ${CONTAINER_TIMEZONE} |
CONTAINER_TIMEZONE | Н/Д | Etc/UTC | Значение часового пояса контейнера |
ELASTALERT_RULES_DIRECTORY | Н/Д | ${ELASTALERT_HOME}/rules | Папка, в которой Elastalert сканирует правила |
ELASTALERT_PLUGIN_DIRECTORY | Н/Д | ${ELASTALERT_HOME}/elastalert_modules | Папка, в которой Elastalert сканирует оповещения |
ELASTALERT_ENHANCEMENT_DIRECTORY | Н/Д | ${ELASTALERT_HOME}/elastalert_enhancements | Папка, в которой Elastalert сканирует улучшения |
ELASTALERT_CONFIG | Н/Д | ${ELASTALERT_HOME}/config.yaml | Имя и расположение файла конфигурации, на который ссылается docker-entrypoint.sh для запуска демона Python. |
ELASTALERT_INDEX | writeback_index | elastalert_status | Имя индекса Elastalert в вашем кластере Elasticsearch. |
ELASTALERT_SYSTEM_GROUP | Н/Д | elastalert | Имя пользователя, запускающего Elastalert, используемое для разрешений демона и папки; |
ELASTALERT_SYSTEM_USER | Н/Д | elastalert | Имя группы, использующей Elastalert, используемое для разрешений демона и папки; |
ELASTALERT_VERSION | Н/Д | 0.1.29 | Версия Elastalert для установки из pip |
ELASTICSEARCH_HOST | es_host | elasticsearch | Описание |
ELASTICSEARCH_PORT | es_port | 9200 | Описание |
ELASTICSEARCH_USE_SSL | use_ssl | False | Подключитесь с помощью TLS к Elasticsearch |
ELASTICSEARCH_VERIFY_CERTS | verify_certs | False | Использовать SSL-аутентификацию с клиентскими сертификатами |
Эти переменные являются настройками, доступными в файле конфигурации Elastalert. Большинство этих параметров применяются к сторонним интеграциям (JIRA, OpsGenie и т. д.) или описаны здесь: Общие параметры конфигурации Elastalert.
Эти переменные среды необходимы для файла конфигурации Elastalert, в основном для общей конфигурации и сторонней интегрированной конфигурации (Wechat, dingtalk и т. д.).
Энввар | Конфигурация Elastalert var | По умолчанию | Описание |
---|---|---|---|
ELASTALERT_RUN_EVERY | run_every: => minutes: | 3 | Количество минут ожидания перед повторной проверкой правил Elastalert. В настоящее время доступны только значения в минутах. |
ELASTALERT_BUFFER_TIME | buffer_time: => minutes: | 45 | ElastAlert будет буферизовать результаты за самый последний период времени, если некоторые источники журналов не находятся в режиме реального времени. |
ELASTALERT_AWS_REGION | aws_region | Нет набора по умолчанию | |
ELASTICSEARCH_URL_PREFIX | es_url_prefix | Нет набора по умолчанию | |
ELASTICSEARCH_SEND_GET_BODY_AS | es_send_get_body_as | Нет набора по умолчанию | |
ELASTALERT_TIME_LIMIT | alert_time_limit: => minutes: | 5 | Если по какой-либо причине оповещение не будет отправлено, ElastAlert будет повторять попытку отправки оповещения до тех пор, пока не истечет этот период времени. |
ELASTALERT_DISABLE_RULES_ON_ERROR | disable_rules_on_error: => Bool | True | Если это правда, ElastAlert отключит правила, которые выдают необработанные исключения (не EAException). |
ELASTALERT_MATCH_ENHANCEMENTS | match_enhancements: => array | Нет Набор по умолчанию | Список модулей расширения, которые можно использовать с этим правилом. |
ELASTALERT_RUN_ENHANCEMENTS_FIRST | run_enhancements_first: => Bool | ЛОЖЬ | Если установлено значение true, улучшения будут запущены, как только будет найдено совпадение. |
ELASTICSEARCH_CA_CERTS | ca_certs | Нет набора по умолчанию | |
ELASTICSEARCH_CLIENT_CERT | client_cert | Нет набора по умолчанию | |
ELASTICSEARCH_CLIENT_KEY | client_key | Нет набора по умолчанию | |
ELASTICSEARCH_PASSWORD | es_password | Нет набора по умолчанию | |
ELASTICSEARCH_USER | es_username | Нет набора по умолчанию |
Энввар | Конфигурация Elastalert var | По умолчанию | Описание |
---|---|---|---|
wechat (корпоративный аккаунт WeChat) | |||
ELASTALERT_WECHAT_CORP_ID | wechat_corp_id | Нет набора по умолчанию | идентификатор корпорации |
ELASTALERT_WECHAT_SECRET | wechat_secret | Нет набора по умолчанию | корпоративная тайна |
ELASTALERT_WECHAT_AGENT_ID | wechat_agent_id | Нет набора по умолчанию | идентификатор агента |
ELASTALERT_WECHAT_PARTY_ID | wechat_party_id | Нет набора по умолчанию | идентификатор вечеринки (party1, party2...) |
ELASTALERT_WECHAT_USER_ID | wechat_user_id | Нет набора по умолчанию | идентификатор пользователя (пользователь1,пользователь2,пользователь3...) |
ELASTALERT_WECHAT_TAG_ID | wechat_tag_id | Нет набора по умолчанию | идентификатор тега (тег1,тег2,тег3...) |
dingtalk (групповой робот DingTalk) | |||
ELASTALERT_DINGTALK_ACCESS_TOKEN | dingtalk_access_token | Нет набора по умолчанию | токен доступа к dingtalk |
ELASTALERT_DINGTALK_SECURITY_TYPE | dingtalk_security_type | знак | знак/ключевое слово/белый список |
ELASTALERT_DINGTALK_SECRET | dingtalk_secret | Нет набора по умолчанию | если ELASTALERT_DINGTALK_SECURITY_TYPE == знак, не должно быть нулевым |
ELASTALERT_DINGTALK_AT_MOBILES | dingtalk_at_mobiles | Нет набора по умолчанию | массив телефона в @someone |
ELASTALERT_DINGTALK_AT_ALL | dingtalk_at_all | ЛОЖЬ | @все или нет |
ELASTALERT_DINGTALK_MSGTYPE | dingtalk_msgtype | текст | текст/уценка |
Электронная почта | |||
ELASTALERT_EMAIL | email | Нет набора по умолчанию | |
ELASTALERT_EMAIL_REPLY_TO | email_reply_to | Нет набора по умолчанию | |
ELASTALERT_FROM_ADDR | from_addr | Нет набора по умолчанию | |
ELASTALERT_NOTIFY_EMAIL | notify_email | Нет набора по умолчанию | |
ELASTALERT_SMTP_HOST | smtp_host | Нет набора по умолчанию | |
экзотель | |||
ELASTALERT_EXOTEL_ACCOUNT_SID | exotel_account_sid | Нет набора по умолчанию | |
ELASTALERT_EXOTEL_AUTH_TOKEN | exotel_auth_token | Нет набора по умолчанию | |
ELASTALERT_EXOTEL_FROM_NUMBER | exotel_from_number | Нет набора по умолчанию | |
ELASTALERT_EXOTEL_TO_NUMBER | exotel_to_number | Нет набора по умолчанию | |
тряска | |||
ELASTALERT_GITTER_MSG_LEVEL | gitter_msg_level | Нет набора по умолчанию | |
ELASTALERT_GITTER_PROXY | gitter_proxy | Нет набора по умолчанию | |
ELASTALERT_GITTER_WEBHOOK_URL | gitter_webhook_url | Нет набора по умолчанию | |
хипчат | |||
ELASTALERT_HIPCHAT_AUTH_TOKEN | hipchat_auth_token | Нет набора по умолчанию | |
ELASTALERT_HIPCHAT_DOMAIN | hipchat_domain | Нет набора по умолчанию | |
ELASTALERT_HIPCHAT_FROM | hipchat_from | Нет набора по умолчанию | |
ELASTALERT_HIPCHAT_IGNORE_SSL_ERRORS | hipchat_ignore_ssl_errors | Нет набора по умолчанию | |
ELASTALERT_HIPCHAT_NOTIFY | hipchat_notify | Нет набора по умолчанию | |
ELASTALERT_HIPCHAT_ROOM_ID | hipchat_room_id | Нет набора по умолчанию | |
Джира | |||
ELASTALERT_JIRA_ACCOUNT_FILE | jira_account_file | Нет набора по умолчанию | |
ELASTALERT_JIRA_ASSIGNEE | jira_assignee | Нет набора по умолчанию | |
ELASTALERT_JIRA_BUMP_IN_STATUSES | jira_bump_in_statuses | Нет набора по умолчанию | |
ELASTALERT_JIRA_BUMP_NOT_IN_STATUSES | jira_bump_not_in_statuses | Нет набора по умолчанию | |
ELASTALERT_JIRA_BUMP_TICKETS | jira_bump_tickets | Нет набора по умолчанию | |
ELASTALERT_JIRA_COMPONENT | jira_component | Нет набора по умолчанию | |
ELASTALERT_JIRA_COMPONENTS | jira_components | Нет набора по умолчанию | |
ELASTALERT_JIRA_ISSUETYPE | jira_issuetype | Нет набора по умолчанию | |
ELASTALERT_JIRA_LABEL | jira_label | Нет набора по умолчанию | |
ELASTALERT_JIRA_LABELS | jira_labels | Нет набора по умолчанию | |
ELASTALERT_JIRA_MAX_AGE | jira_max_age | Нет набора по умолчанию | |
ELASTALERT_JIRA_PROJECT | jira_project | Нет набора по умолчанию | |
ELASTALERT_JIRA_SERVER | jira_server | Нет набора по умолчанию | |
ELASTALERT_JIRA_WATCHERS | jira_watchers | Нет набора по умолчанию | |
опсгений | |||
ELASTALERT_OPSGENIE_ACCOUNT | opsgenie_account | Нет набора по умолчанию | |
ELASTALERT_OPSGENIE_ADDR | opsgenie_addr | Нет набора по умолчанию | |
ELASTALERT_OPSGENIE_ALIAS | opsgenie_alias | Нет набора по умолчанию | |
ELASTALERT_OPSGENIE_KEY | opsgenie_key | Нет набора по умолчанию | |
ELASTALERT_OPSGENIE_MESSAGE | opsgenie_message | Нет набора по умолчанию | |
ELASTALERT_OPSGENIE_PROXY | opsgenie_proxy | Нет набора по умолчанию | |
ELASTALERT_OPSGENIE_RECIPIENTS | opsgenie_recipients | Нет набора по умолчанию | |
ELASTALERT_OPSGENIE_TAGS | opsgenie_tags | Нет набора по умолчанию | |
ELASTALERT_OPSGENIE_TEAMS | opsgenie_teams | Нет набора по умолчанию | |
пейджердолг | |||
ELASTALERT_PAGERDUTY_CLIENT_NAME | pagerduty_client_name | Нет набора по умолчанию | |
ELASTALERT_PAGERDUTY_EVENT_TYPE | pagerduty_event_type | Нет набора по умолчанию | |
ELASTALERT_PAGERDUTY_SERVICE_KEY | pagerduty_service_key | Нет набора по умолчанию | |
слабый | |||
ELASTALERT_SLACK_EMOJI_OVERRIDE | slack_emoji_override | Нет набора по умолчанию | |
ELASTALERT_SLACK_ICON_URL_OVERRIDE | slack_icon_url_override | Нет набора по умолчанию | |
ELASTALERT_SLACK_MSG_COLOR | slack_msg_color | Нет набора по умолчанию | |
ELASTALERT_SLACK_PARSE_OVERRIDE | slack_parse_override | Нет набора по умолчанию | |
ELASTALERT_SLACK_TEXT_STRING | slack_text_string | Нет набора по умолчанию | |
ELASTALERT_SLACK_USERNAME_OVERRIDE | slack_username_override | Нет набора по умолчанию | |
ELASTALERT_SLACK_WEBHOOK_URL | slack_webhook_url | Нет набора по умолчанию | |
телеграмма | |||
ELASTALERT_TELEGRAM_API_URL | telegram_api_url | Нет набора по умолчанию | |
ELASTALERT_TELEGRAM_BOT_TOKEN | telegram_bot_token | Нет набора по умолчанию | |
ELASTALERT_TELEGRAM_ROOM_ID | telegram_room_id | Нет набора по умолчанию | |
твилио | |||
ELASTALERT_TWILIO_ACCOUNT_SID | twilio_account_sid | Нет набора по умолчанию | |
ELASTALERT_TWILIO_AUTH_TOKEN | twilio_auth_token | Нет набора по умолчанию | |
ELASTALERT_TWILIO_FROM_NUMBER | twilio_from_number | Нет набора по умолчанию | |
ELASTALERT_TWILIO_TO_NUMBER | twilio_to_number | Нет набора по умолчанию | |
победитель | |||
ELASTALERT_VICTOROPS_API_KEY | victorops_api_key | Нет набора по умолчанию | |
ELASTALERT_VICTOROPS_ENTITY_DISPLAY_NAME | victorops_entity_display_name | Нет набора по умолчанию | |
ELASTALERT_VICTOROPS_MESSAGE_TYPE | victorops_message_type | Нет набора по умолчанию | |
ELASTALERT_VICTOROPS_ROUTING_KEY | victorops_routing_key | Нет набора по умолчанию |
git clone https://github.com/anjia0532/elastalert-docker.git
cd elastalert-docker
docker build . -t anjia0532/elastalert-docker:v0.2.4
[-t anjia0532/elastalert-docker:latest] [--build-arg ELASTALERT_VERSION = 0.2.4]
[--build-arg MIRROR = true --build-arg ALPINE_HOST = " mirrors.aliyun.com " --build-arg PIP_MIRROR = " https://mirrors.aliyun.com/pypi/simple/ " ]
Примечание:
[]
: означает необязательностьv0.2.4
, v0.2.3
...Уведомление:
[]
: означает необязательность- ELASTALERT_VERSION: это версия elastalert. Подробности см. на https://github.com/Yelp/elastalert/releases. Обычно это версия v0.2.4 v0.2.3.
- MIRROR: логическое значение, следует ли включать ускоритель при построении, если true, включить его, если установлено значение true, ALPINE_HOST (по умолчанию Mirrors.aliyun.com) и PIP_MIRROR (по умолчанию https://mirrors.aliyun.com/pypi). /simple/) Не должно быть пустым, если пусто, используйте значение по умолчанию.
- ALPINE_HOST: адрес ускорителя alpine, по умолчанию — Alibaba Cloud Mirrors.aliyun.com.
- PIP_MIRROR: адрес ускорителя pip, по умолчанию — Alibaba Cloud https://mirrors.aliyun.com/pypi/simple/
- Часть elastalert: большинство из них — проекты, основанные на sc250024/docker-elastalert, и я многому у них научился.
- Часть будильника: части будильника и усилителя в основном основаны на другом моем проекте anjia0532/elastalert-wechat-plugin.
добро пожаловать для совершения новых задач
Если у вас есть какие-либо вопросы, пожалуйста, отправляйте новые выпуски, чтобы дать мне обратную связь.
Этот модуль лицензируется по лицензии BSD.
Авторские права (C) 2020-, автор AnJia [email protected].
Все права защищены.
Распространение и использование в исходной и бинарной форме, с модификациями или без них, разрешено при соблюдении следующих условий:
При повторном распространении исходного кода должно сохраняться вышеуказанное уведомление об авторских правах, этот список условий и следующий отказ от ответственности.
При повторном распространении в двоичной форме должно воспроизводиться указанное выше уведомление об авторских правах, этот список условий и следующий отказ от ответственности в документации и/или других материалах, прилагаемых к дистрибутиву.
ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ОБЛАДАТЕЛЯМИ АВТОРСКИХ ПРАВ И УЧАСТНИКАМИ «КАК ЕСТЬ», И ЛЮБЫЕ ЯВНЫЕ ИЛИ ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ ТОВАРНОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ, АВТОРСКИЕ ПРАВА НЕ ОТКАЗЫВАЮТСЯ. ЕР ИЛИ ВКЛАДЧИКИ БЫТЬ Ответственность за любые прямые, косвенные, случайные, особые, образцовые или косвенные убытки (включая, но не ограничиваясь, закупку заместительных товаров или услуг; потеря использования, данные или прибыль; или перерыв в бизнесе), однако, вызвано и по любой теории ОТВЕТСТВЕННОСТИ, КАК В ДОГОВОР, СТРОГО ОТВЕТСТВЕННОСТЬ ИЛИ ПРАВОНАРУШЕНИЕ (ВКЛЮЧАЯ НЕБРЕЖНОСТЬ ИЛИ ДРУГОЕ), ВОЗНИКАЮЩИЕ ЛЮБЫМ СПОСОБОМ ИСПОЛЬЗОВАНИЯ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ДАЖЕ ЕСЛИ ПРЕДУПРЕЖДЕНО О ВОЗМОЖНОСТИ ТАКОГО УЩЕРБА.