elastalert Docker-Bilder, dieses Bild enthält das Wechat Enterprise Alerter-Plugin und das Dingtalk Alerter-Plugin
Das elastalert-Docker-Image integriert das WeChat-Enterprise-Konto-Alarm-Plug-in und das DingTalk-Alarm-Plug-in sofort (basierend auf dem Webhook des DingTalk-Gruppenroboters, unterstützt die Signatursicherheitsauthentifizierung und unterstützt Text- und Markdown-Formate).
Alles mithilfe von Umgebungsvariablen verfügbar machen.
Integration mit folgenden externen Diensten über Umgebungsvariablen:
NTP-Synchronisierung und Unterstützung der Änderung der Zeitzone.
Beim Start werden die Abhängigkeiten von Erweiterungen und Warnmeldungen überprüft und installiert.
@timestamp zur Ortszeit versetzen (Zeitzone verwenden) (unterstützt die Änderung von @timestamp entsprechend der lokalen Zeitzone)
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
Diese Variablen werden während des Docker-Builds festgelegt und sind im Allgemeinen für die Ausführung der Kernfunktionen von Elastalert erforderlich.
Die beim Erstellen des Images festgelegten Umgebungsvariablen sind für die Ausführung von Elastalert erforderlich
Envvar | Elastalert-Konfigurationsvariable | Standard | Beschreibung |
---|---|---|---|
ELASTALERT_HOME | N / A | /opt/elastalert | Platzieren Sie Elastalert hier |
SET_CONTAINER_TIMEZONE | N / A | True | Ob die Container-Zeitzone auf ${CONTAINER_TIMEZONE} gesetzt werden soll oder nicht |
CONTAINER_TIMEZONE | N / A | Etc/UTC | Wert der Container-Zeitzone |
ELASTALERT_RULES_DIRECTORY | N / A | ${ELASTALERT_HOME}/rules | Ordner, in dem Elastalert nach Regeln sucht |
ELASTALERT_PLUGIN_DIRECTORY | N / A | ${ELASTALERT_HOME}/elastalert_modules | Ordner, in dem Elastalert nach Warnern sucht |
ELASTALERT_ENHANCEMENT_DIRECTORY | N / A | ${ELASTALERT_HOME}/elastalert_enhancements | Ordner, in dem Elastalert nach Verbesserungen sucht |
ELASTALERT_CONFIG | N / A | ${ELASTALERT_HOME}/config.yaml | Name und Speicherort der Konfigurationsdatei, auf docker-entrypoint.sh verweist, um den Python-Daemon zu starten |
ELASTALERT_INDEX | writeback_index | elastalert_status | Name des Elastalert-Index in Ihrem Elasticsearch-Cluster |
ELASTALERT_SYSTEM_GROUP | N / A | elastalert | Name des Benutzers, der Elastalert ausführt; wird für die Daemon- und Ordnerberechtigungen verwendet |
ELASTALERT_SYSTEM_USER | N / A | elastalert | Name der Gruppe, die Elastalert ausführt; wird für die Daemon- und Ordnerberechtigungen verwendet |
ELASTALERT_VERSION | N / A | 0.1.29 | Version von Elastalert zur Installation von pip |
ELASTICSEARCH_HOST | es_host | elasticsearch | Beschr |
ELASTICSEARCH_PORT | es_port | 9200 | Beschr |
ELASTICSEARCH_USE_SSL | use_ssl | False | Stellen Sie eine Verbindung mit TLS zu Elasticsearch her |
ELASTICSEARCH_VERIFY_CERTS | verify_certs | False | Verwenden Sie die SSL-Authentifizierung mit Client-Zertifikaten |
Bei diesen Variablen handelt es sich um Einstellungen, die in der Elastalert-Konfigurationsdatei verfügbar sind. Die meisten dieser Einstellungen gelten für Integrationen von Drittanbietern (JIRA, OpsGenie usw.) oder sind hier dokumentiert: Allgemeine Elastalert-Konfigurationsoptionen
Diese Umgebungsvariablen werden von der Elastalert-Konfigurationsdatei benötigt, hauptsächlich der allgemeinen Konfiguration und der integrierten Konfiguration von Drittanbietern (Wechat, Dingtalk usw.).
Envvar | Elastalert-Konfigurationsvariable | Standard | Beschreibung |
---|---|---|---|
ELASTALERT_RUN_EVERY | run_every: => minutes: | 3 | Anzahl der Minuten, die gewartet werden muss, bevor die Elastalert-Regeln erneut überprüft werden. Derzeit nur als Werte in Minuten verfügbar |
ELASTALERT_BUFFER_TIME | buffer_time: => minutes: | 45 | ElastAlert puffert die Ergebnisse des letzten Zeitraums, falls einige Protokollquellen nicht in Echtzeit vorliegen |
ELASTALERT_AWS_REGION | aws_region | Keine Standardeinstellung | |
ELASTICSEARCH_URL_PREFIX | es_url_prefix | Keine Standardeinstellung | |
ELASTICSEARCH_SEND_GET_BODY_AS | es_send_get_body_as | Keine Standardeinstellung | |
ELASTALERT_TIME_LIMIT | alert_time_limit: => minutes: | 5 | Wenn eine Warnung aus irgendeinem Grund fehlschlägt, versucht ElastAlert erneut, die Warnung zu senden, bis dieser Zeitraum abgelaufen ist |
ELASTALERT_DISABLE_RULES_ON_ERROR | disable_rules_on_error: => Bool | True | Wenn „true“, deaktiviert ElastAlert Regeln, die nicht abgefangene Ausnahmen (nicht EAException) auslösen |
ELASTALERT_MATCH_ENHANCEMENTS | match_enhancements: => array | Kein Standardwert festgelegt | Eine Liste der Erweiterungsmodule, die mit dieser Regel verwendet werden sollen |
ELASTALERT_RUN_ENHANCEMENTS_FIRST | run_enhancements_first: => Bool | FALSCH | Wenn der Wert auf „true“ gesetzt ist, werden Verbesserungen ausgeführt, sobald eine Übereinstimmung gefunden wird |
ELASTICSEARCH_CA_CERTS | ca_certs | Keine Standardeinstellung | |
ELASTICSEARCH_CLIENT_CERT | client_cert | Keine Standardeinstellung | |
ELASTICSEARCH_CLIENT_KEY | client_key | Keine Standardeinstellung | |
ELASTICSEARCH_PASSWORD | es_password | Keine Standardeinstellung | |
ELASTICSEARCH_USER | es_username | Keine Standardeinstellung |
Envvar | Elastalert-Konfigurationsvariable | Standard | Beschreibung |
---|---|---|---|
wechat (WeChat-Unternehmenskonto) | |||
ELASTALERT_WECHAT_CORP_ID | wechat_corp_id | Keine Standardeinstellung | Firmen-ID |
ELASTALERT_WECHAT_SECRET | wechat_secret | Keine Standardeinstellung | Unternehmensgeheimnis |
ELASTALERT_WECHAT_AGENT_ID | wechat_agent_id | Keine Standardeinstellung | Agenten-ID |
ELASTALERT_WECHAT_PARTY_ID | wechat_party_id | Keine Standardeinstellung | Party-ID (Party1, Party2...) |
ELASTALERT_WECHAT_USER_ID | wechat_user_id | Keine Standardeinstellung | Benutzer-ID (Benutzer1, Benutzer2, Benutzer3 ...) |
ELASTALERT_WECHAT_TAG_ID | wechat_tag_id | Keine Standardeinstellung | Tag-ID(tag1,tag2,tag3...) |
dingtalk (DingTalk-Gruppenroboter) | |||
ELASTALERT_DINGTALK_ACCESS_TOKEN | dingtalk_access_token | Keine Standardeinstellung | Dingtalk-Zugriffstoken |
ELASTALERT_DINGTALK_SECURITY_TYPE | dingtalk_security_type | Zeichen | Zeichen/Schlüsselwort/Whitelist |
ELASTALERT_DINGTALK_SECRET | dingtalk_secret | Keine Standardeinstellung | Wenn ELASTALERT_DINGTALK_SECURITY_TYPE ==sign, darf es nicht null sein |
ELASTALERT_DINGTALK_AT_MOBILES | dingtalk_at_mobiles | Keine Standardeinstellung | Telefon-Array an @someone senden |
ELASTALERT_DINGTALK_AT_ALL | dingtalk_at_all | FALSCH | @all oder nicht |
ELASTALERT_DINGTALK_MSGTYPE | dingtalk_msgtype | Text | Text/Markdown |
ELASTALERT_EMAIL | email | Keine Standardeinstellung | |
ELASTALERT_EMAIL_REPLY_TO | email_reply_to | Keine Standardeinstellung | |
ELASTALERT_FROM_ADDR | from_addr | Keine Standardeinstellung | |
ELASTALERT_NOTIFY_EMAIL | notify_email | Keine Standardeinstellung | |
ELASTALERT_SMTP_HOST | smtp_host | Keine Standardeinstellung | |
Exotel | |||
ELASTALERT_EXOTEL_ACCOUNT_SID | exotel_account_sid | Keine Standardeinstellung | |
ELASTALERT_EXOTEL_AUTH_TOKEN | exotel_auth_token | Keine Standardeinstellung | |
ELASTALERT_EXOTEL_FROM_NUMBER | exotel_from_number | Keine Standardeinstellung | |
ELASTALERT_EXOTEL_TO_NUMBER | exotel_to_number | Keine Standardeinstellung | |
Gitter | |||
ELASTALERT_GITTER_MSG_LEVEL | gitter_msg_level | Keine Standardeinstellung | |
ELASTALERT_GITTER_PROXY | gitter_proxy | Keine Standardeinstellung | |
ELASTALERT_GITTER_WEBHOOK_URL | gitter_webhook_url | Keine Standardeinstellung | |
Hipchat | |||
ELASTALERT_HIPCHAT_AUTH_TOKEN | hipchat_auth_token | Keine Standardeinstellung | |
ELASTALERT_HIPCHAT_DOMAIN | hipchat_domain | Keine Standardeinstellung | |
ELASTALERT_HIPCHAT_FROM | hipchat_from | Keine Standardeinstellung | |
ELASTALERT_HIPCHAT_IGNORE_SSL_ERRORS | hipchat_ignore_ssl_errors | Keine Standardeinstellung | |
ELASTALERT_HIPCHAT_NOTIFY | hipchat_notify | Keine Standardeinstellung | |
ELASTALERT_HIPCHAT_ROOM_ID | hipchat_room_id | Keine Standardeinstellung | |
jira | |||
ELASTALERT_JIRA_ACCOUNT_FILE | jira_account_file | Keine Standardeinstellung | |
ELASTALERT_JIRA_ASSIGNEE | jira_assignee | Keine Standardeinstellung | |
ELASTALERT_JIRA_BUMP_IN_STATUSES | jira_bump_in_statuses | Keine Standardeinstellung | |
ELASTALERT_JIRA_BUMP_NOT_IN_STATUSES | jira_bump_not_in_statuses | Keine Standardeinstellung | |
ELASTALERT_JIRA_BUMP_TICKETS | jira_bump_tickets | Keine Standardeinstellung | |
ELASTALERT_JIRA_COMPONENT | jira_component | Keine Standardeinstellung | |
ELASTALERT_JIRA_COMPONENTS | jira_components | Keine Standardeinstellung | |
ELASTALERT_JIRA_ISSUETYPE | jira_issuetype | Keine Standardeinstellung | |
ELASTALERT_JIRA_LABEL | jira_label | Keine Standardeinstellung | |
ELASTALERT_JIRA_LABELS | jira_labels | Keine Standardeinstellung | |
ELASTALERT_JIRA_MAX_AGE | jira_max_age | Keine Standardeinstellung | |
ELASTALERT_JIRA_PROJECT | jira_project | Keine Standardeinstellung | |
ELASTALERT_JIRA_SERVER | jira_server | Keine Standardeinstellung | |
ELASTALERT_JIRA_WATCHERS | jira_watchers | Keine Standardeinstellung | |
opsgenie | |||
ELASTALERT_OPSGENIE_ACCOUNT | opsgenie_account | Keine Standardeinstellung | |
ELASTALERT_OPSGENIE_ADDR | opsgenie_addr | Keine Standardeinstellung | |
ELASTALERT_OPSGENIE_ALIAS | opsgenie_alias | Keine Standardeinstellung | |
ELASTALERT_OPSGENIE_KEY | opsgenie_key | Keine Standardeinstellung | |
ELASTALERT_OPSGENIE_MESSAGE | opsgenie_message | Keine Standardeinstellung | |
ELASTALERT_OPSGENIE_PROXY | opsgenie_proxy | Keine Standardeinstellung | |
ELASTALERT_OPSGENIE_RECIPIENTS | opsgenie_recipients | Keine Standardeinstellung | |
ELASTALERT_OPSGENIE_TAGS | opsgenie_tags | Keine Standardeinstellung | |
ELASTALERT_OPSGENIE_TEAMS | opsgenie_teams | Keine Standardeinstellung | |
Pagerpflicht | |||
ELASTALERT_PAGERDUTY_CLIENT_NAME | pagerduty_client_name | Keine Standardeinstellung | |
ELASTALERT_PAGERDUTY_EVENT_TYPE | pagerduty_event_type | Keine Standardeinstellung | |
ELASTALERT_PAGERDUTY_SERVICE_KEY | pagerduty_service_key | Keine Standardeinstellung | |
locker | |||
ELASTALERT_SLACK_EMOJI_OVERRIDE | slack_emoji_override | Keine Standardeinstellung | |
ELASTALERT_SLACK_ICON_URL_OVERRIDE | slack_icon_url_override | Keine Standardeinstellung | |
ELASTALERT_SLACK_MSG_COLOR | slack_msg_color | Keine Standardeinstellung | |
ELASTALERT_SLACK_PARSE_OVERRIDE | slack_parse_override | Keine Standardeinstellung | |
ELASTALERT_SLACK_TEXT_STRING | slack_text_string | Keine Standardeinstellung | |
ELASTALERT_SLACK_USERNAME_OVERRIDE | slack_username_override | Keine Standardeinstellung | |
ELASTALERT_SLACK_WEBHOOK_URL | slack_webhook_url | Keine Standardeinstellung | |
Telegramm | |||
ELASTALERT_TELEGRAM_API_URL | telegram_api_url | Keine Standardeinstellung | |
ELASTALERT_TELEGRAM_BOT_TOKEN | telegram_bot_token | Keine Standardeinstellung | |
ELASTALERT_TELEGRAM_ROOM_ID | telegram_room_id | Keine Standardeinstellung | |
Twilio | |||
ELASTALERT_TWILIO_ACCOUNT_SID | twilio_account_sid | Keine Standardeinstellung | |
ELASTALERT_TWILIO_AUTH_TOKEN | twilio_auth_token | Keine Standardeinstellung | |
ELASTALERT_TWILIO_FROM_NUMBER | twilio_from_number | Keine Standardeinstellung | |
ELASTALERT_TWILIO_TO_NUMBER | twilio_to_number | Keine Standardeinstellung | |
Victorops | |||
ELASTALERT_VICTOROPS_API_KEY | victorops_api_key | Keine Standardeinstellung | |
ELASTALERT_VICTOROPS_ENTITY_DISPLAY_NAME | victorops_entity_display_name | Keine Standardeinstellung | |
ELASTALERT_VICTOROPS_MESSAGE_TYPE | victorops_message_type | Keine Standardeinstellung | |
ELASTALERT_VICTOROPS_ROUTING_KEY | victorops_routing_key | Keine Standardeinstellung |
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/ " ]
Notiz:
[]
: bedeutet optionalv0.2.4
, v0.2.3
...Beachten:
[]
: bedeutet optional- ELASTALERT_VERSION: Es handelt sich um die Version von elastalert. Weitere Informationen finden Sie unter https://github.com/Yelp/elastalert/releases. Normalerweise handelt es sich dabei um Version 0.2.4 und Version 0.2.3
- MIRROR: ist ein boolescher Wert, der angibt, ob der Beschleuniger beim Erstellen aktiviert werden soll. Wenn er wahr ist, aktivieren Sie ihn, wenn er auf wahr gesetzt ist, ALPINE_HOST (Standard: Mirrors.aliyun.com) und PIP_MIRROR (Standard: https://mirrors.aliyun.com/pypi). /simple/) Darf nicht leer sein. Wenn leer, verwenden Sie den Standardwert
- ALPINE_HOST: Alpine Accelerator-Adresse, der Standardwert ist Alibaba Cloud Mirrors.aliyun.com
- PIP_MIRROR: Pip-Beschleunigeradresse, der Standardwert ist Alibaba Cloud https://mirrors.aliyun.com/pypi/simple/
- elastalert-Teil: Die meisten davon sind Projekte, die auf sc250024/docker-elastalert basieren, und ich habe viel von ihnen gelernt.
- Alarmteil: Die Alarm- und Enhancer-Teile basieren hauptsächlich auf meinem anderen Projekt anjia0532/elastalert-wechat-plugin
Willkommen, neue Themen zu begehen
Wenn Sie Fragen haben, reichen Sie bitte neue Probleme ein, um mir Feedback zu geben.
Dieses Modul ist unter der BSD-Lizenz lizenziert.
Copyright (C) 2020-, von AnJia [email protected].
Alle Rechte vorbehalten.
Die Weiterverbreitung und Nutzung in Quell- und Binärform, mit oder ohne Änderung, ist zulässig, sofern die folgenden Bedingungen erfüllt sind:
Bei der Weiterverbreitung des Quellcodes müssen der obige Urheberrechtshinweis, diese Liste der Bedingungen und der folgende Haftungsausschluss enthalten sein.
Bei Weitergaben in binärer Form müssen der obige Urheberrechtshinweis, diese Liste der Bedingungen und der folgende Haftungsausschluss in der Dokumentation und/oder anderen mit der Weitergabe bereitgestellten Materialien wiedergegeben werden.
DIESE SOFTWARE WIRD VON DEN COPYRIGHT-INHABERN UND MITARBEITERN „WIE BESEHEN“ ZUR VERFÜGUNG GESTELLT, UND ALLE AUSDRÜCKLICHEN ODER STILLSCHWEIGENDEN GEWÄHRLEISTUNGEN, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE STILLSCHWEIGENDEN GEWÄHRLEISTUNGEN DER MARKTGÄNGIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK, WERDEN IN KEINEM FALL AUSGESCHLOSSEN MITARBEITER SEIN HAFTBAR FÜR JEGLICHE DIREKTEN, INDIREKTEN, ZUFÄLLIGEN, BESONDEREN, EXEMPLARISCHEN ODER FOLGESCHÄDEN (EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE BESCHAFFUNG VON ERSATZGÜTERN ODER -DIENSTLEISTUNGEN, NUTZUNGS-, DATEN- ODER GEWINNVERLUST ODER GESCHÄFTSUNTERBRECHUNG), JEGLICH DER VERURSACHUNG UND AUF JEDER THEORIE DER HAFTUNG, OB IN VERTRAG, VERLETZLICHE HAFTUNG ODER unerlaubte Handlung (EINSCHLIESSLICH FAHRLÄSSIGKEIT ODER ANDERWEITIG), DIE SICH AUS DER NUTZUNG DIESER SOFTWARE ERGEBEN, AUCH WENN AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN HINGEWIESEN WURDE.