配置OpenSearch告警通知(SMN)
在实时大数据监控场景下,运维人员需要第一时间获知集群健康状态或业务指标的异常波动。虽然OpenSearch提供了强大的检索能力,但原生系统缺乏与云原生通知服务的深度集成。通过CSS服务给OpenSearch集群预置的告警插件与通知插件,可以对接消息通知服务(SMN)。通过配置监控器实时轮询索引数据,当数据满足触发条件时,CSS服务将调用SMN接口将告警信息推送至订阅者,构建起一套“无人值守”的自动化监控闭环。
功能介绍
OpenSearch集群预置的开源OpenSearch告警插件(opensearch-alerting)与OpenSearch通知插件(opensearch-notifications、opensearch-notifications-core),用于提供数据满足特定条件时的通知功能。
- Monitor(监控器)定义了查询条件,如“去哪个索引查”、“多久查一次”。
- Trigger(触发器)根据查询条件进行决策,满足什么条件触发告警(如查询结果“count > 100”)以及触发后的动作(Action)。
- Destination/Channel(目的端/通道)是消息通路,定义了告警发往SMN主题。
- CSS集群通过服务授权委托CSS使用SMN的权限。
- SMN将收到的告警信息推送至订阅者。
告警插件的详细信息请参见官方文档Alerting - OpenSearch Documentation,通知插件的详细信息请参见官方文档Notifications - OpenSearch Documentation。
约束与限制
- OpenSearch 1.3.6集群预置了OpenSearch告警插件(opensearch-alerting)。OpenSearch告警插件包含Alerts、Monitors、Destinations三个组件,CSS服务在Destinations组件中适配了消息通知服务SMN,支持通过SMN服务作为目的端(Destination)进行告警消息发送。
- OpenSearch 2.19.0集群预置了OpenSearch告警插件(opensearch-alerting)与OpenSearch通知插件(opensearch-notifications、opensearch-notifications-core)。OpenSearch告警插件中的Destinations组件成为独立的通知插件,管理通知通道(Channel)。CSS服务在通知插件中适配了消息通知服务SMN,支持通过SMN服务作为通知通道。
准备工作
- 准备SMN主题。在SMN服务创建主题并添加订阅者(手机号/邮箱)。操作指导请参见通过SMN发布模板消息
- 开启SMN服务授权。通过配置IAM委托,授权CSS服务访问SMN服务。
- 使用CSS服务的管理员账号登录云搜索服务管理控制台。 CSS服务的管理员账号需要如下IAM最小权限:
"iam:agencies:listAgencies", "iam:roles:listRoles", "iam:agencies:getAgency", "iam:agencies:createAgency", "iam:permissions:listRolesForAgency", "iam:permissions:grantRoleToAgency", "iam:permissions:listRolesForAgencyOnProject", "iam:permissions:revokeRoleFromAgency", "iam:roles:createRole"
- 在左侧导航栏选择“服务授权”。
- 在服务授权页面,单击“创建SMN委托”,在弹窗中确认委托创建成功。
- 如果已经创建过委托,则右上角会提示“SMN授权委托已存在。” 。
- 如果无创建权限,则右上角会提示“当前用户没有操作权限,请通过IAM检查账户权限!”,请确认该管理员账号是否配置了IAM使用权限。
- 使用CSS服务的管理员账号登录云搜索服务管理控制台。
配置SMN告警通知(OpenSearch 2.19.0)
- 登录云搜索服务管理控制台。
使用具有CSS服务操作权限的账号登录即可。
- 在左侧导航栏,选择“集群管理 > OpenSearch”。
- 在集群列表,选择目标集群,单击操作列的“Dashboards”,登录OpenSearch Dashboards。
- 在OpenSearch Dashboards页面,选择左侧导航栏的“Management > Notifications”,进入通知插件界面。
- 新建一个SMN通道用于发送告警消息。
- 在Channels页面单击“Create channel”配置通道信息。
表1 Channel参数说明 参数名称
说明
Name
自定义通道名称。
Description
通道描述信息。
Channel type
选择通知类型。请固定选择“SMN”。
Topic
关联SMN主题。选择准备工作中创建的SMN主题名。
图2 Create channel
- 单击“Create”创建通道。
- 返回Channels页面,在列表可见新建的SMN目的端,表示创建完成。 图3 Channels列表
- 在Channels页面单击“Create channel”配置通道信息。
- 在Dashboards页面,选择左侧导航栏的“OpenSearch Plugins > Alerting”,进入告警插件界面。
- 新建监控器与触发器,定义告警的触发条件和监控频率。
- 在Alerting页面选择“Monitors”页签,单击“Create monitor”配置监控器。
表2 Monitors参数说明 参数名称
说明
Monitor details
Monitor name
自定义一个监控器名称。
Monitor type
选择Monitor类型。
- Per query monitor(普通监控)
- Per bucket monitor(聚合桶监控)
- Per cluster metrics monitor(集群指标监控)
- Per document monitors(文档级监控)
- Composite monitors(复合监控)
本示例选择“Per query monitor”,其类型的配置指导请参见OpenSearch官方文档Monitors。
Monitor defining method
选择一种方式定义监控器,推荐使用“Extraction query editor”。
- Visual editor:可视化的query语句
- Extraction query editor:具体的query语句
- Anomaly detector:异常检测插件的监测
选择不同的“Monitor type”,所支持的监控方式不同,请以实际界面为准。
Detector
当“Monitor defining method”选择“Anomaly detector”时,请选择异常检测任务。
Frequency
选择监控频率,并设置监控频率的间隔信息。
- By interval:按时间间隔
- Daily:按每天
- Weekly:按每周
- Monthly:按每月
- Custom cron expression:按cron脚本规划
Select data
Index
当“Monitor defining method”选择“Visual editor”或“Extraction query editor”方式定义监控时,需要选择监控的索引。
Time field
当“Monitor defining method”选择“Visual editor”方式定义监控时,需要选择一个字段作为时间字段,来定义count等计数参数。
Query
Metrics
当“Monitor defining method”选择“Visual editor”方式定义监控时,需要设置提取统计数据的指标范围。
Time range for the last
当“Monitor defining method”选择“Visual editor”方式定义监控时,需要设置插件应监控的时间范围。
Data filter
当“Monitor defining method”选择“Visual editor”方式定义监控时,需要设置过滤器进行数据检索。
Group by
当“Monitor defining method”选择“Visual editor”方式定义监控时,需要指定一个字段,使其每一个值都会触发告警。
Define extraction query
当“Monitor defining method”选择“Extraction query editor”方式定义监控时,需要输入query语句定义监控。
Request type
当“Monitor type”选择“Per cluster metrics monitor”时,需要指定请求类型来监控集群指标,例如运行状况、CPU使用率等。
Preview query and performance
预览当前Query配置下查询结果。
- 单击“Add trigger”添加Triggers指定告警触发条件及告警时应触发的动作。
- 在“Triggers”设置触发告警的灵敏度和目的端的消息发布。
表3 Trigger参数说明 参数名称
说明
Define trigger
Trigger name
自定义一个触发器名称。
Severity level
定义触发器的敏感度,选择触发多少条告警之后发送告警消息,“1”为最高敏感度。
Trigger condition
定义触发条件。满足触发条件就会触发告警。
Configure actions
Action name
自定义一个触发器动作名称。
Channels
选择5创建的SMN通道。
Message subject
消息的描述信息。
Message
设置SMN主题发送的body,定义消息发布的文本。默认定义了目的端是Email类型时的主题和正文,详细参数说明请参见消息发布。
Perform action
当“Monitor type”选择“Per bucket monitor”时,需要设置告警是否组合发送。
- Per execution:多个指标触发条件后组合发送告警。
- Per alert:多个指标触发条件后各自发送告警。
Actionable alerts
当“Monitor type”选择“Per bucket monitor”、“Perform action”选择“Per alert”时,需要设置触发条件后可执行的告警。
- De-duplicated:已触发的告警,OpenSearch保留现有告警,以防止多次创建相同告警。
- New:新创建的告警。
- Completed:不持续触发的告警。
Throttling
设置消息发送频率用来限制在指定时间段内收到的通知消息数量,防止在异常波动期间瞬间产生数千条消息致资费消耗或信息轰炸。
例如设置10分钟,在接下来的10分钟内,即使触发条件满足多次,SMN仅发送1次告警通知。超过10分钟后,如果触发告警条件,SMN才会再次发送告警通知。
图4 设置触发器动作的目的端
- 单击“Send test message”验证告警通知链路。
- 如图6所示,SMN主题订阅者成功收到消息,则表示告警通知设置成功。 图5 发送验证信息
- 单击“Create”返回Monitor详情页,完成配置。
- 在Alerting页面选择“Monitors”页签,单击“Create monitor”配置监控器。
配置SMN告警通知(OpenSearch 1.3.6)
- 登录云搜索服务管理控制台。
使用具有CSS服务操作权限的账号登录即可。
- 在左侧导航栏,选择“集群管理 > OpenSearch”。
- 在集群列表,选择目标集群,单击操作列的“Dashboards”,登录OpenSearch Dashboards。
- 在OpenSearch Dashboards页面,选择左侧导航栏的“菜单 > Alerting”。
- 新建一个SMN目的端用于发送告警消息。
- 在Alerting页面选择“Destinations”页签,单击“Add destination”配置目的端信息。
表4 Destinations参数说明 参数名称
说明
Name
自定义目的端名称。
Type
选择通知类型。请固定选择“SMN”。
Topic
关联SMN主题。选择准备工作中创建的SMN主题名。
图7 Add destination
- 单击“Create”创建Destinations。
- 返回Destinations页面,在列表可见新建的SMN目的端,表示创建完成。 图8 Destinations列表
- 在Alerting页面选择“Destinations”页签,单击“Add destination”配置目的端信息。
- 新建监控器与触发器,定义告警的触发条件和监控频率。
- 在Alerting页面选择“Monitors”页签,单击“Create monitor”配置监控器。
表5 Monitors参数说明 参数名称
说明
Monitor details
Monitor name
自定义一个监控器名称。
Monitor type
选择Monitor类型。
- Per query monitor(普通监控)
- Per bucket monitor(聚合桶监控)
- Per cluster metrics monitor(集群指标监控)
- Per document monitors(文档级监控)
- Composite monitors(复合监控)
本示例选择“Per query monitor”,其类型的配置指导请参见OpenSearch官方文档Monitors。
Monitor defining method
选择一种方式定义监控器,推荐使用“Extraction query editor”。
- Visual editor:可视化的query语句
- Extraction query editor:具体的query语句
- Anomaly detector:异常检测插件的监测
选择不同的“Monitor type”,所支持的监控方式不同,请以实际界面为准。
Detector
当“Monitor defining method”选择“Anomaly detector”时,请选择异常检测任务。
Frequency
选择监控频率,并设置监控频率的间隔信息。
- By interval:按时间间隔
- Daily:按每天
- Weekly:按每周
- Monthly:按每月
- Custom cron expression:按cron脚本规划
Data source
Index
当“Monitor defining method”选择“Visual editor”或“Extraction query editor”方式定义监控时,需要选择监控的索引。
Time field
当“Monitor defining method”选择“Visual editor”方式定义监控时,需要选择一个字段作为时间字段,来定义count等计数参数。
Query
Metrics
当“Monitor defining method”选择“Visual editor”方式定义监控时,需要设置提取统计数据的指标范围。
Time range for the last
当“Monitor defining method”选择“Visual editor”方式定义监控时,需要设置插件应监控的时间范围。
Data filter
当“Monitor defining method”选择“Visual editor”方式定义监控时,需要设置过滤器进行数据检索。
Group by
当“Monitor defining method”选择“Visual editor”方式定义监控时,需要指定一个字段,使其每一个值都会触发告警。
Define extraction query
当“Monitor defining method”选择“Extraction query editor”方式定义监控时,需要输入query语句定义监控。
Request type
当“Monitor type”选择“Per cluster metrics monitor”时,需要指定请求类型来监控集群指标,例如运行状况、CPU使用率等。
- 单击“Add trigger”添加Triggers指定告警触发条件及告警时应触发的动作。
- 在“Triggers”设置触发告警的灵敏度和目的端的消息发布。
表6 Trigger参数说明 参数名称
说明
Define trigger
Trigger name
自定义一个触发器名称。
Severity level
定义触发器的敏感度,选择触发多少条告警之后发送告警消息,“1”为最高敏感度。
Trigger condition
定义触发条件。满足触发条件就会触发告警。
Configure actions
Action name
自定义一个触发器动作名称。
Destination
选择5创建的SMN目的端。
Message
设置SMN主题发送的body,定义消息发布的文本。默认定义了目的端是Email类型时的主题和正文,详细参数说明请参见消息发布。
Perform action
当“Monitor type”选择“Per bucket monitor”时,需要设置告警是否组合发送。
- Per execution:多个指标触发条件后组合发送告警。
- Per alert:多个指标触发条件后各自发送告警。
Actionable alerts
当“Monitor type”选择“Per bucket monitor”、“Perform action”选择“Per alert”时,需要设置触发条件后可执行的告警。
- De-duplicated:已触发的告警,OpenSearch保留现有告警,以防止多次创建相同告警。
- New:新创建的告警。
- Completed:不持续触发的告警。
Throttling
设置消息发送频率用来限制在指定时间段内收到的通知消息数量,防止在异常波动期间瞬间产生数千条消息致资费消耗或信息轰炸。
例如设置10分钟,在接下来的10分钟内,即使触发条件满足多次,SMN仅发送1次告警通知。超过10分钟后,如果触发告警条件,SMN才会再次发送告警通知。
图9 设置触发器动作的目的端
- 单击“Send test message”验证告警通知链路。 图10 发送验证信息
- 如图11所示,SMN主题订阅者成功收到消息,则表示告警通知设置成功。
- 单击“Create”返回Monitor详情页,完成配置。
- 在Alerting页面选择“Monitors”页签,单击“Create monitor”配置监控器。

