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 .后,很快新的配置就能自動生效。