Elasticsearch X-Pack Watcher是一个基于Elasticsearch实现的监控报警服务,可跟踪网络,具备对基础设施、索引数据和集群健康等指标进行监控和报警的能力。通过为阿里云Elasticsearch添加X-Pack Watcher,可以实现当满足某些条件时执行指定操作。
功能介绍
X-Pack Watcher主要由Trigger、Input、Condition和Actions组成。
Trigger:Watcher定时触发器。
多久触发一次Watcher,相当于多久执行一次input,支持多种调度触发器。详细信息,请参见Schedule Trigger。
Input:将数据加载到执行上下文。
用于后续的Watcher执行阶段,如果input没有指定,将会加载一个空上下文。详细信息,请参见Inputs。
Watcher支持以下input类型:
simple:将输入静态数据加载到执行上下文。例如手动输入一段简单的数据进行报警。
search:将搜索结果加载到执行上下文。例如全文搜索关键词,对搜索结果进行统计实现报警。
http:将HTTP请求结果加载到执行上下文。例如通过Elasticsearch请求接口获取集群健康状态、节点状态等实现报警。
chain:将一系列的输入数据加载到执行上下文,这些数据一般是来自多个源。
Condition:执行Actions的条件。
满足条件将会触发下一步操作,如果不指定条件,默认为always。详细信息,请参见Conditions。
Watcher支持以下condition类型:
always:条件总为true,始终执行Watcher Actions。
nerver:条件总为false,从不执行Watcher Actions。
compare:对Watcher有效负载中的值进行简单比较,以确定是否执行Watcher Actions。
array_compare:将Watcher有效负载中的值数组与给定值进行比较,以确定是否执行Watcher Actions。
script:使用脚本确定是否执行Watcher Actions。
Actions:报警接收对象。
常见的报警接收对象包括邮件、Webhook 、index和logging等。详细信息,请参见Actions。
说明通过邮件接收报警存在端口限制,阿里云Elasticsearch不支持,建议通过Webhook进行邮件转发。
应用场景
当ES实例中的logs索引出现error日志时,触发系统自动发送报警邮件或钉钉、企业微信消息。具体操作,请参见配置钉钉机器人接收X-Pack Watcher报警和配置企业微信机器人接收X-Pack Watcher报警。
实现CCR异常报警通知。具体操作,请参见通过X-Pack Watcher实现CCR异常报警通知。
注意事项
Elasticsearch实例的X-Pack Watcher功能默认关闭,需要您主动开启。 具体操作,请参见配置YML参数。
旧网络架构下,X-Pack Watcher功能仅支持单可用区Elasticsearch实例,不支持多可用区实例。更多信息,请参见【通知】网络架构调整。
新网络架构下,X-Pack Watcher功能受到网络限制,需要借助私网连接功能打通网络限制。更多信息,请参见配置实例私网连接和【通知】网络架构调整。
阿里云Elasticsearch的X-Pack Watcher功能不支持直接与公网通讯,需要基于实例的私网地址通讯。