顺滑迁移Prometheus告警到SLS告警

本文涉及的产品
对象存储 OSS,20GB 3个月
文件存储 NAS,50GB 3个月
对象存储 OSS,内容安全 1000次 1年
简介: Prometheus作为一个开源的云原生监控系统,具有很广泛的应用场景,通过各种Exporter收集各类设备,应用的指标,将各类指标抽象为时序数据,在Prometheus上可以使用PromQL进行高效的指标查询和分析。SLS告警是云上的一站式告警监控运维平台,支持各种Ops场景。SLS告警系统主要包括指标采集,监控系统,告警管理,通知管理等子系统。本文介绍如何将Prometheus告警无缝转换为SLS告警,并使用SLS告警的管理功能。

SLS告警简介

SLS告警是云上的一站式告警监控运维平台,支持各种Ops场景。SLS告警系统主要包括指标采集,监控系统,告警管理,通知管理等子系统。

  • 指标采集包括时序、日志、Trace数据;
  • 监控系统支持定时查询各类数据源并进行协同评估,满足触发条件后,产生告警;
  • 告警管理系统主要包括对监控系统产生的告警进行合并、抑制、静默等处理,以此来达到告警降噪的目的,除了SLS自身的告警监控,还支持常见的第三方告警系统,可以将Prometheus,Zabbix,Grafana等产生的告警进行统一降噪处理。
  • 通知管理支持众多的通知渠道,包括常见的短信、语音、Webhook、钉钉、企业微信、飞书,还支持Function Compute和EventBridge等。同时,还支持灵活的分派策略,支持将不同属性的告警发送给不同的渠道。此外还包括灵活的值班轮岗,代班等功能。

Prometheus告警

Prometheus作为一个开源的云原生监控系统,具有很广泛的应用场景,通过各种Exporter收集各类设备,应用的指标,将各类指标抽象为时序数据,在Prometheus上可以使用PromQL进行高效的指标查询和分析。

在告警方面,可以在Prometheus上配置监控规则,满足Prometheus的监控规则后,会有触发或者恢复告警产生。这些告警的通知需要搭建另外的告警管理系统AlertManger进行处理。

Prometheus的告警规则配置示例(参考)如下:

告警产生后可以在Prometheus的UI看到触发告警的状态:

Prometheus告警规则的配置主要包括告警名称,评估语句,告警labels,告警annoations等信息,告警触发后需要在AlertManager中配置告警的路由,通知等。AlertManager虽然功能强大,但是需要具备“程序员”的能力才可以进行比较灵活的配置,AlertManager基本是一套全脚本化的配置:对于运营人员如果对业务进行告警配置,往往不是很友好;

如果需要常见的告警值班轮岗等需求时,需要对接额外的Pageduty等系统,在使用上需要维护各类碎片化的系统。在告警产生时如果需要对接各类云上功能,比如Function Compute或者EventBridge,需要自行开发Webhook等,不具有一站式的解决方案。

实现同样的功能,Prometheus告警需要搭配AlertManager,PageDuty再加上脚本化开发等才可以实现相应的功能。而SLS告警支持在阿里云控制台简单的输入配置,界面化的操作即可完成告警管理的配置,同时SLS告警支持比较高阶的功能,如轮岗值班代班等,可以满足各类运维运营人员的需求。同时SLS告警具有强大的支持团队,在使用上有任何问题,可以随时在SLS支持群中提出获取解决方案。


Prometheus告警迁移方案

有没有一种办法即保留现有的Prometheus使用方式,又可以将现有的Prometheus告警规则迁移到云上使用呢?答案是肯定的。这里介绍一种简单的迁移办法,并提供脚本来进行迁移。

该迁移方案主要包括两个步骤,接下来分别进行详细介绍

  • 将Prometheus数据RemoteWrite到SLS的时序库。
  • 将Prometheus告警规则迁移转化为SLS告警。

Prometheus数据RemoteWrite到SLS的时序库中

Promethues默认将时序指标存储在本地磁盘和内存,在指标数据非常庞大的时候,往往需要占用海量的内存;Prometheus也可以将指标数据RemoteWrite到远端存储。SLS时序存储具有价格低廉,查询高效,兼容PromQL语法的特点,是一种理想的RemoteWrite目标。配置非常简单:

  • 首先创建MetricStore,参考创建MetricStore
  • 创建具有写入MetricStore的AK,配置Prometheus的Remote Write,配置脚本如下:
url: https://sls-prometheus-test.cn-beijing.log.aliyuncs.com/prometheus/sls-prometheus-test/prometheus-raw/api/v1/write
basic_auth:  username: access-key-id
  password: access-key-secret
queue_config:  batch_send_deadline: 20s
  capacity: 20480  max_backoff: 5s
  max_samples_per_send: 2048  min_backoff: 100ms
  min_shards: 100   

             

这样就可以在SLS控制台,Project->时序存储->时序库中查看时序数据。具体使用方法可以参考通过Remote Write协议接入Prometheus监控数据


迁移Prometheus告警规则

迁移Prometheus告警规则主要包含两个步骤:

  • 在SLS控制台-告警管理中心创建行动策略
  • 通过脚本将Prometheus告警规则转化为SLS告警规则

创建SLS告警行动策略

首先在SLS控制台进入日志应用->告警管理中心。在第一次进入后,会提示选择告警中心日志库的存储区域,此时可以选择一个跟业务Project一样的区域或者地理位置相近的区域。

然后点击右上角的全局配置

点击左侧行动策略菜单,点击添加按钮,创建行动策略,行动策略配置支持各种通知渠道,具体配置可以参考创建行动策略

