gambar buruh pelabuhan elastalert, gambar ini termasuk plugin peringatan perusahaan Wechat dan plugin peringatan Dingtalk
Gambar buruh pelabuhan elastalert mengintegrasikan plug-in alarm akun perusahaan WeChat dan plug-in alarm DingTalk (berdasarkan webhook robot grup DingTalk, mendukung otentikasi keamanan tanda tangan, dan mendukung format teks dan penurunan harga)
Membuat semuanya tersedia menggunakan variabel lingkungan.
Integrasi dengan layanan eksternal berikut melalui variabel lingkungan:
Sinkronisasi NTP dan dukungan perubahan zona waktu.
Startup memeriksa dan menginstal dependensi peningkatan dan peringatan.
Offset @timestamp ke waktu lokal (Gunakan zona waktu) (mendukung modifikasi @timestamp sesuai zona waktu lokal)
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
Variabel-variabel ini diatur selama pembuatan Docker, dan umumnya diperlukan untuk menjalankan fungsionalitas inti Elastalert.
Variabel lingkungan yang disetel saat membuat image diperlukan untuk menjalankan Elastalert
Envvar | Konfigurasi elastalert var | Bawaan | Keterangan |
---|---|---|---|
ELASTALERT_HOME | T/A | /opt/elastalert | Tempatkan rumah Elastalert di sini |
SET_CONTAINER_TIMEZONE | T/A | True | Apakah akan menyetel zona waktu penampung ke ${CONTAINER_TIMEZONE} atau tidak |
CONTAINER_TIMEZONE | T/A | Etc/UTC | Nilai zona waktu kontainer |
ELASTALERT_RULES_DIRECTORY | T/A | ${ELASTALERT_HOME}/rules | Folder tempat Elastalert memindai aturan |
ELASTALERT_PLUGIN_DIRECTORY | T/A | ${ELASTALERT_HOME}/elastalert_modules | Folder tempat Elastalert memindai pemberi peringatan |
ELASTALERT_ENHANCEMENT_DIRECTORY | T/A | ${ELASTALERT_HOME}/elastalert_enhancements | Folder tempat Elastalert memindai peningkatan |
ELASTALERT_CONFIG | T/A | ${ELASTALERT_HOME}/config.yaml | Nama dan lokasi file konfigurasi yang direferensikan oleh docker-entrypoint.sh untuk memulai daemon Python |
ELASTALERT_INDEX | writeback_index | elastalert_status | Nama indeks Elastalert di klaster Elasticsearch Anda |
ELASTALERT_SYSTEM_GROUP | T/A | elastalert | Nama pengguna yang menjalankan Elastalert; digunakan untuk daemon dan izin folder |
ELASTALERT_SYSTEM_USER | T/A | elastalert | Nama grup yang menjalankan Elastalert; digunakan untuk daemon dan izin folder |
ELASTALERT_VERSION | T/A | 0.1.29 | Versi Elastalert untuk diinstal dari pip |
ELASTICSEARCH_HOST | es_host | elasticsearch | Des |
ELASTISEARCH_PORT | es_port | 9200 | Des |
ELASTICSEARCH_USE_SSL | use_ssl | False | Terhubung dengan TLS ke Elasticsearch |
ELASTICSEARCH_VERIFY_CERTS | verify_certs | False | Gunakan otentikasi SSL dengan sertifikat klien |
Variabel-variabel ini adalah pengaturan yang tersedia di file konfigurasi Elastalert. Sebagian besar pengaturan ini berlaku untuk integrasi pihak ketiga (JIRA, OpsGenie, dll), atau hal-hal yang didokumentasikan di sini: Opsi konfigurasi umum Elastalert.
Variabel lingkungan ini diperlukan oleh file konfigurasi Elastalert, terutama konfigurasi umum dan konfigurasi terintegrasi tiga pihak (Wechat, dingtalk, dll.)
Envvar | Konfigurasi elastalert var | Bawaan | Keterangan |
---|---|---|---|
ELASTALERT_RUN_EVERY | run_every: => minutes: | 3 | Jumlah menit untuk menunggu sebelum memeriksa ulang aturan Elastalert. Saat ini hanya tersedia dalam nilai menit |
ELASTALERT_BUFFER_TIME | buffer_time: => minutes: | 45 | ElastAlert akan menyangga hasil dari periode waktu terkini, jika beberapa sumber log tidak dalam waktu nyata |
ELASTALERT_AWS_REGION | aws_region | Tidak ada set default | |
ELASTICSEARCH_URL_PREFIX | es_url_prefix | Tidak ada set default | |
ELASTICSEARCH_SEND_GET_BODY_AS | es_send_get_body_as | Tidak ada set default | |
ELASTALERT_TIME_LIMIT | alert_time_limit: => minutes: | 5 | Jika peringatan gagal karena alasan tertentu, ElastAlert akan mencoba mengirimkan peringatan lagi hingga jangka waktu ini berlalu |
ELASTALERT_DISABLE_RULES_ON_ERROR | disable_rules_on_error: => Bool | True | Jika benar, ElastAlert akan menonaktifkan aturan yang memunculkan pengecualian yang tidak tertangkap (bukan EAException). |
ELASTALERT_MATCH_ENHANCEMENTS | match_enhancements: => array | Tidak ada set Default | Daftar modul penyempurnaan yang akan digunakan dengan aturan ini |
ELASTALERT_RUN_ENHANCEMENTS_FIRST | run_enhancements_first: => Bool | PALSU | Jika disetel ke true, penyempurnaan akan dijalankan segera setelah kecocokan ditemukan |
ELASTICSEARCH_CA_CERTS | ca_certs | Tidak ada set default | |
ELASTICSEARCH_CLIENT_CERT | client_cert | Tidak ada set default | |
ELASTICSEARCH_CLIENT_KEY | client_key | Tidak ada set default | |
ELASTICSEARCH_PASSWORD | es_password | Tidak ada set default | |
ELASTICSEARCH_USER | es_username | Tidak ada set default |
Envvar | Konfigurasi elastalert var | Bawaan | Keterangan |
---|---|---|---|
wechat (akun perusahaan WeChat) | |||
ELASTALERT_WECHAT_CORP_ID | wechat_corp_id | Tidak ada set default | id perusahaan |
ELASTALERT_WECHAT_SECRET | wechat_secret | Tidak ada set default | rahasia perusahaan |
ELASTALERT_WECHAT_AGENT_ID | wechat_agent_id | Tidak ada set default | identitas agen |
ELASTALERT_WECHAT_PARTY_ID | wechat_party_id | Tidak ada set default | id pesta (pesta1,pesta2...) |
ELASTALERT_WECHAT_USER_ID | wechat_user_id | Tidak ada set default | id pengguna (pengguna1,pengguna2,pengguna3...) |
ELASTALERT_WECHAT_TAG_ID | wechat_tag_id | Tidak ada set default | tanda pengenal(tag1,tag2,tag3...) |
dingtalk (robot grup DingTalk) | |||
ELASTALERT_DINGTALK_ACCESS_TOKEN | dingtalk_access_token | Tidak ada set default | token akses dingtalk |
ELASTALERT_DINGTALK_SECURITY_TYPE | dingtalk_security_type | tanda | tanda tangan/kata kunci/daftar putih |
ELASTALERT_DINGTALK_SECRET | dingtalk_secret | Tidak ada set default | jika ELASTALERT_DINGTALK_SECURITY_TYPE ==tanda, tidak boleh nol |
ELASTALERT_DINGTALK_AT_MOBILES | dingtalk_at_mobiles | Tidak ada set default | array telepon ke @seseorang |
ELASTALERT_DINGTALK_AT_ALL | dingtalk_at_all | PALSU | @semua atau tidak |
ELASTALERT_DINGTALK_MSGTYPE | dingtalk_msgtype | teks | teks/penurunan harga |
ELASTALERT_EMAIL | email | Tidak ada set default | |
ELASTALERT_EMAIL_REPLY_TO | email_reply_to | Tidak ada set default | |
ELASTALERT_FROM_ADDR | from_addr | Tidak ada set default | |
ELASTALERT_NOTIFY_EMAIL | notify_email | Tidak ada set default | |
ELASTALERT_SMTP_HOST | smtp_host | Tidak ada set default | |
eksotel | |||
ELASTALERT_EXOTEL_ACCOUNT_SID | exotel_account_sid | Tidak ada set default | |
ELASTALERT_EXOTEL_AUTH_TOKEN | exotel_auth_token | Tidak ada set default | |
ELASTALERT_EXOTEL_FROM_NUMBER | exotel_from_number | Tidak ada set default | |
ELASTALERT_EXOTEL_TO_NUMBER | exotel_to_number | Tidak ada set default | |
gitter | |||
ELASTALERT_GITTER_MSG_LEVEL | gitter_msg_level | Tidak ada set default | |
ELASTALERT_GITTER_PROXY | gitter_proxy | Tidak ada set default | |
ELASTALERT_GITTER_WEBHOOK_URL | gitter_webhook_url | Tidak ada set default | |
obrolan hipchat | |||
ELASTALERT_HIPCHAT_AUTH_TOKEN | hipchat_auth_token | Tidak ada set default | |
ELASTALERT_HIPCHAT_DOMAIN | hipchat_domain | Tidak ada set default | |
ELASTALERT_HIPCHAT_FROM | hipchat_from | Tidak ada set default | |
ELASTALERT_HIPCHAT_IGNORE_SSL_ERRORS | hipchat_ignore_ssl_errors | Tidak ada set default | |
ELASTALERT_HIPCHAT_NOTIFY | hipchat_notify | Tidak ada set default | |
ELASTALERT_HIPCHAT_ROOM_ID | hipchat_room_id | Tidak ada set default | |
jira | |||
ELASTALERT_JIRA_ACCOUNT_FILE | jira_account_file | Tidak ada set default | |
ELASTALERT_JIRA_ASSIGNEE | jira_assignee | Tidak ada set default | |
ELASTALERT_JIRA_BUMP_IN_STATUSES | jira_bump_in_statuses | Tidak ada set default | |
ELASTALERT_JIRA_BUMP_NOT_IN_STATUSES | jira_bump_not_in_statuses | Tidak ada set default | |
ELASTALERT_JIRA_BUMP_TICKETS | jira_bump_tickets | Tidak ada set default | |
ELASTALERT_JIRA_COMPONENT | jira_component | Tidak ada set default | |
ELASTALERT_JIRA_COMPONENTS | jira_components | Tidak ada set default | |
ELASTALERT_JIRA_ISSUETYPE | jira_issuetype | Tidak ada set default | |
ELASTALERT_JIRA_LABEL | jira_label | Tidak ada set default | |
ELASTALERT_JIRA_LABELS | jira_labels | Tidak ada set default | |
ELASTALERT_JIRA_MAX_AGE | jira_max_age | Tidak ada set default | |
ELASTALERT_JIRA_PROJECT | jira_project | Tidak ada set default | |
ELASTALERT_JIRA_SERVER | jira_server | Tidak ada set default | |
ELASTALERT_JIRA_WATCHERS | jira_watchers | Tidak ada set default | |
opsgenie | |||
ELASTALERT_OPSGENIE_ACCOUNT | opsgenie_account | Tidak ada set default | |
ELASTALERT_OPSGENIE_ADDR | opsgenie_addr | Tidak ada set default | |
ELASTALERT_OPSGENIE_ALIAS | opsgenie_alias | Tidak ada set default | |
ELASTALERT_OPSGENIE_KEY | opsgenie_key | Tidak ada set default | |
ELASTALERT_OPSGENIE_MESSAGE | opsgenie_message | Tidak ada set default | |
ELASTALERT_OPSGENIE_PROXY | opsgenie_proxy | Tidak ada set default | |
ELASTALERT_OPSGENIE_RECIPIENTS | opsgenie_recipients | Tidak ada set default | |
ELASTALERT_OPSGENIE_TAGS | opsgenie_tags | Tidak ada set default | |
ELASTALERT_OPSGENIE_TEAMS | opsgenie_teams | Tidak ada set default | |
tugas halaman | |||
ELASTALERT_PAGERDUTY_CLIENT_NAME | pagerduty_client_name | Tidak ada set default | |
ELASTALERT_PAGERDUTY_EVENT_TYPE | pagerduty_event_type | Tidak ada set default | |
ELASTALERT_PAGERDUTY_SERVICE_KEY | pagerduty_service_key | Tidak ada set default | |
kendur | |||
ELASTALERT_SLACK_EMOJI_OVERRIDE | slack_emoji_override | Tidak ada set default | |
ELASTALERT_SLACK_ICON_URL_OVERRIDE | slack_icon_url_override | Tidak ada set default | |
ELASTALERT_SLACK_MSG_COLOR | slack_msg_color | Tidak ada set default | |
ELASTALERT_SLACK_PARSE_OVERRIDE | slack_parse_override | Tidak ada set default | |
ELASTALERT_SLACK_TEXT_STRING | slack_text_string | Tidak ada set default | |
ELASTALERT_SLACK_USERNAME_OVERRIDE | slack_username_override | Tidak ada set default | |
ELASTALERT_SLACK_WEBHOOK_URL | slack_webhook_url | Tidak ada set default | |
telegram | |||
ELASTALERT_TELEGRAM_API_URL | telegram_api_url | Tidak ada set default | |
ELASTALERT_TELEGRAM_BOT_TOKEN | telegram_bot_token | Tidak ada set default | |
ELASTALERT_TELEGRAM_ROOM_ID | telegram_room_id | Tidak ada set default | |
twilio | |||
ELASTALERT_TWILIO_ACCOUNT_SID | twilio_account_sid | Tidak ada set default | |
ELASTALERT_TWILIO_AUTH_TOKEN | twilio_auth_token | Tidak ada set default | |
ELASTALERT_TWILIO_FROM_NUMBER | twilio_from_number | Tidak ada set default | |
ELASTALERT_TWILIO_TO_NUMBER | twilio_to_number | Tidak ada set default | |
kemenangan | |||
ELASTALERT_VICTOROPS_API_KEY | victorops_api_key | Tidak ada set default | |
ELASTALERT_VICTOROPS_ENTITY_DISPLAY_NAME | victorops_entity_display_name | Tidak ada set default | |
ELASTALERT_VICTOROPS_MESSAGE_TYPE | victorops_message_type | Tidak ada set default | |
ELASTALERT_VICTOROPS_ROUTING_KEY | victorops_routing_key | Tidak ada set default |
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/ " ]
Catatan:
[]
: berarti opsionalv0.2.4
, v0.2.3
...Melihat:
[]
: berarti opsional- ELASTALERT_VERSION: Ini adalah versi elastalert. Untuk detailnya, lihat https://github.com/Yelp/elastalert/releases. Biasanya v0.2.4 v0.2.3 seperti ini
- MIRROR: adalah nilai bool, apakah akan mengaktifkan akselerator saat membangun, jika benar, aktifkan, jika disetel ke true, ALPINE_HOST (default mirrors.aliyun.com) dan PIP_MIRROR (default https://mirrors.aliyun.com/pypi /simple/) Tidak boleh kosong, jika kosong gunakan nilai default
- ALPINE_HOST: alamat akselerator alpine, defaultnya adalah Alibaba Cloud mirrors.aliyun.com
- PIP_MIRROR: alamat akselerator pip, defaultnya adalah Alibaba Cloud https://mirrors.aliyun.com/pypi/simple/
- bagian elastalert: Kebanyakan dari mereka adalah proyek berdasarkan sc250024/docker-elastalert, dan saya belajar banyak dari mereka.
- Bagian alarm: Bagian alarm dan penambah terutama didasarkan pada proyek saya yang lain anjia0532/elastalert-wechat-plugin
selamat datang untuk melakukan masalah baru
Jika Anda memiliki pertanyaan, kirimkan masalah baru untuk memberi saya masukan.
Modul ini dilisensikan di bawah lisensi BSD.
Hak Cipta (C) 2020-, oleh AnJia [email protected].
Semua hak dilindungi undang-undang.
Redistribusi dan penggunaan dalam bentuk sumber dan biner, dengan atau tanpa modifikasi, diperbolehkan asalkan kondisi berikut terpenuhi:
Pendistribusian ulang kode sumber harus tetap memperhatikan pemberitahuan hak cipta di atas, daftar ketentuan ini, dan penafian berikut.
Redistribusi dalam bentuk biner harus mereproduksi pemberitahuan hak cipta di atas, daftar ketentuan ini dan penafian berikut dalam dokumentasi dan/atau materi lain yang disediakan bersama distribusi.
DALAM KEADAAN APA PUN PEMEGANG HAK CIPTA ATAU KONTRIBUTOR TIDAK BOLEH MENJADI BERTANGGUNG JAWAB ATAS KERUSAKAN LANGSUNG, TIDAK LANGSUNG, INSIDENTAL, KHUSUS, CONTOH, ATAU KONSEKUENSIAL (TERMASUK, NAMUN TIDAK TERBATAS PADA, PENGADAAN BARANG ATAU JASA PENGGANTI; KEHILANGAN PENGGUNAAN, DATA, ATAU KEUNTUNGAN; ATAU GANGGUAN USAHA) APAPUN PENYEBABNYA DAN PADA TEORI APAPUN TANGGUNG JAWAB, BAIK DALAM KONTRAK, TANGGUNG JAWAB KETAT, ATAU HUKUM (TERMASUK KELALAIAN ATAU LAINNYA) YANG TIMBUL DALAM PENGGUNAAN PERANGKAT LUNAK INI, MESKIPUN DIBERITAHU TENTANG KEMUNGKINAN KERUSAKAN TERSEBUT.