You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Helm部署的Loki配置Slack告警方案咨询

配置Loki告警并推送至Slack的步骤

1. 修正Loki告警规则(基于日志计数触发)

你当前的告警规则仅匹配日志条目,未做计数统计,需要修改expr来统计错误日志数量,当计数达到阈值时触发告警。

修改后的告警规则示例:

alert_rules:
- alert: AppErrorCount
  expr: |
    count_over_time({namespace="health-help", pod=~"stgidentity-.*"} |= `request completed` [5m]) >= 1
  for: 1m
  labels:
    severity: critical
  annotations:
    summary: "错误日志告警: {{ $labels.namespace }}/{{ $labels.pod }}"
    description: "过去5分钟内出现了{{ $value }}条包含`request completed`的错误日志"

说明:

  • count_over_time(...) [5m]:统计5分钟内匹配到的日志条目数量
  • pod=~"stgidentity-.*":用正则匹配所有stgidentity开头的Pod,避免硬编码单个Pod名称
  • 阈值设为>=1:只要出现错误日志就触发告警

2. 配置Alertmanager推送至Slack

方式一:使用Loki内置Alertmanager(推荐)

在你的Loki Helm values中添加Alertmanager配置,指定Slack接收地址:

loki:
  # 保留现有其他配置...
  ruler:
    enable_api: true
    enable_alertmanager_v2: true
    enable_sharding: true
    wal:
      dir: /var/loki/wal
    alertmanager_url: http://loki-alertmanager:9093
  alertmanager:
    enabled: true
    config:
      global:
        slack_api_url: "https://hooks.slack.com/services/XXX/XXX/XXX"  # 替换为你的Slack Webhook地址
      route:
        group_by: ['alertname']
        group_wait: 10s
        group_interval: 10s
        repeat_interval: 1h
        receiver: 'slack-notifications'
      receivers:
      - name: 'slack-notifications'
        slack_configs:
        - channel: '#alerts'  # 替换为你的Slack告警频道
          send_resolved: true
          title: "{{ .CommonAnnotations.summary }}"
          text: "{{ .CommonAnnotations.description }}"

方式二:使用独立Prometheus Alertmanager

如果使用独立的Prometheus Alertmanager,需做以下配置:

  1. 修改Loki的ruler配置,指向Alertmanager地址:
loki:
  ruler:
    alertmanager_url: http://prometheus-alertmanager:9093  # 替换为你的Alertmanager地址
  1. 在Alertmanager配置文件中添加Slack接收器:
global:
  slack_api_url: "https://hooks.slack.com/services/XXX/XXX/XXX"
route:
  group_by: ['alertname']
  group_wait: 10s
  group_interval: 10s
  repeat_interval: 1h
  receiver: 'slack'
receivers:
- name: 'slack'
  slack_configs:
  - channel: '#alerts'
    send_resolved: true
    title: "{{ .CommonAnnotations.summary }}"
    text: "{{ .CommonAnnotations.description }}"

3. 应用配置并验证

  1. 用Helm更新Loki部署:
helm upgrade loki grafana/loki -f your-values.yaml  # 替换为你的values文件路径
  1. 验证告警规则:访问Loki的Ruler API(http://loki-url:3100/ruler/api/v1/rules),确认规则已加载
  2. 触发测试:生成一条包含request completed的错误日志,等待1分钟后检查Slack频道是否收到告警

内容的提问来源于stack exchange,提问作者Illthizam Nazar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 16:43:13