Large-Scale Price Reduction

最大 59% オフ

平均で 23% 節約

詳細を表示
このページは機械翻訳によるものです。内容の正確さは保証しておりません。 人力翻訳を依頼する

X-Pack Watcher からのアラート通知を受信するための DingTalk チャットボットの設定

更新日時2025-01-10 21:00

X-Pack Watcher は、Elasticsearch 用に開発された監視およびアラートサービスです。Elasticsearch クラスタ用に X-Pack Watcher を設定すると、特定の条件が満たされたときに X-Pack Watcher がアクションをトリガーできます。たとえば、ログインデックスにエラーが含まれている場合、X-Pack Watcher はシステムをトリガーして、DingTalk メッセージによってアラート通知を送信します。このトピックでは、X-Pack Watcher からのアラート通知を受信するように DingTalk チャットボットを設定する方法について説明します。

前提条件

  • Alibaba Cloud Elasticsearch クラスタが作成されていること。詳細については、「Alibaba Cloud Elasticsearch クラスタの作成」をご参照ください。

    説明
    • 元のネットワークアーキテクチャでは、X-Pack Watcher はシングルゾーン Elasticsearch クラスタでのみ使用できます。

    • 新しいネットワークアーキテクチャでは、Elasticsearch クラスタがインターネットに接続するようにプライベート接続を設定する必要があります。詳細については、「Elasticsearch クラスタのプライベート接続の設定」をご参照ください。

    ネットワークアーキテクチャの詳細については、「[お知らせ] ネットワークアーキテクチャの調整」をご参照ください。

  • Elasticsearch クラスタで X-Pack Watcher が有効になっていること。デフォルトでは、X-Pack Watcher は無効になっています。詳細については、「YML ファイルの設定」をご参照ください。

  • 仮想プライベートクラウド (VPC) に Elastic Compute Service (ECS) インスタンスが作成されていること。詳細については、「カスタム起動タブでインスタンスを作成する」をご参照ください。

    説明

    X-Pack Watcher はインターネットに直接アクセスできず、Elasticsearch クラスタの内部エンドポイントを使用してインターネットにアクセスする必要があります。この場合、VPC にデプロイされている ECS インスタンスのソースネットワークアドレス変換 (SNAT) を有効にするか、Elastic IP アドレス (EIP) を関連付けることができます。このようにして、ECS インスタンスをプロキシとして使用してリクエストを転送できます。詳細については、「EIP の関連付け」または「SNAT の設定」をご参照ください。

手順

ステップ 1:DingTalk チャットボットの設定

  1. アラート通知を受信するために使用する DingTalk グループを作成します。

  2. DingTalk グループのチャットウィンドウの右上隅にある 设置.png アイコンをクリックします。[グループ設定] パネルで、[ボット] をクリックします。

  3. [ロボット管理] パネルで、[ロボットの追加] をクリックします。

  4. [ロボット] ダイアログボックスで、[ロボットの追加] をクリックします。

  5. [カスタム] カードをクリックします。[ロボットの詳細] ダイアログボックスで、[追加] をクリックします。

  6. [ロボットの追加] ダイアログボックスで、セキュリティ設定に [カスタムキーワード] を選択します。表示されるフィールドに、1 つ以上のキーワードを入力します。

    重要

    キーワードは、設定したアラート情報に含まれている必要があります。

  7. 利用規約を読み、同意し、[完了] をクリックします。

  8. チャットボットの webhook URL をコピーするには、Webhook の右側にある [コピー] をクリックします。

    webhook URL は後で使用するために保管してください。また、webhook URL は機密として扱う必要があります。 webhook URL が漏洩した場合、リスクが発生する可能性があります。