Prometheus告警规则迁移到SLS

Prometheus的告警规则主要包含groups,rules的配置,其配置示例在上文也有涉及。这类假设已经有了一批Prometheus的告警规则,文件是prometheus-alert.yaml。内容格式举例如下:

groups:- name: alert
  rules:  - alert: CacheMiss
    expr: sum by (method) (rate(metastore_query_count{job="some_job", hit_cache="true"}[5m])) / sum by (method) (rate(metastore_query_count{job="some_job"}[5m])) * 100 < 85
    for: 1m
    labels:      severity: High
    annotations:      description: Method {{ $labels.method }} cache hit rate is {{ $value }}

Prometheus告警规则可以同SLS告警规则进行同等的映射:

  • alert映射为SLS告警规则名称;
  • expr映射为SLS时序查询的PromQL;
  • for映射为SLS告警规则的连续触发阈值:threshold;
  • labels映射为SLS告警规则中的标签;
  • annoations映射为SLS告警规则的标注;
  • 同时在labels中如果含有severity等严重度的配置,会映射为SLS告警规则的严重度。

同时SLS的告警监控规则的标注支持大部分Prometheus的渲染语法,通过以上的映射规则,可以使用SLS的SDK自行编写程序进行转换。这里提供了一个开箱即用的Python转换脚本,完整脚本可以参考github链接

执行脚本主要步骤如下:

  • 首先创建requirements.txt,主要依赖如下:

pyyaml

aliyun-log-python-sdk

  • 修改main.py,具体AK,SK和行动策略id需要自行配置,其他相关配置如有需要也可自行修改。

  • 安装完requirement.text中的依赖后,可以开始运行python main.py。

即可将告警导入到指定的project下,在Project下查看告警中心,可以看到5个Prometheus告警规则已经导入到SLS的Project下面。

点开其中一个进行编辑,可以看到prometheus告警与SLS告警的映射关系:

可以看到:

  • 规则名称由group和rule的名字拼接而成;
  • 检查频率设置为了最小1分钟;
  • 查询统计使用了SLS的promql_query进行了封装;
  • 分组评估使用了标签自动;
  • 触发条件对应了labels中设置的severity的高严重度;
  • 标注使用了prometheus告警中的annotations进行了替换,为了保持模板的可用性,增加了一个value变量;
  • 告警策略默认使用动态告警策略sls.builtin.dynamic,行动策略使用了事先创建好的huolang-test-prom-test;

至此,已经将prometheus的告警规则转化为了SLS的告警监控规则,后续就可以修改告警策略和行动策略来享受到SLS告警管理带来的便利。

总结

本文分别简单介绍了SLS告警和Prometheus告警,以及两者之间存在映射的可能性,并且通过实例和脚本将两者进行了转换;通过该迁移方案,用户可以将原有的Prometheus告警规则无缝迁移到SLS告警,然后可以使用SLS告警强大的告警降噪和告警通知渠道功能。在使用过程中如果遇到任何问题,可以咨询SLS的技术支持群。

以下链接供参考

SLS日志服务:https://help.aliyun.com/document_detail/48869.html

SLS告警学习路径:https://help.aliyun.com/learn/markets/aliyuningpath/log/alert

通过Remote Write协议接入Prometheus监控数据:https://help.aliyun.com/document_detail/171781.html

创建告警策略:https://help.aliyun.com/document_detail/207709.html

脚本链接:https://github.com/panawala/prom_alert_to_sls



欢迎扫群加入阿里云-日志服务(SLS)技术交流(集团同学请直接搜索群号11702236加入), 获得第一手资料与支持

相关实践学习
通过云拨测对指定服务器进行Ping/DNS监测
本实验将通过云拨测对指定服务器进行Ping/DNS监测,评估网站服务质量和用户体验。
目录
相关文章
|
17天前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
94 3
|
10天前
|
数据采集 Prometheus 监控
Prometheus的告警规则
Prometheus的告警规则
35 11
|
8天前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
|
11天前
|
Prometheus Cloud Native
Prometheus的告警处理
【10月更文挑战第31天】Prometheus的告警处理
20 3
|
11天前
|
Prometheus Kubernetes Cloud Native
Prometheus的告警配置
【10月更文挑战第31天】Prometheus的告警配置
19 1
|
16天前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
82 0
|
4月前
|
弹性计算 Prometheus 监控
从自建开源 Prometheus 迁移到阿里云托管 Prometheus 服务
阿里云可观测监控 Prometheus 版提供高性能、高可用、全托管的监控服务,对接开源生态,支持 Kubernetes、ECS 等场景,解决了自建 Prometheus+Thanos 高成本、运维复杂的问题。本文讨论在各个典型场景下的迁移方案。
12031 69
|
1月前
|
SQL 关系型数据库 MySQL
Hadoop-25 Sqoop迁移 增量数据导入 CDC 变化数据捕获 差量同步数据 触发器 快照 日志
Hadoop-25 Sqoop迁移 增量数据导入 CDC 变化数据捕获 差量同步数据 触发器 快照 日志
37 0
|
3月前
|
数据采集 弹性计算 Prometheus
重磅升级!从自建Prometheus到阿里云托管:无缝迁移,监控能力全面飞跃
【8月更文挑战第2天】如何从自建开源 Prometheus 迁移到阿里云托管 Prometheus 服务
80 2
|
4月前
|
弹性计算 Prometheus Cloud Native
SLS Prometheus存储问题之Union MetricStore在性能测试中是如何设置测试环境的
SLS Prometheus存储问题之Union MetricStore在性能测试中是如何设置测试环境的

相关产品

  • 日志服务