Grafana是监控运维场景下常用的开源系统 它丰富易用的可视化界面极大的方便了开发运维的工作。但是另一方面 Grafana自带的告警功能较为简单 不能很好的满足日常需求。新版SLS告警提供了丰富易用的告警功能 能够很好的补足Grafana的告警功能。
Grafana接入SLS要将Grafana的告警消息接入SLS 主要分为两个步骤 在SLS中创建开放告警应用 将Grafana的通知渠道配置为SLS。创建开放告警应用的具体步骤 可以参考文章SLS开放告警简介。下面介绍下如何将Grafana的告警消息接入到SLS中。
获取回调地址在创建开放告警应用之后 通过点击接口按钮 打开如下图所示的回调地址查看窗口。
回调地址由两部分构成 域名部分和子路径部分。其中域名部分属于SLS的接入地址 和地域相关 每个地域都有各自不同的接入地址 子路径部分包括用于发送消息的Access?Key?Id和开放告警应用。如下所示为一个完整的SLS回调地址
cn-heyuan-intranet.log.aliyuncs.com/event/webhook/RAMAK_{ACCESS_KEY_ID}/a123_asdad
其中 cn-heyuan-intranet.log.aliyuncs.com 为域名部分 属于SLS通用的接入地址(endpoint) event/webhook/RAMAK_{ACCESS_KEY_ID}/a123_asdad?则为子路径部分。需要注意的是 用户需要将子路径部分中的{ACCESS_KEY_ID}替换为具体阿里云RAM账户的Access?Key?Id 并且将权限策略AliyunLogOpenEventWrite赋予该账户 a123_asdad则为该开放告警应用的id 用于唯一区别不同的开放告警应用。
创建通知渠道Grafana通过通知渠道(Notification?Channel)向外部发送告警消息 所以只需要将SLS开放告警应用配置为Grafana新的通知渠道 即可接入到SLS。
选择渠道类型Grafana自身支持十几种内置的通知渠道 接入SLS开放告警使用的是webhook渠道。
填入回调地址在Url一栏中填入SLS开放告警提供的回调地址。如果是内网用户 可以使用局域网/VPC接口地址 如果是外网用户 则需要填入公网接口地址。此时需要注意替换占位符{ACCESS_KEY_ID} 以及回调地址要以 http:// 开头。
配置可选参数用户需要配置可选参数Http?Method为POST 其余两项留空即可。
告警配置用户如果想要快捷简便的将Grafana告警消息全部接入到SLS中 可以将SLS开放告警配置为默认通知渠道。这样Grafana会自动将SLS开放告警通知渠道加入到现有的告警规则中去。
另外请不要勾选 Disable?Resolve?Message 这样Grafana会发送告警恢复消息 从而使用户更好的了解当前告警状态。
映射规则Grafana告警消息内容示例如下 SLS开放告警会通过内置的规则 将该消息转为SLS内部的告警消息。
{ dashboardId : 1, evalMatches : [ value : 173.14285714285714, metric : go_gc_duration_seconds_count{instance \ localhost: 9090\ , job \ prometheus\ } , tags : { __name__ : go_gc_duration_seconds_count , instance : localhost:9090 , job : prometheus message : sadfasdf , orgId : 1, panelId : 4, ruleId : 2, ruleName : fuxasdfasd , ruleUrl : http://localhost:3000/d/biSKHC8Mz/new-dashboard-copy?tab alert viewPanel 4 orgId 1 , state : alerting , tags : { severity : crit , xasdfasdf : mveonasdf title : [Alerting] fuxasdfasd }告警严重程度
如果在Grafana告警消息的tags中包含severity字段 开放告警会将该字段映射为告警消息的严重程度。目前开放告警支持多种告警消息严重程度 用户可以根据自己的需要进行配置。如果没有配置 严重程度将默认配置为中等。映射关系如下表所示。
告警严重度
关键字
严重
严重、紧急、critical、disaster、blocker、immediate、fatal、crit、sev0、 sev?0 、p0
高
高、高级、E、H、high、err、error、urgent、major、 sev?1 、sev1、p1
中
中、中级、告警、M、medium、unknown、warn、warning、 not?classified 、average、normal、 sev?2 、sev2、p2
低
低、低级、L、I、info、information、suggestion、minor、informational、 sev?3 、sev3、p3
报告
报告、通知、report、dbg、debug、verbose、trivial、page、ok、 sev?4 、sev4、p4
字段映射SLS开放告警会通过内置规则 将Grafana消息转为SLS内置告警消息。例如将上面的Grafana消息 转为如下所示的告警消息
{ aliuid : {开放告警应用所属的阿里云账号ID} , alert_instance_id : {自动生成} , project : {告警中心所属的Project} , region : {告警中心所属的地域} , alert_id : 2 , alert_type : sls_pub , alert_name : sadfasdf , next_eval_interval : 0, alert_time : 1603859020, fire_time : 1603859020, resolve_time : 0, status : firing , labels : { xasdfasdf : mveonasdf annotations : { __pub_alert_region__ : {发送告警消息的网络接口对应的地域} , __config_app__ : sls_pub_alert , __pub_alert_service__ : {开放告警服务ID} , __pub_alert_app__ : {开放告警应用ID} , __pub_alert_protocol__ : grafana , severity : crit , orgId : 1 , dashboardId : 1 , panelId : 4 , ruleUrl : http://localhost:3000/d/biSKHC8Mz/new-dashboard-copy?tab alert viewPanel 4 orgId 1 , imageUrl : , desc : sadfasdf , title : [Alerting] fuxasdfasd severity : 10, policy : { alert_policy_id : {开放告警应用中配置的告警策略} , action_policy_id : {开放告警应用中配置的行动策略} , repeat_interval : {开放告警应用中配置的重复等待时间} drill_down_query : http://localhost:3000/d/biSKHC8Mz/new-dashboard-copy?tab alert viewPanel 4 orgId 1 , results : [{ query : go_gc_duration_seconds_count{instance \ localhost: 9090\ , job \ prometheus\ } , fire_result : { __name__ : go_gc_duration_seconds_count , instance : localhost:9090 , job : prometheus , value : 173.142 , }
具体的转换规则 请参考官方文档接入Grafana告警。
总结通过将Grafana告警消息接入到SLS 可以不再受限于Grafana提供的告警功能 从而更为高效的了解以及处理服务出现的问题。
本文转载自公众号读芯术(ID:AI_Discovery)。 这一刻你正在应对什么挑战?这位前...
溢价 域名 的续费价格如何?通常来说,因为溢价域名的价值高于普通域名,所以溢...
本文转载自微信公众号「bugstack虫洞栈」,作者小傅哥 。转载本文请联系bugstack...
基本介绍 给定 n 个权值作为 n 个叶子节点,构造一颗二叉树,若该树的带权路径长...
背景 我们知道 如果在Kubernetes中支持GPU设备调度 需要做如下的工作 节点上安装...
想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区 https://...
近几年,互联网行业蓬勃发展,在互联网浪潮的冲击下,互联网创业已成为一种比较...
前言 统计科学家使用交互式的统计工具(比如R)来回答数据中的问题,获得全景的认...
在Python开发过程中,我们难免会遇到多重条件判断的情况的情况,此时除了用很多...
TIOBE 公布了 2021 年 3 月的编程语言排行榜。 本月 TIOBE 指数没有什么有趣的变...