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

通过Helm部署Prometheus-Stack后,如何配置Alertmanager新增接收者?

配置Prometheus-stack中Alertmanager的正确方式

核心逻辑说明

你使用的kube-prometheus-stack(Helm包)中,Alertmanager的配置优先级规则:

  • 优先读取Helm values里alertmanager.config字段生成的Secret
  • 若开启enableAlertmanagerConfig,会自动合并同命名空间下的AlertmanagerConfig自定义资源到主配置

解决配置不生效的实操步骤

1. 确认当前配置状态

先检查现有Helm release的Alertmanager配置,确认你的修改是否被正确应用:

helm get values <你的release名称> -n <部署命名空间>

示例:如果你的release名为prometheus-stack,部署在monitoring命名空间,执行:

helm get values prometheus-stack -n monitoring

2. 通过Helm Values配置Alertmanager(最可靠方式)

不要直接修改chart自带的values.yaml,创建一个自定义values文件(比如alertmanager-custom.yaml),写入接收者配置:

alertmanager:
  config:
    global:
      resolve_timeout: 5m
    route:
      group_by: ['alertname']
      group_wait: 10s
      group_interval: 10s
      repeat_interval: 1h
      receiver: 'your-new-receiver'
    receivers:
    - name: 'your-new-receiver'
      # 替换为你的接收方式,示例为邮件配置
      email_configs:
      - to: 'alert-notify@your-domain.com'
        from: 'alertmanager@your-domain.com'
        smarthost: 'smtp.your-domain.com:587'
        auth_username: 'smtp-user'
        auth_password: 'smtp-pass'
    inhibit_rules:
    - source_match:
        severity: 'critical'
      target_match:
        severity: 'warning'
      equal: ['alertname', 'instance']

执行Helm更新让配置生效:

helm upgrade <你的release名称> prometheus-community/kube-prometheus-stack -n <部署命名空间> -f alertmanager-custom.yaml

等待Alertmanager Pod重启后,验证配置是否加载成功:

kubectl exec -n <部署命名空间> <alertmanager-pod名称> -- cat /etc/alertmanager/config/alertmanager.yml

3. 启用AlertmanagerConfig资源(可选)

如果想用AlertmanagerConfig自定义资源配置,需要先在Helm values中开启该功能:

alertmanager:
  enableAlertmanagerConfig: true

更新Helm release后,创建同命名空间的AlertmanagerConfig资源,示例:

apiVersion: monitoring.coreos.com/v1alpha1
kind: AlertmanagerConfig
metadata:
  name: custom-receiver-config
  namespace: monitoring
spec:
  route:
    receiver: 'slack-receiver'
  receivers:
  - name: 'slack-receiver'
    slack_configs:
    - channel: '#alerts'
      api_url: 'https://hooks.slack.com/services/XXX/XXX/XXX'

该资源的配置会自动合并到Alertmanager主配置中。

4. 排查配置为空的常见原因

  • 检查Helm更新是否成功:执行helm history <你的release名称> -n <部署命名空间>,确认最新revision状态为deployed
  • 检查Alertmanager对应的Secret:默认Secret名为<你的release名称>-alertmanager,查看内容:
    kubectl get secret <secret名称> -n <部署命名空间> -o jsonpath='{.data.alertmanager\.yml}' | base64 -d
    
  • 查看Alertmanager Pod日志,排查配置加载的语法错误:
    kubectl logs -n <部署命名空间> <alertmanager-pod名称>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:33:11