使用Alerting监控ES集群

为保证Elasticsearch集群的正常运行,需要对集群的CPU负载,JVM使用率,磁盘使用率等指标进行监控。当这些指标达到阈值时及时处理,保证Elasticsearch集群的正常运行。

Elasticsearch 提供了丰富的API可以获取集群的监控指标,可以参考[Elasticsearch Cat Api]。通过API拉取集群指标进行监控的方式,用户需要自行拉取关注的指标,并编写相应的处理逻辑,过程相对繁琐。Elasticsearch还提供了一种方便高效的集群指标监控方式--Elastic Altering。

Elastic Altering可以监控上报到Elasticsearch中数据的变化和异常,并执行相应的动作,参考Elasticsearch Altering。对于开启了集群监控的集群(未开启的参考configuring-monitoring),其监控数据已经上报到了Elasticsearch中,因此只需要添加对相应指标数据的altering即可实现对这些指标的监控。另外Altering还提供了如email, webhook等方式的告警处理动作,为用户通知和处理指标异常提供了快速便捷的方式。本文将实践对集群的节点CPU Load 1配置altering,并通过邮件方式发送邮件。

1.配置发送消息邮箱

为了在触发告警时,使用Altering向用户发送邮件,需要至少为Elasticsearch集群配置一个邮箱账号

本文使用Outlook邮箱,elasticsearch.yml中的配置如下:

 xpack.notification.email.account:
    outlook_account:
        profile: outlook
        email_defaults: 
                from: xxxxxxx@live.com
        smtp:
            auth: true
            starttls.enable: true
            host: smtp-mail.outlook.com
            port: 587
            user: xxxxxxxxx@live.com
            password: xxxxxxxxx

这里需要注意以下几点问题

  1. 在6.4时需要明确在配置中指定邮箱password, 从6.5开始邮箱密码要存放在keystore的xpack.notification.email.account.outlook_account.smtp.secure_password
  2. 使用live账号要开启双重验证和应用密码,否则会收到如下报错信息:
  3. 如果通过kibana界面配置watcher使用email,需要设置email_defaults,否则会收到如下报错
  4. 上述配置需要重启集群生效

2.配置告警

  1. 规则

本次实践要配置的告警规则为:单节点CPU Load1 > 4

  1. 配置页面

告警配置页面路径为:

Management-> Watcher -> create threshold alert, 如下图

  1. 告警配置

点击create threshold alert后会出现如下界面

根据实际情况添加内容如下

Name:               CPU_LOAD
Indices to query:   .monitor-es-*
Time field:         timestamp
Run watch every:    1 minitues
When:               max()
OF:                 node_stats.os.cpu.load_average.1m
GROUPED BY:         top 5 'source_node.name'
IS_ABOBE:           4
FOR THE LAST:       5minutes
To e-mail address:  xxxx@live.com
subject:            日志ELK监控告警:集群CPU Load 超过阈值
Body:               节点{{ctx.payload.results.0.key}} CPU Load 为[{{ctx.payload.results.0.value}}] 超过阈值[{{ctx.metadata.watcherui.threshold}}]

其中邮件发送中使用的上下文变量参考:watch-execution-context

经过上述配置,当集群中出现节点CPU load1 超过4 并持续5分钟以上,便会发邮件到指定邮箱,从而实现对集群的监控。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券