如何配置Alertmanager使其从新Kubernetes命名空间读取AlertmanagerConfig配置
结论:可以实现
alertmanager.alertmanagerSpec.alertmanagerConfigNamespaceSelector 字段的作用就是控制Alertmanager实例拉取哪些命名空间下的AlertmanagerConfig配置,完全符合你的使用需求,具体操作如下:
- 为你有权限操作的
app-dev命名空间添加专属标签,示例:
kubectl label namespace app-dev alertmanager-config=enable
- 修改运行在
prometh命名空间的Alertmanager资源配置,添加alertmanagerConfigNamespaceSelector匹配上述标签:
apiVersion: monitoring.coreos.com/v1 kind: Alertmanager metadata: name: <你的Alertmanager实例名称> namespace: prometh spec: # 其余原有配置保持不变 alertmanagerConfigNamespaceSelector: matchLabels: alertmanager-config: enable
如果你需要让Alertmanager拉取集群所有命名空间的AlertmanagerConfig,直接将该字段设置为空对象即可:
alertmanagerConfigNamespaceSelector: {}
补充注意事项
Prometheus Operator默认会给每个AlertmanagerConfig的路由自动追加一条namespace=<配置所在命名空间>的隐式匹配规则,只会匹配来自该命名空间的告警。如果你需要让app-dev下的配置匹配携带sourceNamespace: app-dev标签的跨命名空间告警,可以额外配置关闭隐式匹配:
alertmanager: alertmanagerSpec: alertmanagerConfigMatcherStrategy: None
内容的提问来源于stack exchange,提问作者overexchange
相关产品推荐
相关产品推荐

