alertmanager是与prometheus相关的组件,用于为监控数据配置告警指标,并发送给告警人。
在k8s中运行的alertmanager,其配置文件为容器中的/etc/alertmanager/config/alertmanager.yaml。然而这个文件为只读文件,无法在容器里直接修改,也无法从外部写好了直接拷贝进去。
k8s中的alertmanager,这个配置文件是通过secret解密后配置到上述路径下的,因此如果需要修改此配置文件,需要修改对应的secret资源,即:
kubectl get secret -n kube-system alertmanager-prometheus-operator-alertmanager > secret.yaml
将需要配置的alertmanager.yaml文件的内容写入secret.yaml中:
apiVersion: v1 kind: Secret
metadata:
name: alertmanager-prometheus-operator-alertmanager
namespace: kube-system
type: Opaque stringData: alertmanager.yaml: |- xxx xxx slack.tpl: |- xxx xxx
注意,这里需要将原来secret中的data字段修改为stringData字段,这样secret在创建后会自动加密,省去了手动base64加密的步骤。
执行kubectl apply -f .后,很快新的配置就能自动生效。