全部产品
Search
文档中心

Elasticsearch:Konfigurasikan chatbot WeCom untuk menerima notifikasi peringatan dari X-Pack Watcher

更新时间:Jul 06, 2025

X-Pack Watcher adalah layanan pemantauan dan peringatan yang dikembangkan untuk Elasticsearch. Jika Anda mengonfigurasi X-Pack Watcher untuk kluster Elasticsearch Anda, X-Pack Watcher dapat memicu tindakan ketika kondisi tertentu terpenuhi. Sebagai contoh, jika indeks log berisi kesalahan, X-Pack Watcher memicu sistem untuk mengirimkan notifikasi peringatan melalui email atau pesan WeCom. Topik ini menjelaskan cara mengonfigurasi chatbot WeCom untuk menerima notifikasi peringatan dari X-Pack Watcher.

Prasyarat

  • Sebuah kluster Elasticsearch Alibaba Cloud telah dibuat. Untuk informasi lebih lanjut, lihat Buat Kluster Elasticsearch Alibaba Cloud.

    Catatan
    • Dalam arsitektur jaringan asli, X-Pack Watcher hanya tersedia untuk kluster Elasticsearch zona tunggal.

    • Dalam arsitektur jaringan baru, Anda perlu mengonfigurasi koneksi pribadi untuk kluster Elasticsearch agar kluster tersebut dapat terhubung ke Internet. Untuk informasi lebih lanjut, lihat Konfigurasikan Koneksi Pribadi untuk Kluster Elasticsearch.

    Untuk informasi lebih lanjut tentang arsitektur jaringan, lihat [Pemberitahuan] Penyesuaian Arsitektur Jaringan.

  • X-Pack Watcher diaktifkan untuk kluster Elasticsearch. Secara default, X-Pack Watcher dinonaktifkan. Untuk informasi lebih lanjut, lihat Konfigurasikan File YML.

  • Sebuah instance Elastic Compute Service (ECS) dibuat di virtual private cloud (VPC) Anda. Untuk informasi lebih lanjut, lihat Buat Instance pada Tab Peluncuran Kustom.

    Catatan

    X-Pack Watcher tidak dapat langsung mengakses Internet dan harus menggunakan titik akhir internal kluster Elasticsearch Anda untuk mengakses Internet. Dalam hal ini, Anda dapat mengaktifkan source network address translation (SNAT) atau mengaitkan alamat IP elastis (EIP) dengan instance ECS yang ditempatkan di VPC Anda. Dengan cara ini, Anda dapat menggunakan instance ECS sebagai proxy untuk meneruskan permintaan. Untuk informasi lebih lanjut, lihat Kaitkan EIP atau Konfigurasikan SNAT.

  • Chatbot WeCom dikonfigurasi, dan URL webhook chatbot tersebut diperoleh.

Prosedur

