如何在使用 grafana 和 prometheus-operator 时配置电子邮件警报
Posted
技术标签:
【中文标题】如何在使用 grafana 和 prometheus-operator 时配置电子邮件警报【英文标题】:How to config email alert in using grafana and prometheus-operator 【发布时间】:2020-04-21 05:11:17 【问题描述】:我通过 helm 安装了 prometheus-operator(包括 prometheus/alertmanager/grafana)。然后我通过电子邮件访问 Grafana UI 和配置警报。当我点击发送电子邮件测试时,我收到消息“SMTP 未配置,请检查您的 grafana.ini 配置文件的 [smtp] 部分”
但我不知道在这种情况下 grafana.ini 可以更改到哪里。
[root@k8s-master ~]# kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-5bbc8f45cb-nlqgh 1/1 Running 1 15h
kube-system calico-node-lk2j5 1/1 Running 1 15h
kube-system calico-node-v6wzs 1/1 Running 1 15h
kube-system calico-node-zfh5r 1/1 Running 1 15h
kube-system coredns-5c98db65d4-79c2g 1/1 Running 1 15h
kube-system coredns-5c98db65d4-bqj7g 1/1 Running 1 15h
kube-system etcd-k8s-master 1/1 Running 1 15h
kube-system kube-apiserver-k8s-master 1/1 Running 1 15h
kube-system kube-controller-manager-k8s-master 1/1 Running 2 15h
kube-system kube-proxy-8qmdt 1/1 Running 1 15h
kube-system kube-proxy-qwgbc 1/1 Running 1 15h
kube-system kube-proxy-vhqjd 1/1 Running 1 15h
kube-system kube-scheduler-k8s-master 1/1 Running 1 15h
monitoring alertmanager-prometheus-operator-alertmanager-0 2/2 Running 3 15h
monitoring prometheus-operator-grafana-64848fc9bb-dbnwc 2/2 Running 3 15h
monitoring prometheus-operator-kube-state-metrics-5d46566c59-ck4np 1/1 Running 2 15h
monitoring prometheus-operator-operator-64dcc7bfc-lpdj6 2/2 Running 2 15h
monitoring prometheus-operator-prometheus-node-exporter-ns4kg 1/1 Running 1 15h
monitoring prometheus-operator-prometheus-node-exporter-tdhwq 1/1 Running 2 15h
monitoring prometheus-operator-prometheus-node-exporter-xt8z9 1/1 Running 2 15h
monitoring prometheus-prometheus-operator-prometheus-0 3/3 Running 4 15h
【问题讨论】:
【参考方案1】:感谢alertmanager.config 键,您将能够使用 helm 变量覆盖此配置。 此键将 yaml 转换为 alertmanager 的配置,因此您可以使用每个 alertmanager configuration。 您可能还应该将grafana.ini 配置更改为configure smtp 到grafana(测试似乎使用该配置)。您可以通过“服务器管理员”>“设置”在 Grafana 中检查此配置,搜索“smtp”。
作为参考,您可以对 alertmanager 执行以下操作:
helm upgrade --install prometheus stable/prometheus-operator \
-f helm/prometheus-operator.yml \
-f helm/grafana-custom.staging.yml \
--set-string alertmanager.config.global.smtp_smarthost="my.smtp.tld:465" \
--set-string alertmanager.config.global.smtp_auth_username="my@email.tld" \
--set-string alertmanager.config.global.smtp_from="my@email.tld" \
--set-string alertmanager.config.global.smtp_auth_password="MyAmazingPassword" \
--set-string grafana.'grafana\.ini'.smtp.enabled=true \
--set-string grafana.'grafana\.ini'.smtp.host="my.smtp.tld:465" \
--set-string grafana.'grafana\.ini'.smtp.from_address="my@email.tld" \
--set-string grafana.'grafana\.ini'.smtp.user="my@email.tld" \
--set-string grafana.'grafana\.ini'.smtp.password="MyAmazingPassword"
【讨论】:
【参考方案2】:grafana.ini 是通过 prometheus-operator helm 部署中的 configmaps 加载的。如果您已经通过 helm 安装了它,那么您只需修改 configmap,然后重新启动 grafana pod。以下是我能够使用 SMTP 的最低配置。
[smtp]
enabled = true
host = your.smtp.server.name:25
skip_verify = true
from_address = "grafana@xyz.com"
from_name = Grafana
要获取 configmap,请运行以下命令并编辑 configmap(如果 prometheus-operator 部署在非默认命名空间中,则在下面的命令中包含命名空间)。
kubectl get configmap | grep grafana
修改configmap后,重启grafana pod(不需要重启其他pod)。
注意:不推荐 Skip_verify = true。
【讨论】:
以上是关于如何在使用 grafana 和 prometheus-operator 时配置电子邮件警报的主要内容,如果未能解决你的问题,请参考以下文章
Centos7 docker部署监控Prometheus+Grafana
Grafana“节点导出器已满”仪表板在导入后不显示任何数据