صور Elastalert docker، تتضمن هذه الصورة البرنامج المساعد Wechat Enterprise Alerter والبرنامج المساعد Dingtalk Alerter
تدمج صورة عامل الإرساء 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 التكوين فار | تقصير | وصف |
---|---|---|---|
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 التكوين فار | تقصير | وصف |
---|---|---|---|
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 | خطأ شنيع | إذا تم التعيين على "صحيح"، فسيتم تشغيل التحسينات بمجرد العثور على تطابق |
ELASTICSEARCH_CA_CERTS | ca_certs | لا توجد مجموعة افتراضية | |
ELASTICSEARCH_CLIENT_CERT | client_cert | لا توجد مجموعة افتراضية | |
ELASTICSEARCH_CLIENT_KEY | client_key | لا توجد مجموعة افتراضية | |
ELASTICSEARCH_PASSWORD | es_password | لا توجد مجموعة افتراضية | |
ELASTICSEARCH_USER | es_username | لا توجد مجموعة افتراضية |
إنففار | Elastalert التكوين فار | تقصير | وصف |
---|---|---|---|
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 | لا توجد مجموعة افتراضية | معرف الطرف (الطرف1،الطرف2...) |
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 | لا توجد مجموعة افتراضية | |
com.exotel | |||
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 | لا توجد مجموعة افتراضية | |
hipchat | |||
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 | لا توجد مجموعة افتراضية | |
com.opsgenie | |||
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 | لا توجد مجموعة افتراضية | |
pagerduty | |||
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 | لا توجد مجموعة افتراضية | |
twilio | |||
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 | لا توجد مجموعة افتراضية | |
com.victorops | |||
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، ALPINE_HOST (افتراضي Mirrors.aliyun.com) وPIP_MIRROR (افتراضي https://mirrors.aliyun.com/pypi /simple/) يجب ألا يكون فارغًا، إذا كان فارغًا، استخدم القيمة الافتراضية
- ALPINE_HOST: عنوان مسرع جبال الألب، الافتراضي هو Alibaba Cloud Mirrors.aliyun.com
- PIP_MIRROR: عنوان مسرع النقطة، الافتراضي هو Alibaba Cloud https://mirrors.aliyun.com/pypi/simple/
- جزء elastalert: معظمها مشاريع تعتمد على sc250024/docker-elastalert، وقد تعلمت منها الكثير.
- جزء الإنذار: تعتمد أجزاء الإنذار والمُحسّن بشكل أساسي على مشروعي الآخر anjia0532/elastalert-wechat-plugin
مرحبا بكم في ارتكاب قضايا جديدة
إذا كان لديك أي أسئلة، يرجى إرسال قضايا جديدة لإعطائي تعليقات.
هذه الوحدة مرخصة بموجب ترخيص BSD.
حقوق الطبع والنشر (C) 2020-، بواسطة AnJia [email protected].
جميع الحقوق محفوظة.
يُسمح بإعادة التوزيع والاستخدام في النماذج المصدرية والثنائية، مع أو بدون تعديل، بشرط استيفاء الشروط التالية:
يجب أن تحتفظ عمليات إعادة توزيع التعليمات البرمجية المصدر بإشعار حقوق الطبع والنشر المذكور أعلاه وقائمة الشروط هذه وإخلاء المسؤولية التالي.
يجب أن تقوم عمليات إعادة التوزيع في شكل ثنائي بإعادة إنتاج إشعار حقوق الطبع والنشر أعلاه وقائمة الشروط وإخلاء المسؤولية التالي في الوثائق و/أو المواد الأخرى المقدمة مع التوزيع.
يتم توفير هذا البرنامج من قبل أصحاب حقوق الطبع والنشر والمساهمين "كما هو" وأي ضمانات صريحة أو ضمنية، بما في ذلك، على سبيل المثال لا الحصر، الضمانات الضمنية للرواج والملاءمة لغرض معين، لا يتم التنازل بأي حال من الأحوال عن حقوق الطبع والنشر حامل أو المساهمين هم مسؤول عن أي أضرار مباشرة أو غير مباشرة أو عرضية أو خاصة أو اتعاظية أو لاحقة (بما في ذلك، على سبيل المثال لا الحصر، شراء سلع أو خدمات بديلة؛ أو فقدان الاستخدام أو البيانات أو الأرباح؛ أو انقطاع الأعمال) أيًا كان سببها وعلى أي نظرية المسؤولية، سواء في العقد أو المسؤولية الصارمة أو الضرر (بما في ذلك الإهمال أو غيره) الذي ينشأ بأي شكل من الأشكال عن استخدام هذا البرنامج، حتى لو تم الإبلاغ عن احتمالية حدوث مثل هذا الضرر.