Todos os produtos
Search
Central de documentação

Elasticsearch:Configure um chatbot do DingTalk para alertas do X-Pack Watcher

Última atualização: Jun 27, 2026

O X-Pack Watcher para Alibaba Cloud Elasticsearch executa ações quando condições específicas são atendidas. Por exemplo, você pode configurar o sistema para enviar automaticamente uma mensagem no DingTalk sempre que um log de erro aparecer no índice de logs. Este tópico descreve como configurar um chatbot do DingTalk para receber alertas do X-Pack Watcher.

Visão geral

O X-Pack Watcher consiste em quatro componentes: Trigger (gatilho agendado que define a frequência de monitoramento), Input (entrada de dados que recupera informações de monitoramento do cluster), Condition (condições de acionamento que determinam se os limiares de alerta foram atingidos) e Actions (ações de alerta que definem os métodos de notificação quando as condições são satisfeitas, como Webhook).

Pré-requisitos

Procedimento

Etapa 1: Criar e configurar um chatbot do DingTalk

  1. Crie um grupo no DingTalk para receber os alertas.

  2. No canto superior direito do grupo, clique em 设置.png. No painel Group Settings, clique em Robot.

  3. Na caixa de diálogo Robot Management , clique em Add Bot, selecione Custom e clique em Add.

  4. Insira um Bot Name, selecione Custom Keywords e insira as palavras-chave.

    Importante

    As palavras-chave devem estar incluídas na mensagem de alerta configurada.

  5. Leia e selecione Custom Robot Services and Disclaimers e clique em Complete.

  6. Clique em Webhook ao lado de Copy para copiar a URL do webhook do chatbot.

    Mantenha a URL do webhook segura. Não a compartilhe publicamente para evitar riscos de segurança.

Etapa 2: Configurar o proxy Nginx e o grupo de segurança

  1. Configure o proxy Nginx na instância ECS.

    O proxy Nginx encaminha mensagens de alerta. O serviço X-Pack Watcher envia essas mensagens para o Nginx, que as redireciona para serviços como DingTalk ou WeCom.

    1. Instale o Nginx na instância ECS.

    2. Configure o arquivo nginx.conf.

      Substitua a seção server no arquivo nginx.conf pelo seguinte conteúdo:

      server
        {
          listen 8080;# The listening port.
          server_name localhost;# The domain name.
          index index.html index.htm index.php;
          root /usr/local/webserver/nginx/html;# The website directory.
            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;
        }

      Substitua <Webhook_URL> pela URL do webhook do chatbot do DingTalk.

    3. Recarregue o arquivo de configuração modificado e reinicie o Nginx.

      /usr/local/webserver/nginx/sbin/nginx -s reload            # Reload the configuration file.
      /usr/local/webserver/nginx/sbin/nginx -s reopen            # Restart Nginx.
  2. Configure o grupo de segurança da instância ECS.

    Permita que o proxy Nginx na instância ECS receba mensagens de alerta da instância do Elasticsearch.

    1. Faça login no console do Alibaba Cloud ECS.

    2. No painel de navegação à esquerda, escolha Instances & Images > Cluster.

    3. Na página Cluster, clique em Security Group List.

    4. Clique em Security Group.

    5. Na aba Security Group List, clique em Inbound.

    6. Na aba Inbound, clique em Add Rule.

    7. Defina os seguintes parâmetros.

      Parâmetro

      Descrição

      Action

      Selecione Permitted.

      Priority

      Mantenha o valor padrão.

      Protocol

      Selecione Custom TCP.

      Source

      Adicione os endereços IP de todos os nós da sua instância do Alibaba Cloud Elasticsearch.

      Nota

      Para obter os endereços IP dos nós, consulte Visualizar as informações básicas de um nó.

      Destination

      Insira a porta de escuta configurada no Nginx. Neste exemplo, a porta é 8080.

      Description

      Insira uma descrição para a regra.

    8. Clique em OK.

Etapa 3: Configurar um alerta do Watcher

  1. Faça login no console Kibana do seu cluster Elasticsearch.

    Para instruções, consulte Fazer login no console Kibana.

    Nota

    Os exemplos aqui utilizam o Elasticsearch V6.7.0. As operações podem variar ligeiramente em outras versões.

  2. No menu de navegação à esquerda, escolha Management > Dev Tools.

  3. No Console, execute o seguinte comando para criar um watch.

    Neste exemplo, cria-se um documento log_error_watch. A cada 10s, o documento consulta o índice logs em busca de logs de error e dispara um alarme se a contagem de logs for maior que 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://<your_ECS_IP_address>:8080",
          "body" : "{\"msgtype\": \"text\", \"text\": { \"content\": \"An error log is found. Please handle it as soon as possible.\"}}"
        }
      }
    }
    }

    Tabela 1. Descrição dos principais parâmetros

    Parâmetro

    Arquitetura de rede

    Descrição

    url

    Nova arquitetura de rede

    Defina este parâmetro como o nome de domínio do endpoint. Para obter o nome de domínio do endpoint, consulte Configurar comunicação privada para uma instância do Alibaba Cloud Elasticsearch.

    Arquitetura de rede antiga

    Defina este parâmetro com o seguinte endereço:

    • O endereço IP privado da instância ECS onde o proxy Nginx está em execução.

    • A URL pública do webhook do chatbot do DingTalk não tem suporte nesta arquitetura.

    body

    • Nova arquitetura de rede

    • Arquitetura de rede antiga

    Configure este parâmetro com base nas configurações de segurança do seu chatbot do DingTalk.

    Por exemplo, se você definir as Security Settings como Custom Keywords e adicionar a palavra-chave personalizada error na Etapa 1: Criar e configurar um chatbot do DingTalk, o campo content no body deve conter error para que o chatbot do DingTalk aceite e exiba o alerta.

    Nota

    Se você receber o erro No handler found for uri [/_xpack/watcher/watch/log_error_watch_2] and method [PUT] ao executar o comando, isso indica que o X-Pack Watcher não está ativado na sua instância do Alibaba Cloud Elasticsearch. Ative esse recurso e execute o comando novamente. Para mais informações, consulte Configurar parâmetros YML.

Etapa 4: Verificar os resultados

Se a configuração estiver correta, você receberá uma mensagem de alerta como An error log is found. Please handle it as soon as possible. no seu grupo do DingTalk quando os dados do cluster atenderem às condições definidas na Etapa 3.

Nota

Caso não precise mais do watch, execute o seguinte comando para excluí-lo.

DELETE _xpack/watcher/watch/log_error_watch