如何在OpenSearch中通过Mustache模板自定义告警监控消息?
自定义OpenSearch告警消息(基于Mustache模板)
实现步骤
1. 配置通知渠道的自定义模板
在OpenSearch控制台进入告警管理 > 通知渠道,选中目标通知渠道(如Webhook、邮件),找到「消息模板」配置项,切换为自定义JSON模板模式。
2. 编写Mustache自定义模板
利用OpenSearch暴露的告警上下文变量,结合Mustache语法拼接所需内容。以下是Webhook渠道的示例模板:
{ "告警标题": "{{alert.name}} 触发", "服务名称": "订单处理核心服务", "触发指标": { "CPU利用率": "{{context.results.0.aggregations.cpu_usage_avg.value}}%", "阈值": "{{alert.threshold}}" }, "快速排查": "https://your-opensearch-domain/app/dashboards#/view/your-dashboard-uuid", "告警详情": "{{alert.description}}", "触发时间": "{{context.triggeredAt}}" }
常用变量说明:
{{alert.name}}:告警规则名称{{context.results.0.aggregations.[聚合字段名].value}}:聚合查询返回的指标值(替换[聚合字段名]为你规则中定义的字段){{alert.threshold}}:告警阈值{{context.triggeredAt}}:告警触发时间戳
3. 验证模板效果
在通知渠道配置页点击测试,模拟告警触发,检查目标渠道接收的消息是否包含预期的自定义名称、指标和链接。若格式不符,根据错误提示调整模板变量路径或结构。
4. 关联告警规则
回到告警规则编辑页,将配置好的自定义模板渠道关联到该规则,确保告警触发时使用自定义模板推送消息。
关键提示
- 若告警规则按多维度(如多服务)聚合,需用Mustache的遍历语法
{{#context.results}}...{{/context.results}}批量处理每个维度的指标 - 仪表盘链接需使用完整可访问URL,确保接收方有权限访问对应OpenSearch Dashboards
- 不同渠道模板格式有差异:邮件支持HTML格式(可在模板中嵌入
<a>标签实现链接),Webhook优先用JSON结构
内容的提问来源于stack exchange,提问作者Viewsp
相关产品推荐
相关产品推荐

