设置Elasticsearch集群SMN告警通知
本文主要介绍如何在Kibana中通过开源OpenDistro告警插件设置Elasticsearch集群的SMN告警通知功能。
场景描述
CSS服务默认给7.1.1、7.6.2和7.10.2版本的Elasticsearch集群安装了开源OpenDistro告警插件(opendistro_alerting),该插件具备Dashboard、Monitors、Destinations三个组件,并在Destinations组件中支持通过SMN服务发送告警通知。使用OpenDistro告警插件时,Elasticsearch集群需要通过SMN发送通知,这要求进行服务授权配置,服务授权是指允许CSS服务代理使用其他云资源,例如授权使用SMN服务资源,从而使CSS集群能够发送SMN消息通知。有关OpenDistro告警插件的官方文档,请参见OpenDistro-Monitors。
约束与限制
仅Elasticsearch 7.1.1、Elasticsearch 7.6.2和Elasticsearch 7.10.2集群默认安装了开源的OpenDistro告警插件,因此只有这几个版本的集群支持设置SMN告警通知。
前提条件
- 已经在SMN服务管理控制台创建完成了用于发送告警消息的主题,具体操作请参见创建主题。
- 已获取CSS服务的管理员账号,并确认该账号具有CSS服务权限及IAM查看委托列表、创建委托及给委托授权的权限。
授权使用SMN服务
- 登录云搜索服务管理控制台。
    必须使用CSS服务的管理员账号登录。 
- 在左侧导航栏选择“服务授权”。
- 在服务授权页面,单击“创建SMN委托”,在弹窗中确认委托创建成功。
    - 如果已经创建过委托,则右上角会提示“css_smn_agency exist, no need to created.”。
- 如果无创建权限,则右上角会提示“当前用户没有操作权限,请通过IAM检查账户权限!”,请确认该管理员账号是否配置了IAM使用权限。
 
设置SMN告警通知
- 登录云搜索服务管理控制台。
    使用具有CSS服务操作权限的账号登录即可。 
- 在左侧导航栏,选择“集群管理 > Elasticsearch”。
- 在集群列表,选择目标集群,单击操作列的“Kibana”,登录Kibana。
- 在Kibana页面,选择左侧导航栏的“Open Distro for Elasticsearch > Alerting”。
- 新建一个SMN目的端用于发送告警消息。
    - 在“Alerting”页面选择“Destinations”页签,单击“Add destination”配置目的端信息。 
      表1 Destinations参数说明 参数名称 说明 Name 自定义目的端名称。 Type 保持默认值“SMN”。 Topic 选择前提条件中创建好的用于发送告警消息的SMN主题。 注意:7.1.1版本的Elasticsearch集群,需要手动输入Topic,注意和SMN服务中的主题名称保持一致。 图1 Add destination  
- 单击“Create”返回Destinations列表,在列表可见新建的SMN目的端,表示创建完成。
      图2 Destinations列表  
 
- 在“Alerting”页面选择“Destinations”页签,单击“Add destination”配置目的端信息。 
      
- 新建一个监控,并配置告警的触发条件和监控频率。
    - 在“Alerting”页面选择“Monitors”页签,单击“Create monitors”配置监控信息。 
      表2 Monitors参数说明 参数名称 说明 Monitor name 自定义一个监控名称。 Monitor state 是否关闭这个监控,建议不关闭。 Method of definition 选择一种方式定义监控,推荐使用“Define using extraction query”。 - Define using visual graph:可视化的query语句
- Define using extraction query:具体的query语句
 Index 选择监控的索引。 Time field 仅当选择“Define using visual graph”方式定义监控时,需要选择一个字段作为时间字段,来定义count等计数参数。 Frequency 选择监控频率,并设置监控频率的间隔信息。 - By interval:按时间间隔
- Daily:按每天
- Weekly:按每周
- Monthly:按每月
- Custom cron expression:按cron脚本规划
 
- 单击“Create”跳转到“Create trigger”页面。
- 在“Create trigger”页面设置指定告警触发条件及告警时应触发的动作。 
      表3 Trigger参数说明 参数名称 说明 Trigger name 自定义一个触发器名称。 Severity level 定义触发器的敏感度,选择触发多少条告警之后发送告警消息,“1”为最高敏感度。 Trigger condition 定义触发条件。满足触发条件就会触发告警。 Action name 自定义一个触发器动作名称。 Destination 选择5新建的SMN目的端。 Message subject 仅7.10.2版本的Elasticsearch集群需要设置,定义告警消息的标题。 Message 设置SMN主题发送的body,定义消息发布的文本。默认定义了目的端是Email类型时的主题和正文,详细参数说明请参见消息发布。 Action throttling 设置消息发送频率用来限制在指定时间段内收到的通知消息数量。 例如设置10分钟,在接下来的10分钟内,即使触发条件满足多次,SMN仅发送1次告警通知。超过10分钟后,如果触发告警条件,SMN才会再次发送告警通知。 图3 设置触发器动作的目的端  
- 单击“Send test message”,如图5所示SMN主题订阅者成功收到邮件消息,则表示触发器设置成功。
      图4 发送验证信息  
- 单击“Create”返回Monitor详情页。
 
- 在“Alerting”页面选择“Monitors”页签,单击“Create monitors”配置监控信息。 
      
 
     
      