X-Pack Watcher memungkinkan Anda memicu aksi pada instans Alibaba Cloud Elasticsearch saat kondisi tertentu terpenuhi. Misalnya, Anda dapat mengonfigurasi sebuah watch yang secara otomatis mengirim pesan DingTalk ketika log error muncul di indeks logs.
Ikhtisar fitur
X-Pack Watcher terdiri dari empat komponen utama: pemicu (trigger) yang menentukan seberapa sering watch dijalankan, input yang mengambil data dari kluster, kondisi (condition) yang mengevaluasi apakah data tersebut melebihi ambang batas peringatan, dan aksi (actions) yang dieksekusi saat kondisi terpenuhi, seperti mengirim notifikasi webhook.
Prasyarat
Anda telah membuat instans Alibaba Cloud Elasticsearch. Untuk informasi selengkapnya, lihat Buat instans Alibaba Cloud Elasticsearch.
CatatanUntuk arsitektur jaringan lama, X-Pack Watcher hanya mendukung instans Elasticsearch dengan zona ketersediaan tunggal. Instans multi-zona ketersediaan tidak didukung.
Untuk arsitektur jaringan baru, Anda harus mengonfigurasi koneksi PrivateLink untuk instans agar melewati pembatasan jaringan. Untuk informasi selengkapnya, lihat Konfigurasikan koneksi PrivateLink untuk instans.
Untuk informasi lebih lanjut tentang arsitektur jaringan, lihat [Pemberitahuan] Penyesuaian arsitektur jaringan.
Anda telah mengaktifkan X-Pack Watcher untuk instans Elasticsearch Anda. Untuk informasi selengkapnya, lihat Konfigurasikan parameter YML.
Anda telah membuat instans ECS di virtual private cloud (VPC) Anda. Untuk informasi selengkapnya, lihat Buat instans menggunakan pengaturan kustom.
CatatanX-Pack Watcher pada Alibaba Cloud Elasticsearch tidak dapat mengakses internet publik secara langsung. Komunikasi dilakukan melalui private endpoint instans Anda dalam VPC. Oleh karena itu, instans ECS di VPC Anda harus memiliki akses ke internet publik, baik dengan menetapkan Elastic IP (EIP) atau dengan mengonfigurasi source network address translation (SNAT). Untuk informasi selengkapnya, lihat Asosiasikan EIP atau Konfigurasikan SNAT.
Prosedur
Langkah 1: Buat dan konfigurasikan bot DingTalk
Buat grup DingTalk untuk menerima peringatan.
Di pojok kanan atas grup, klik ikon
. Di panel Group Settings, klik Bot.Di kotak dialog Robot Management , klik Add Robot, pilih Custom, lalu klik Add.
Masukkan Robot Name, pilih Custom Keywords, lalu masukkan kata kunci Anda.
PentingKata kunci tersebut harus disertakan dalam pesan peringatan yang Anda konfigurasi.
Pilih I have read and agree to the "Custom Robot Service and Disclaimer Terms", lalu klik Complete.
Di samping Webhook, klik Copy untuk menyalin URL webhook bot.
Jaga kerahasiaan URL webhook tersebut. Membagikannya di situs web eksternal menimbulkan risiko keamanan.
Langkah 2: Konfigurasikan proxy NGINX dan security group ECS
Konfigurasikan proxy NGINX pada instans ECS Anda.
X-Pack Watcher mengirim peringatan ke proxy NGINX pada instans ECS Anda, yang kemudian meneruskannya ke DingTalk atau WeCom.
Instal NGINX pada instans ECS.
Konfigurasikan file nginx.conf.
Ganti bagian
serverdalam file nginx.conf dengan konfigurasi berikut.server { listen 8080;# Port listener server_name localhost;# Nama domain index index.html index.htm index.php; root /usr/local/webserver/nginx/html;# Direktori situs location ~ .*\.(php|php5)?$ { #fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ { expires 30d; # access_log off; } location / { proxy_pass <Webhook URL>; } location ~ .*\.(js|css)?$ { expires 15d; # access_log off; } access_log off; }Ganti <Webhook URL> dengan URL webhook bot DingTalk yang Anda salin di Langkah 1.
Muat ulang file konfigurasi dan restart NGINX.
/usr/local/webserver/nginx/sbin/nginx -s reload # Muat ulang file konfigurasi /usr/local/webserver/nginx/sbin/nginx -s reopen # Restart NGINX
Konfigurasikan security group ECS.
Izinkan lalu lintas masuk (inbound traffic) dari instans Alibaba Cloud Elasticsearch Anda ke proxy NGINX pada instans ECS.
Login ke Konsol ECS Alibaba Cloud.
Di panel navigasi kiri, pilih .
Di halaman Cluster, klik nama instans target.
Klik tab Security Group.
Di tab Security Groups, klik nama security group target.
Di tab Inbound, klik Add Rule.
Konfigurasikan parameter.
Parameter
Deskripsi
Action
Pilih Permitted.
Priority
Biarkan nilai default.
Protocol
Pilih Custom TCP.
Access Source
Masukkan alamat IP semua node di instans Alibaba Cloud Elasticsearch Anda.
CatatanUntuk mendapatkan alamat IP node, lihat Lihat informasi dasar tentang node.
Destination
Masukkan port yang dikonfigurasi NGINX untuk didengarkan. Topik ini menggunakan port 8080 sebagai contoh.
Description
Masukkan deskripsi untuk aturan tersebut.
Klik OK.
Langkah 3: Konfigurasikan peringatan Watcher
Login ke konsol Kibana kluster Elasticsearch Anda.
Untuk petunjuknya, lihat Login ke konsol Kibana.
CatatanContoh di sini menggunakan Elasticsearch V6.7.0. Operasi mungkin sedikit berbeda untuk versi lain.
Di bilah navigasi kiri, pilih .
Di Console, jalankan perintah berikut untuk membuat watch.
Contoh berikut membuat watch bernama
log_error_watch. Watch ini mengkueri indekslogssetiap 10 detik untuk mencari log yang berisierror. Jika ditemukan lebih dari 0 log yang sesuai, peringatan akan dipicu.PUT _xpack/watcher/watch/log_error_watch { "trigger": { "schedule": { "interval": "10s" } }, "input": { "search": { "request": { "indices": ["logs"], "body": { "query": { "match": { "message": "error" } } } } } }, "condition": { "compare": { "ctx.payload.hits.total": { "gt": 0 } } }, "actions" : { "test_issue" : { "webhook" : { "method" : "POST", "url" : "http://<yourAddress>:8080", "body" : "{\"msgtype\": \"text\", \"text\": { \"content\": \"An error log has appeared. Please handle it as soon as possible.\"}}" } } } }Tabel 1. Parameter utama
Parameter
Jenis jaringan
Konfigurasi
urlArsitektur jaringan baru
Atur ke nama domain titik akhir (endpoint). Untuk mendapatkan nama domain titik akhir, lihat Konfigurasikan koneksi PrivateLink untuk instans Alibaba Cloud Elasticsearch.
Arsitektur jaringan lama
Atur ke salah satu alamat berikut:
Alamat IP proxy NGINX: Permintaan diteruskan oleh proxy NGINX dalam VPC yang sama melalui internet publik.
URL webhook bot DingTalk.
bodyArsitektur jaringan baru
Arsitektur jaringan lama
Konfigurasikan parameter ini berdasarkan pengaturan keamanan bot DingTalk.
Misalnya, di Langkah 1: Buat dan konfigurasikan bot DingTalk, jika Anda menetapkan Security Settings ke Custom Keywords dan menambahkan kata kunci kustom error, bot DingTalk hanya akan mendorong pesan peringatan jika bidang content dalam body berisi error.
CatatanJika Anda melihat error
No handler found for uri [/_xpack/watcher/watch/log_error_watch_2] and method [PUT]saat menjalankan perintah, X-Pack Watcher belum diaktifkan untuk instans Alibaba Cloud Elasticsearch Anda. Anda harus mengaktifkannya terlebih dahulu, lalu menjalankan perintah kembali. Untuk informasi selengkapnya, lihat Konfigurasikan parameter YML.
Langkah 4: Verifikasi peringatan
Setelah konfigurasi selesai, grup DingTalk Anda akan menerima pesan seperti An error log has appeared. Please handle it as soon as possible. setiap kali kondisi peringatan dari Langkah 3 terpenuhi.
Jika Anda tidak lagi memerlukan watch tersebut, Anda dapat menjalankan perintah berikut untuk menghapusnya.
DELETE _xpack/watcher/watch/log_error_watch