Langkah 1: Konfigurasikan proxy NGINX dan atur aturan grup keamanan untuk instance ECS

  1. Konfigurasikan proxy NGINX pada instance ECS.

    Proxy NGINX digunakan untuk meneruskan notifikasi peringatan. X-Pack Watcher mengirimkan notifikasi peringatan ke proxy, yang kemudian meneruskan notifikasi tersebut ke DingTalk atau WeCom.

    1. Instal NGINX pada instance ECS.

    2. Konfigurasikan file nginx.conf.

      Ganti konfigurasi server dalam file nginx.conf dengan kode berikut:

      server {
              listen 8080;
              server_name _;
              root /usr/share/nginx/html;
              # Muat file konfigurasi untuk blok server default.
              include /etc/nginx/default.d/*.conf;
      
                location / {
                  proxy_pass <URL Webhook chatbot WeCom>;
                }
              error_page 404 /404.html;
                  location = /40x.html {
              }
              error_page 500 502 503 504 /50x.html;
                  location = /50x.html {
              }
          }

      Ganti <URL Webhook chatbot WeCom> dengan URL webhook chatbot WeCom yang Anda konfigurasikan untuk menerima notifikasi peringatan.

    3. Muat ulang file konfigurasi NGINX dan mulai ulang NGINX.

      /usr/local/webserver/nginx/sbin/nginx -s reload            # Muat ulang file konfigurasi NGINX.
      /usr/local/webserver/nginx/sbin/nginx -s reopen            # Mulai ulang NGINX.
  2. Konfigurasikan aturan grup keamanan untuk instance ECS.

    Aturan grup keamanan digunakan untuk mengizinkan proxy NGINX pada instance ECS menerima notifikasi peringatan dari kluster Elasticsearch.

    1. Masuk ke Konsol ECS.

    2. Di panel navigasi sebelah kiri, pilih Instance & Images > Instances.

    3. Di halaman Instances, temukan instance ECS dan klik namanya.

    4. Di halaman detail instance, klik tab Security Groups.

    5. Pada tab Security Groups, klik nama grup keamanan yang diinginkan.

    6. Di tab Inbound bagian Access Rule, klik Add Rule.

    7. Konfigurasikan parameter.

      Parameter

      Deskripsi

      Action

      Pilih Allow.

      Priority

      Gunakan nilai default.

      Protocol Type

      Pilih Custom TCP.

      Port Range

      Atur parameter ini ke port yang sering Anda gunakan. Dalam contoh ini, port 8080 digunakan.

      Authorization Object

      Masukkan alamat IP semua node dalam kluster Elasticsearch.

      Catatan

      Untuk informasi lebih lanjut tentang cara mendapatkan alamat IP node, lihat Lihat informasi dasar node.

      Description

      Deskripsi aturan.

    8. Klik Save.

Langkah 2: Konfigurasikan watch untuk peringatan

  1. Masuk ke konsol Kibana kluster Elasticsearch Anda dan buka halaman utama konsol Kibana sesuai petunjuk.

    Untuk informasi lebih lanjut tentang cara masuk ke konsol Kibana, lihat Masuk ke Konsol Kibana.

    Catatan

    Dalam contoh ini, kluster Elasticsearch V6.7.0 digunakan. Operasi pada kluster versi lain mungkin berbeda. Operasi aktual di konsol yang berlaku.

  2. Di panel navigasi sebelah kiri halaman yang muncul, klik Dev Tools.

  3. Di tab Console halaman yang muncul, jalankan perintah berikut untuk membuat watch.

    Dalam contoh ini, sebuah watch bernama developer_count_watch dibuat untuk mencari indeks zl-testgaes untuk bidang developer setiap 10 detik. Jika nilai bidang developer adalah Nintendo dan jumlah kemunculan bidang developer lebih dari 158,974, peringatan dipicu.

    PUT _xpack/watcher/watch/developer_count_watch
    {
      "trigger": {
        "schedule": {
          "interval": "10s"
        }
      },
      "input": {
        "search": {
          "request": {
            "indices": ["zl-testgaes"],
            "body": {
              "query": {
        "bool": {
          "must": [
            {"match": 
             {
               "developer" : "Nintendo"    
            }
            },
            {
            "range": {
              "year_of_release": {
                "gte": "2011-09-20T16:00:00.000Z",
                "lte": "2011-12-31T16:00:00.000Z"
                      }
                  }
            }
          ]
        } 
      }
            }
          }
        }
      },
      "condition": {
        "compare": {
          "ctx.payload.hits.total": {
            "gt": 158974
          }
        }
      },
      "actions" : {
      "test_issue" : {
        "webhook" : {
          "method" : "POST",
          "url" : "http://<yourAddress>:8080",
          "body" : "{\"msgtype\": \"text\", \"text\": { \"content\": \"developer is Nintendo, More than 158974\"}}"
        }
      }
    }
    }

    Tabel 1. Parameter

    Parameter

    Network architecture

    Deskripsi

    url

    New network architecture

    Nama domain titik akhir. Permintaan diteruskan berdasarkan nama domain. Untuk informasi lebih lanjut tentang cara mendapatkan nama domain titik akhir, lihat Konfigurasikan koneksi pribadi untuk kluster Elasticsearch.

    Original network architecture

    Atur parameter ini ke salah satu item berikut:

    • Alamat IP proxy NGINX. Dalam hal ini, permintaan diteruskan melalui Internet menggunakan proxy NGINX yang berada di VPC yang sama dengan kluster Elasticsearch.

    • URL webhook chatbot WeCom.

    Catatan

    Jika kesalahan No handler found for uri [/_xpack/watcher/watch/log_error_watch_2] and method [PUT] dikembalikan setelah Anda menjalankan perintah di atas, X-Pack Watcher dinonaktifkan untuk kluster Elasticsearch. Dalam hal ini, aktifkan X-Pack Watcher dan jalankan perintah lagi. Untuk informasi lebih lanjut, lihat Konfigurasikan File YML.

Langkah 3: Lihat notifikasi peringatan

Dalam kondisi normal, jika kondisi yang ditentukan di Langkah 2: Konfigurasikan Watch untuk Peringatan terpenuhi, notifikasi peringatan akan dikirim ke grup WeCom Anda, seperti yang ditunjukkan pada gambar berikut.企业微信机器人报警配置

Catatan

Jika Anda tidak lagi memerlukan watch ini, Anda dapat menjalankan perintah berikut untuk menghapus watch:

DELETE _xpack/watcher/watch/developer_count_watch