ステップ 2: NGINX プロキシを設定し、ECS インスタンスのセキュリティグループルールを設定する

  1. ECS インスタンスで NGINX プロキシを設定します。

    NGINX プロキシは、アラート通知を転送するために使用されます。X-Pack Watcher はアラート通知をプロキシに送信し、プロキシは通知を DingTalk または WeCom に転送します。

    1. ECS インスタンスに NGINX をインストールします。

    2. nginx.conf ファイルを設定します。

      nginx.conf ファイルの server 設定を次のコードに置き換えます。

      server
        {
          listen 8080;# リッスンポート。
          server_name localhost;# ドメイン名。
          index index.html index.htm index.php;
          root /usr/local/webserver/nginx/html;# Web サイトディレクトリ。
            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 of the DingTalk chatbot>;
          }
          location ~ .*\.(js|css)?$
          {
            expires 15d;
            # access_log off;
          }
          access_log off;
        }

      <Webhook URL of the DingTalk chatbot> を、アラート通知を受信するように設定した DingTalk チャットボットの webhook URL に置き換えます。

    3. NGINX 設定ファイルを再読み込みし、NGINX を再起動します。

      /usr/local/webserver/nginx/sbin/nginx -s reload            # NGINX 設定ファイルを再読み込みします。
      /usr/local/webserver/nginx/sbin/nginx -s reopen            # NGINX を再起動します。
  2. ECS インスタンスのセキュリティグループルールを設定します。

    セキュリティグループルールは、ECS インスタンス上の NGINX プロキシが Elasticsearch クラスターからアラート通知を受信できるようにするために使用されます。

    1. ECS コンソール にログインします。

    2. 左側のナビゲーションペインで、インスタンスとイメージ > [インスタンス] を選択します。

    3. [インスタンス] ページで、ECS インスタンスを見つけ、その名前をクリックします。

    4. インスタンスの詳細ページで、[セキュリティグループ] タブをクリックします。

    5. [セキュリティグループ] タブで、目的のセキュリティグループの名前をクリックします。

    6. アクセスルールセクションの [受信] タブで、[ルールの追加] をクリックします。

    7. パラメーターを設定します。

      パラメーター

      説明

      パラメーター

      説明

      アクション

      許可 を選択します。

      優先度

      デフォルト値を保持します。

      プロトコルタイプ

      カスタム TCP を選択します。

      ポート範囲

      このパラメーターを頻繁に使用するポートに設定します。この例では、ポート 8080 を使用します。

      認証オブジェクト

      Elasticsearch クラスター内のすべてのノードの IP アドレスを入力します。

      説明

      ノードの IP アドレスを取得する方法の詳細については、「ノードの基本情報を表示する」をご参照ください。

      説明

      ルールの説明。

    8. [保存] をクリックします。

ステップ 3: アラート用のウォッチを設定する

  1. Elasticsearch クラスターの Kibana コンソールにログオンし、プロンプトに従って Kibana コンソールのホームページに移動します。

    Kibana コンソールへのログオン方法の詳細については、「Kibana コンソールにログオンする」をご参照ください。

    説明

    この例では、Elasticsearch V6.7.0 クラスターを使用しています。他のバージョンのクラスターでの操作は異なる場合があります。コンソールでの実際の操作が優先されます。

  2. 表示されるページの左側のナビゲーションペインで、[dev Tools] をクリックします。

  3. 表示されるページの [console] タブで、次のコマンドを実行してウォッチを作成します。

    この例では、log_error_watch という名前のウォッチを作成して、logs インデックスで error10 秒ごとに検索します。0 を超えるエラーが見つかった場合は、アラートがトリガーされます。

    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 is found. Handle the issue immediately.\"}}" // エラーが見つかりました。すぐに問題を処理してください。
        }
      }
    }
    }

    パラメーター

    ネットワークアーキテクチャ

    説明

    表 1. パラメーター

    パラメーター

    ネットワークアーキテクチャ

    説明

    url

    新しいネットワークアーキテクチャ

    エンドポイントのドメイン名。リクエストは、ドメイン名に基づいて転送されます。エンドポイントのドメイン名の取得方法の詳細については、「Elasticsearch クラスターのプライベート接続を設定する」をご参照ください。

    元のネットワークアーキテクチャ

    このパラメーターを次のいずれかの項目に設定します。

    • NGINX プロキシの IP アドレス。この場合、リクエストは、Elasticsearch クラスターと同じ VPC に存在する NGINX プロキシを使用してインターネット経由で転送されます。

    • DingTalk チャットボットの Webhook URL。

    body

    • 新しいネットワークアーキテクチャ

    • 元のネットワークアーキテクチャ

    DingTalk チャットボットのセキュリティ設定に基づいて、このパラメーターを設定する必要があります。

    たとえば、「ステップ 1: DingTalk チャットボットを設定する」で、[セキュリティ設定][カスタムキーワード] に設定され、error キーワードが指定されているとします。この場合、DingTalk チャットボットは、body パラメーターの content フィールドに error が含まれている場合にのみ、アラート通知を送信します。

    説明

    前のコマンドを実行した後にエラー No handler found for uri [/_xpack/watcher/watch/log_error_watch_2] and method [PUT] が返された場合は、Elasticsearch クラスターで X-Pack Watcher が無効になっています。この場合は、X-Pack Watcher を有効にして、コマンドを再実行してください。詳細については、「YML ファイルを設定する」をご参照ください。

ステップ 4: アラート通知を表示する

通常の場合、ステップ 3: アラート用のウォッチを設定する で指定された条件が満たされると、エラーが見つかりました。すぐに問題を処理してください。 のようなアラート通知が DingTalk グループに送信されます。

説明

このウォッチが不要になった場合は、次のコマンドを実行してウォッチを削除できます。

DELETE _xpack/watcher/watch/log_error_watch  // ウォッチを削除するコマンド

  • 目次 (1, M)
  • 前提条件
  • 手順
  • ステップ 1:DingTalk チャットボットの設定
  • ステップ 2: NGINX プロキシを設定し、ECS インスタンスのセキュリティグループルールを設定する
  • ステップ 3: アラート用のウォッチを設定する
  • ステップ 4: アラート通知を表示する
フィードバック
phone お問い合わせ

Chat now with Alibaba Cloud Customer Service to assist you in finding the right products and services to meet your needs.

alicare alicarealicarealicare