Anda dapat menggunakan X-Pack Watcher dengan instans Elasticsearch Alibaba Cloud untuk menjalankan aksi ketika kondisi tertentu terpenuhi. Misalnya, ketika log error muncul di indeks log, sistem dapat secara otomatis mengirim pesan DingTalk. Topik ini menjelaskan cara mengonfigurasi robot DingTalk untuk menerima peringatan X-Pack Watcher.
Prasyarat
Instans Alibaba Cloud Elasticsearch telah dibuat. Untuk informasi selengkapnya, lihat Buat instans Alibaba Cloud Elasticsearch.
CatatanFitur X-Pack Watcher hanya mendukung instans Elasticsearch single-zone yang menggunakan arsitektur jaringan lama. Fitur ini tidak mendukung instans multi-zona.
Untuk arsitektur jaringan baru, Anda harus mengonfigurasi koneksi PrivateLink untuk instans guna melewati pembatasan jaringan. Untuk informasi selengkapnya, lihat Konfigurasi koneksi PrivateLink untuk instans.
Untuk informasi selengkapnya tentang arsitektur jaringan, lihat [Pemberitahuan] Penyesuaian arsitektur jaringan.
Fitur X-Pack Watcher telah diaktifkan untuk instans Elasticsearch. Untuk informasi selengkapnya, lihat Konfigurasi parameter YML.
Instans ECS telah dibuat di VPC Anda. Untuk informasi selengkapnya, lihat Buat instans menggunakan pengaturan kustom.
CatatanFitur X-Pack Watcher Alibaba Cloud Elasticsearch tidak dapat langsung mengakses Internet. Fitur ini harus berkomunikasi menggunakan titik akhir pribadi (private endpoint) instans dalam virtual private cloud (VPC). Oleh karena itu, instans ECS di VPC Anda harus dikaitkan dengan alamat IP elastis (EIP) atau dikonfigurasi dengan source network address translation (SNAT) untuk mengakses Internet. Untuk informasi selengkapnya, lihat Kaitkan EIP atau Konfigurasi SNAT.
Prosedur
Langkah 1: Buat dan konfigurasi robot DingTalk
Buat grup DingTalk untuk menerima peringatan.
Di pojok kanan atas grup, klik ikon
. Pada panel Group Settings, klik Robot.Pada kotak dialog Robot Management, klik Add Robot, pilih Custom, lalu klik Add.
Masukkan Robot Name, pilih Custom Keywords, lalu tentukan kata kunci tersebut.
PentingKata kunci tersebut harus disertakan dalam pesan peringatan yang Anda atur.
Pilih Terms Of Service And Disclaimer For Custom Robots lalu klik Done.
Untuk menyalin URL webhook robot, klik Copy di samping Webhook.
Jaga kerahasiaan URL webhook untuk penggunaan di masa mendatang. Jangan memposting URL tersebut di situs web eksternal. Kebocoran URL webhook menimbulkan risiko keamanan.
Langkah 2: Konfigurasi proxy Nginx dan security group ECS
Konfigurasikan proxy Nginx pada instans ECS.
Proxy Nginx meneruskan pesan peringatan. Layanan X-Pack Watcher Elasticsearch mengirim pesan peringatan ke Nginx, yang kemudian meneruskan pesan tersebut ke DingTalk atau WeCom.
Instal Nginx pada instans ECS.
Konfigurasikan file nginx.conf.
Ganti konfigurasi pada bagian
serverfile 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; # Folder 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 robot DingTalk yang menerima pesan peringatan.
Muat file konfigurasi yang telah dimodifikasi 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 proxy Nginx pada instans ECS untuk menerima pesan peringatan dari instans Elasticsearch.
Login ke Konsol ECS Alibaba Cloud.
Pada panel navigasi sebelah kiri, pilih .
Pada halaman Instances, klik nama instans target.
Klik tab Security Groups.
Pada tab Security Group List, klik nama security group tersebut.
Pada tab Inbound, klik Add Rule.
Masukkan parameter yang diperlukan.
Parameter
Deskripsi
Authorization Policy
Pilih Allow.
Priority
Pertahankan nilai default.
Protocol
Pilih Custom TCP.
Source
Tambahkan alamat IP semua node di instans Alibaba Cloud Elasticsearch Anda.
CatatanLihat Lihat informasi dasar tentang node untuk mendapatkan alamat IP semua node di instans Elasticsearch.
Purpose of Access
Masukkan port yang umum digunakan. Port ini diperlukan saat Anda mengonfigurasi Nginx. Topik ini menggunakan port 8080 sebagai contoh.
Description
Masukkan deskripsi untuk aturan tersebut.
Klik OK.
Langkah 3: Konfigurasi peringatan Watcher
Login ke konsol Kibana kluster Elasticsearch Anda dan buka halaman utama konsol Kibana sesuai petunjuk.
Untuk informasi selengkapnya tentang cara login ke konsol Kibana, lihat Login ke konsol Kibana.
CatatanPada contoh ini, digunakan kluster Elasticsearch V6.7.0. Operasi pada kluster versi lain mungkin berbeda. Ikuti operasi aktual di konsol.
Pada panel navigasi sebelah kiri halaman yang muncul, klik Dev Tools.
Pada Console, jalankan perintah berikut untuk membuat dokumen peringatan.
Contoh berikut menunjukkan cara membuat dokumen log_error_watch. Sistem melakukan kueri terhadap indeks logs untuk mencari log error setiap 10 detik. Jika ditemukan lebih dari 0 log error, 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. Deskripsi parameter utama
Parameter
Jenis jaringan
Deskripsi konfigurasi
url
Arsitektur jaringan baru
Atur parameter ini ke nama domain titik akhir. Permintaan diteruskan melalui nama domain titik akhir. Untuk mendapatkan nama domain titik akhir, lihat Konfigurasi peering jaringan pribadi untuk Alibaba Cloud Elasticsearch.
Arsitektur jaringan lama
Atur parameter ini ke salah satu alamat berikut:
Alamat IP proxy Nginx: Permintaan diteruskan melalui internet oleh proxy Nginx dalam VPC yang sama.
URL webhook robot DingTalk.
body
Arsitektur jaringan baru
Arsitektur jaringan lama
Konfigurasikan parameter ini berdasarkan pengaturan keamanan robot DingTalk.
Sebagai contoh, pada Langkah 1: Buat dan konfigurasi robot DingTalk, jika Anda mengatur Security Settings ke Custom Keywords dan menambahkan kata kunci kustom: error, maka body harus berisi bidang content yang menyertakan error agar robot DingTalk dapat mendorong pesan peringatan.
CatatanJika muncul error
No handler found for uri [/_xpack/watcher/watch/log_error_watch_2] and method [PUT]saat menjalankan perintah, hal ini menunjukkan bahwa fitur X-Pack Watcher belum diaktifkan untuk instans Alibaba Cloud Elasticsearch Anda. Aktifkan fitur tersebut lalu jalankan perintah lagi. Untuk informasi selengkapnya, lihat Konfigurasi parameter YML.
Langkah 4: Lihat hasil peringatan
Jika konfigurasi benar, ketika data di kluster memenuhi kondisi peringatan yang dikonfigurasi di Langkah 3: Konfigurasi peringatan Watcher, Anda akan menerima pesan peringatan seperti An error log has appeared. Please handle it as soon as possible. di grup DingTalk Anda.
Jika Anda tidak lagi memerlukan tugas berbasis peristiwa tersebut, Anda dapat menjalankan perintah berikut untuk menghapusnya.
DELETE _xpack/watcher/watch/log_error_watch