prometheus告警记录持久化(历史告警保存与统计)

本文介绍如何利用alertsnitch将Prometheus的告警数据持久化到Mysql/Postgre,包括K8s部署、alertmanager配置及Grafana展示分析的详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间碰到一个需求:将Prometheus的历史告警进行持久化保存,一遍进行分析统计。在尝试了一些工具后,最终选用了alertsnitch+grafana的方案。

alertsnitch: https://gitlab.com/yakshaving.art/alertsnitch

简单介绍一下这个工具的原理,alertsnitch实现了一个webhook,通过在alertmanager中配置receiver为alertsbnitch webhook将告警发送给alertsnitch,alertsnitch对数据进行处理后存入Mysql/Postgre,详细介绍可参考其gitlab主页。

下面简单介绍一下使用方法(k8s安装,数据库使用Mysql)

1、Mysql创建alertsnitch所用数据库及对应账户,略。

2、安装alertsnitch,修改下面ALERTSNITCH_DSN的值

# alertsnitch-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: alertsnitch
  namespace: alertmanager
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: alertsnitch    
  template:
    metadata:
      labels:
        app.kubernetes.io/name: alertsnitch
    spec:
      containers:
      - image: registry.gitlab.com/yakshaving.art/alertsnitch
        name: alertsnitch
        ports:
        - containerPort: 9567
          name: http
        env:
        - name: ALERTSNITCH_BACKEND
          value: mysql
        - name: ALERTSNITCH_DSN
          value: ${MYSQL_USER}:${MYSQL_PASSWORD}(${MYSQL_IP}:${MYSQL_PORT})/{$MYSQL_DATABASE}
        readinessProbe:
          httpGet:
            path: /-/ready
            port: 9567
          initialDelaySeconds: 30
          periodSeconds: 10
        livenessProbe:
          httpGet:
            path: /-/health
            port: 9567
          initialDelaySeconds: 60
          periodSeconds: 10
apiVersion: v1
kind: Service
metadata:
  name: alertsnitch
  namespace: alertmanager
spec:
  ports:
  - name: http
    port: 9567
    targetPort: http
  selector:
    app.kubernetes.io/name: alertsnitch

3、配置alertmanager

    route:
      receiver: all
      routes:
      #所有告警收集
      - receiver: all
        continue: true

--------------------

    receivers:
    #alertsnitch
    - name: 'all'
      webhook_configs:
      - url: 'http://alertsnitch.alertmanager.svc:9567/webhook'
        send_resolved: true

4、可以使用grafana来进行历史告警的展示和统计,做一个现成的供参考

https://grafana.com/grafana/dashboards/15833

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洒满阳光的午后

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值