Imágenes de elastalert docker, esta imagen incluye el complemento de alerta empresarial Wechat y el complemento de alerta Dingtalk
La imagen de la ventana acoplable elastalert integra el complemento de alarma de cuenta empresarial WeChat y el complemento de alarma DingTalk listos para usar (basado en el webhook del robot del grupo DingTalk, admite autenticación de seguridad de firma y admite formatos de texto y rebajas)
Hacer que todo esté disponible mediante variables de entorno.
Integración con los siguientes servicios externos mediante variables de entorno:
Sincronización NTP y soporte para cambio de zona horaria.
El inicio verifica e instala las dependencias de mejoras y alertas.
Desplazar @timestamp a la hora local (usar zona horaria) (admite la modificación de @timestamp según la zona horaria local)
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
Estas variables se configuran durante la compilación de Docker y generalmente son necesarias para ejecutar la funcionalidad principal de Elastalert.
Las variables de entorno establecidas al crear la imagen son necesarias para ejecutar Elastalert
Envvar | Var. de configuración de elastalert | Por defecto | Descripción |
---|---|---|---|
ELASTALERT_HOME | N / A | /opt/elastalert | Coloque Elastalert en casa aquí |
SET_CONTAINER_TIMEZONE | N / A | True | Si se debe establecer o no la zona horaria del contenedor en ${CONTAINER_TIMEZONE} |
CONTENEDOR_TIMEZONE | N / A | Etc/UTC | Valor de zona horaria del contenedor |
ELASTALERT_RULES_DIRECTORY | N / A | ${ELASTALERT_HOME}/rules | Carpeta donde Elastalert busca reglas |
ELASTALERT_PLUGIN_DIRECTORY | N / A | ${ELASTALERT_HOME}/elastalert_modules | Carpeta donde Elastalert busca alertadores |
ELASTALERT_ENHANCEMENT_DIRECTORY | N / A | ${ELASTALERT_HOME}/elastalert_enhancements | Carpeta donde Elastalert busca mejoras |
ELASTALERT_CONFIG | N / A | ${ELASTALERT_HOME}/config.yaml | Nombre y ubicación del archivo de configuración al que hace referencia docker-entrypoint.sh para iniciar el demonio de Python |
ELASTALERT_INDEX | writeback_index | elastalert_status | Nombre del índice Elastalert en su clúster de Elasticsearch |
ELASTALERT_SYSTEM_GROUP | N / A | elastalert | Nombre del usuario que ejecuta Elastalert utilizado para el demonio y los permisos de carpeta; |
ELASTALERT_SYSTEM_USER | N / A | elastalert | Nombre del grupo que ejecuta Elastalert utilizado para el demonio y los permisos de carpeta; |
ELASTALERT_VERSION | N / A | 0.1.29 | Versión de Elastalert para instalar desde pip |
ELASTICSEARCH_HOST | es_host | elasticsearch | Descripción |
ELASTICSEARCH_PORT | es_port | 9200 | Descripción |
ELASTICSEARCH_USE_SSL | use_ssl | False | Conéctese con TLS a Elasticsearch |
ELASTICSEARCH_VERIFY_CERTS | verify_certs | False | Utilice la autenticación SSL con certificados de cliente |
Estas variables son configuraciones disponibles en el archivo de configuración de Elastalert. La mayoría de estas configuraciones se aplican a integraciones de terceros (JIRA, OpsGenie, etc.), o están documentadas aquí: Opciones de configuración comunes de Elastalert.
Estas variables de entorno son requeridas por el archivo de configuración de Elastalert, principalmente la configuración general y la configuración integrada de terceros (Wechat, dingtalk, etc.)
Envvar | Var. de configuración de elastalert | Por defecto | Descripción |
---|---|---|---|
ELASTALERT_RUN_EVERY | run_every: => minutes: | 3 | Número de minutos que se deben esperar antes de volver a verificar las reglas de Elastalert. Actualmente solo están disponibles como valores en minutos. |
ELASTALERT_BUFFER_TIME | buffer_time: => minutes: | 45 | ElastAlert almacenará en búfer los resultados del período de tiempo más reciente, en caso de que algunas fuentes de registro no estén en tiempo real. |
ELASTALERT_AWS_REGION | aws_region | Sin configuración predeterminada | |
ELASTICSEARCH_URL_PREFIX | es_url_prefix | Sin configuración predeterminada | |
ELASTICSEARCH_SEND_GET_BODY_AS | es_send_get_body_as | Sin configuración predeterminada | |
ELASTALERT_TIME_LIMIT | alert_time_limit: => minutes: | 5 | Si una alerta falla por algún motivo, ElastAlert volverá a intentar enviar la alerta hasta que haya transcurrido este período de tiempo. |
ELASTALERT_DISABLE_RULES_ON_ERROR | disable_rules_on_error: => Bool | True | Si es verdadero, ElastAlert deshabilitará las reglas que generan excepciones no detectadas (no EAException) |
ELASTALERT_MATCH_ENHANCEMENTS | match_enhancements: => array | Sin configuración predeterminada | Una lista de módulos de mejora para usar con esta regla |
ELASTALERT_RUN_ENHANCEMENTS_FIRST | run_enhancements_first: => Bool | FALSO | Si se establece en verdadero, las mejoras se ejecutarán tan pronto como se encuentre una coincidencia. |
ELASTICSEARCH_CA_CERTS | ca_certs | Sin configuración predeterminada | |
ELASTICSEARCH_CLIENT_CERT | client_cert | Sin configuración predeterminada | |
ELASTICSEARCH_CLIENT_KEY | client_key | Sin configuración predeterminada | |
ELASTICSEARCH_PASSWORD | es_password | Sin configuración predeterminada | |
ELASTICSEARCH_USER | es_username | Sin configuración predeterminada |
Envvar | Var. de configuración de elastalert | Por defecto | Descripción |
---|---|---|---|
wechat (cuenta empresarial de WeChat) | |||
ELASTALERT_WECHAT_CORP_ID | wechat_corp_id | Sin configuración predeterminada | identificación de la empresa |
ELASTALERT_WECHAT_SECRET | wechat_secret | Sin configuración predeterminada | secreto corporativo |
ELASTALERT_WECHAT_AGENT_ID | wechat_agent_id | Sin configuración predeterminada | identificación del agente |
ELASTALERT_WECHAT_PARTY_ID | wechat_party_id | Sin configuración predeterminada | ID de grupo (grupo1, grupo2...) |
ELASTALERT_WECHAT_USER_ID | wechat_user_id | Sin configuración predeterminada | ID de usuario (usuario1,usuario2,usuario3...) |
ELASTALERT_WECHAT_TAG_ID | wechat_tag_id | Sin configuración predeterminada | ID de etiqueta (etiqueta1,etiqueta2,etiqueta3...) |
dingtalk (robot del grupo DingTalk) | |||
ELASTALERT_DINGTALK_ACCESS_TOKEN | dingtalk_access_token | Sin configuración predeterminada | token de acceso a dingtalk |
ELASTALERT_DINGTALK_SECURITY_TYPE | dingtalk_security_type | firmar | signo/palabra clave/lista blanca |
ELASTALERT_DINGTALK_SECRET | dingtalk_secret | Sin configuración predeterminada | si ELASTALERT_DINGTALK_SECURITY_TYPE == signo, no debe ser nulo |
ELASTALERT_DINGTALK_AT_MOBILES | dingtalk_at_mobiles | Sin configuración predeterminada | matriz del teléfono a @alguien |
ELASTALERT_DINGTALK_AT_ALL | dingtalk_at_all | FALSO | @todos o no |
ELASTALERT_DINGTALK_MSGTYPE | dingtalk_msgtype | texto | texto/rebaja |
Correo electrónico | |||
ELASTALERT_EMAIL | email | Sin configuración predeterminada | |
ELASTALERT_EMAIL_REPLY_TO | email_reply_to | Sin configuración predeterminada | |
ELASTALERT_FROM_ADDR | from_addr | Sin configuración predeterminada | |
ELASTALERT_NOTIFY_EMAIL | notify_email | Sin configuración predeterminada | |
ELASTALERT_SMTP_HOST | smtp_host | Sin configuración predeterminada | |
exotel | |||
ELASTALERT_EXOTEL_ACCOUNT_SID | exotel_account_sid | Sin configuración predeterminada | |
ELASTALERT_EXOTEL_AUTH_TOKEN | exotel_auth_token | Sin configuración predeterminada | |
ELASTALERT_EXOTEL_FROM_NUMBER | exotel_from_number | Sin configuración predeterminada | |
ELASTALERT_EXOTEL_TO_NUMBER | exotel_to_number | Sin configuración predeterminada | |
gitter | |||
ELASTALERT_GITTER_MSG_LEVEL | gitter_msg_level | Sin configuración predeterminada | |
ELASTALERT_GITTER_PROXY | gitter_proxy | Sin configuración predeterminada | |
ELASTALERT_GITTER_WEBHOOK_URL | gitter_webhook_url | Sin configuración predeterminada | |
hip-chat | |||
ELASTALERT_HIPCHAT_AUTH_TOKEN | hipchat_auth_token | Sin configuración predeterminada | |
ELASTALERT_HIPCHAT_DOMAIN | hipchat_domain | Sin configuración predeterminada | |
ELASTALERT_HIPCHAT_FROM | hipchat_from | Sin configuración predeterminada | |
ELASTALERT_HIPCHAT_IGNORE_SSL_ERRORS | hipchat_ignore_ssl_errors | Sin configuración predeterminada | |
ELASTALERT_HIPCHAT_NOTIFY | hipchat_notify | Sin configuración predeterminada | |
ELASTALERT_HIPCHAT_ROOM_ID | hipchat_room_id | Sin configuración predeterminada | |
jira | |||
ELASTALERT_JIRA_ACCOUNT_FILE | jira_account_file | Sin configuración predeterminada | |
ELASTALERT_JIRA_ASSIGNEE | jira_assignee | Sin configuración predeterminada | |
ELASTALERT_JIRA_BUMP_IN_STATUSES | jira_bump_in_statuses | Sin configuración predeterminada | |
ELASTALERT_JIRA_BUMP_NOT_IN_STATUSES | jira_bump_not_in_statuses | Sin configuración predeterminada | |
ELASTALERT_JIRA_BUMP_TICKETS | jira_bump_tickets | Sin configuración predeterminada | |
ELASTALERT_JIRA_COMPONENT | jira_component | Sin configuración predeterminada | |
ELASTALERT_JIRA_COMPONENTS | jira_components | Sin configuración predeterminada | |
ELASTALERT_JIRA_ISSUETYPE | jira_issuetype | Sin configuración predeterminada | |
ELASTALERT_JIRA_LABEL | jira_label | Sin configuración predeterminada | |
ELASTALERT_JIRA_LABELS | jira_labels | Sin configuración predeterminada | |
ELASTALERT_JIRA_MAX_AGE | jira_max_age | Sin configuración predeterminada | |
ELASTALERT_JIRA_PROJECT | jira_project | Sin configuración predeterminada | |
ELASTALERT_JIRA_SERVER | jira_server | Sin configuración predeterminada | |
ELASTALERT_JIRA_WATCHERS | jira_watchers | Sin configuración predeterminada | |
opsgenie | |||
ELASTALERT_OPSGENIE_ACCOUNT | opsgenie_account | Sin configuración predeterminada | |
ELASTALERT_OPSGENIE_ADDR | opsgenie_addr | Sin configuración predeterminada | |
ELASTALERT_OPSGENIE_ALIAS | opsgenie_alias | Sin configuración predeterminada | |
ELASTALERT_OPSGENIE_KEY | opsgenie_key | Sin configuración predeterminada | |
ELASTALERT_OPSGENIE_MESSAGE | opsgenie_message | Sin configuración predeterminada | |
ELASTALERT_OPSGENIE_PROXY | opsgenie_proxy | Sin configuración predeterminada | |
ELASTALERT_OPSGENIE_RECIPIENTS | opsgenie_recipients | Sin configuración predeterminada | |
ELASTALERT_OPSGENIE_TAGS | opsgenie_tags | Sin configuración predeterminada | |
ELASTALERT_OPSGENIE_TEAMS | opsgenie_teams | Sin configuración predeterminada | |
buscapersonas | |||
ELASTALERT_PAGERDUTY_CLIENT_NAME | pagerduty_client_name | Sin configuración predeterminada | |
ELASTALERT_PAGERDUTY_EVENT_TYPE | pagerduty_event_type | Sin configuración predeterminada | |
ELASTALERT_PAGERDUTY_SERVICE_KEY | pagerduty_service_key | Sin configuración predeterminada | |
flojo | |||
ELASTALERT_SLACK_EMOJI_OVERRIDE | slack_emoji_override | Sin configuración predeterminada | |
ELASTALERT_SLACK_ICON_URL_OVERRIDE | slack_icon_url_override | Sin configuración predeterminada | |
ELASTALERT_SLACK_MSG_COLOR | slack_msg_color | Sin configuración predeterminada | |
ELASTALERT_SLACK_PARSE_OVERRIDE | slack_parse_override | Sin configuración predeterminada | |
ELASTALERT_SLACK_TEXT_STRING | slack_text_string | Sin configuración predeterminada | |
ELASTALERT_SLACK_USERNAME_OVERRIDE | slack_username_override | Sin configuración predeterminada | |
ELASTALERT_SLACK_WEBHOOK_URL | slack_webhook_url | Sin configuración predeterminada | |
telegrama | |||
ELASTALERT_TELEGRAM_API_URL | telegram_api_url | Sin configuración predeterminada | |
ELASTALERT_TELEGRAMA_BOT_TOKEN | telegram_bot_token | Sin configuración predeterminada | |
ELASTALERT_TELEGRAM_ROOM_ID | telegram_room_id | Sin configuración predeterminada | |
tilio | |||
ELASTALERT_TWILIO_ACCOUNT_SID | twilio_account_sid | Sin configuración predeterminada | |
ELASTALERT_TWILIO_AUTH_TOKEN | twilio_auth_token | Sin configuración predeterminada | |
ELASTALERT_TWILIO_FROM_NUMBER | twilio_from_number | Sin configuración predeterminada | |
ELASTALERT_TWILIO_TO_NUMBER | twilio_to_number | Sin configuración predeterminada | |
victorioso | |||
ELASTALERT_VICTOROPS_API_KEY | victorops_api_key | Sin configuración predeterminada | |
ELASTALERT_VICTOROPS_ENTITY_DISPLAY_NAME | victorops_entity_display_name | Sin configuración predeterminada | |
ELASTALERT_VICTOROPS_MESSAGE_TYPE | victorops_message_type | Sin configuración predeterminada | |
ELASTALERT_VICTOROPS_ROUTING_KEY | victorops_routing_key | Sin configuración predeterminada |
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/ " ]
Nota:
[]
: significa opcionalv0.2.4
, v0.2.3
...Aviso:
[]
: significa opcional- ELASTALERT_VERSION: Es la versión de elastalert. Para más detalles, consulte https://github.com/Yelp/elastalert/releases. Generalmente es v0.2.4 v0.2.3.
- MIRROR: es un valor bool, si se debe habilitar el acelerador al compilar, si es verdadero, habilítelo, si está configurado en verdadero, ALPINE_HOST (predeterminado mirrors.aliyun.com) y PIP_MIRROR (predeterminado https://mirrors.aliyun.com/pypi /simple/) No debe estar vacío; si está vacío, use el valor predeterminado
- ALPINE_HOST: dirección del acelerador alpino, el valor predeterminado es Alibaba Cloud mirrors.aliyun.com
- PIP_MIRROR: dirección del acelerador de pip, el valor predeterminado es Alibaba Cloud https://mirrors.aliyun.com/pypi/simple/
- Parte de elastalert: la mayoría de ellos son proyectos basados en sc250024/docker-elastalert, y aprendí mucho de ellos.
- Parte de alarma: Las partes de alarma y potenciador se basan principalmente en mi otro proyecto anjia0532/elastalert-wechat-plugin
bienvenido a cometer nuevos problemas
Si tiene alguna pregunta, envíe nuevos números para enviarme sus comentarios.
Este módulo tiene la licencia BSD.
Copyright (C) 2020-, por AnJia [email protected].
Reservados todos los derechos.
Se permite la redistribución y el uso en formato fuente y binario, con o sin modificación, siempre que se cumplan las siguientes condiciones:
Las redistribuciones del código fuente deben conservar el aviso de derechos de autor anterior, esta lista de condiciones y el siguiente descargo de responsabilidad.
Las redistribuciones en formato binario deben reproducir el aviso de derechos de autor anterior, esta lista de condiciones y la siguiente exención de responsabilidad en la documentación y/u otros materiales proporcionados con la distribución.
ESTE SOFTWARE ES PROPORCIONADO POR LOS TITULARES DE LOS DERECHOS DE AUTOR Y LOS COLABORADORES "TAL CUAL" Y CUALQUIER GARANTÍA EXPRESA O IMPLÍCITA, INCLUYENDO, PERO NO LIMITADO A, LAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD E IDONEIDAD PARA UN PROPÓSITO PARTICULAR SE RENUNCIA EN NINGÚN CASO EL TITULAR DE LOS DERECHOS DE AUTOR O. LOS COLABORADORES SER RESPONSABLE DE CUALQUIER DAÑO DIRECTO, INDIRECTO, INCIDENTAL, ESPECIAL, EJEMPLAR O CONSECUENTE (INCLUYENDO, PERO NO LIMITADO A, LA ADQUISICIÓN DE BIENES O SERVICIOS SUSTITUTOS; PÉRDIDA DE USO, DATOS O GANANCIAS; O INTERRUPCIÓN COMERCIAL) CUALQUIER CAUSA Y BAJO CUALQUIER TEORÍA DE RESPONSABILIDAD, YA SEA EN CONTRATO, RESPONSABILIDAD ESTRICTA O AGRAVIO (INCLUYENDO NEGLIGENCIA O DE OTRA MANERA) QUE SURJA DE CUALQUIER MANERA DEL USO DE ESTE SOFTWARE, INCLUSO SI SE ADVIERTE DE LA POSIBILIDAD DE DICHO DAÑO.