有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
文档中心 > Elasticsearch Service > 最佳实践 > 企业微信机器人接收 Watcher 告警
腾讯云 Elasticsearch Service 白金版中支持了 X-Pack Watcher 特性,通过添加触发器、操作等配置,可以实现当条件满足时执行某些特定操作。例如当检测到索引中出现错误日志时自动发送告警。本文介绍如何配置企业微信机器人接收 Watcher 发出的告警。
注意
X-Pack Watcher 特性仅在白金版中提供。
由于腾讯云 Elasticsearch Service 网络架构调整,仅2020年6月及之后创建的实例支持配置企业微信机器人接收 Watcher 告警。

背景信息

一个 Watcher 由4部分组成,具体如下:
Trigger:定义了何时 Watcher 开始执行,在配置 Watcher 时必须设置。支持的触发器详情参见 Schedule Trigger
Input:对监控的索引执行的查询条件,同时在触发 Watcher 时,Input 将数据加载到执行上下文中,在后续的 Watcher 执行阶段,可访问这个上下文。详情请参见 Inputs
Condition:执行 Actions 需要满足的条件。
Actions:当条件发生时,执行的具体操作。例如本文介绍的 Webhook Action。

操作步骤

1. 准备一台与 ES 集群同 VPC 的并且可以访问 Webhook 地址的 CVM(如通过外网访问)。
2. 在 CVM 中安装 Nginx,具体安装方法参见 Nginx 安装
3. 配置 Nginx 代理转发。使用以下配置替换 nginx.conf 文件中 Server 部分的配置。
Nginx 服务的默认端口是80,若您需要更改其端口,则需要登录控制台 安全组 放行此端口。
<企业微信机器人 Webhook 地址>:需替换为接收报警消息的企业微信机器人的 Webhook 地址。
server {
listen 80;
server_name localhost;
index index.html index.htm index.php;
root /usr/local/nginx/html;
#charset koi8-r;

#access_log logs/host.access.log main;
location ~ .*\\.(php|php5)?$
{
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 <企业微信机器人的wehbook地址>;
}
location ~ .*\\.(js|css)?$
{
expires 15d;
# access_log off;
}
access_log off;

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
4. 加载修改后的配置文件并重启 Nginx。
/usr/local/webserver/nginx/sbin/nginx -s reload
/usr/local/webserver/nginx/sbin/nginx -s reopen
5. 配置 Watcher 报警规则。此步骤可以在 Kibana 界面 Management > Watcher 选项中进行图形化操作。


Create threshold alert 在界面进行阈值告警设置。可以针对某索引的特定条件进行监控告警,例如 CPU 使用率、文档个数等,可以在下面的 Condition 选项做更细节的设置,参考如下:

单击右上角的 Add action, 选择 “Wehhook”,相关设置如下:

单击 Send request 可以进行测试,然后单击 Create alert 即可。
Create advanced watch 通过 API 设置 Watcher 各参数,API 详情请参见 PUT Watch
6. 以上步骤配置完成后,即可在自己创建的企业微信群中接收到机器人发来的告警信息。