Grafana接入SLS开放告警

本文涉及的产品
对象存储 OSS,20GB 3个月
阿里云盘企业版 CDE,企业版用户数5人 500GB空间
日志服务 SLS,月写入数据量 50GB 1个月
简介: Grafana是监控运维场景下常用的开源系统,它丰富易用的可视化界面极大的方便了开发运维的工作。但是另一方面,Grafana自带的告警功能较为简单,不能很好的满足日常需求。新版SLS告警提供了丰富易用的告警功能,能够很好的补足Grafana的告警功能,并且支持通过包括短信、电话、微信、钉钉、邮箱在内的10多种通知渠道发送给用户。

背景介绍

Grafana是监控运维场景下常用的开源系统,它丰富易用的可视化界面极大的方便了开发运维的工作。但是另一方面,Grafana自带的告警功能较为简单,不能很好的满足日常需求。新版SLS告警提供了丰富易用的告警功能,能够很好的补足Grafana的告警功能,并且支持通过包括短信、电话、微信、钉钉、邮箱在内的10多种通知渠道发送给用户

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提供的告警功能,从而更为高效的了解以及处理服务出现的问题。

相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
相关文章
|
1月前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
218 3
|
4月前
|
存储 监控 Serverless
阿里泛日志设计与实践问题之Grafana Loki在日志查询方案中存在哪些设计限制,如何解决
阿里泛日志设计与实践问题之Grafana Loki在日志查询方案中存在哪些设计限制,如何解决
|
1月前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
|
1月前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
179 0
|
3月前
|
运维 Kubernetes 监控
Loki+Promtail+Grafana监控K8s日志
综上,Loki+Promtail+Grafana 监控组合对于在 K8s 环境中优化日志管理至关重要,它不仅提供了强大且易于扩展的日志收集与汇总工具,还有可视化这些日志的能力。通过有效地使用这套工具,可以显著地提高对应用的运维监控能力和故障诊断效率。
370 0
|
4月前
|
数据采集 监控 Unix
性能监控之Telegraf+InfluxDB+Grafana实现结构化日志实时监控
【8月更文挑战第1天】性能监控之Telegraf+InfluxDB+Grafana实现结构化日志实时监控
347 0
|
6月前
|
运维 Serverless API
Serverless 应用引擎产品使用合集之sls日志告警调用函数计算,出现抛出的结果异常,是什么原因
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
6月前
|
存储 运维 Serverless
函数计算产品使用问题之日志告警不生效,一般是由于什么造成的
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
7月前
|
JSON Prometheus 监控
拥抱开源生态-SLS仪表盘与Grafana全面互通
2017年前:第三方可视化的依赖在最开始的阶段,SLS还未自研可视化仪表盘,只能通过接入第三方可视化来实现日志服务的可观测。包括:来实现日志服务的可观测。包括:DataV [历史文章] [最新文档]历史文章最新文档Grafana [历史文章] [最新文档]历史文章最新文档Tableua(通过JDBC...
224 0
拥抱开源生态-SLS仪表盘与Grafana全面互通
|
7月前
|
机器学习/深度学习 运维 监控
用SLS配置日志关键字告警的N种方法
本文由日志关键词告警出发,介绍了使用SLS进行关键词监控告警配置,并且介绍了几种常见的配置方法,可以覆盖关键词监控的大部分场景。
389 0
用SLS配置日志关键字告警的N种方法

相关产品

  • 日志服务