如何为microk8s prometheus插件的Grafana配置SMTP设置
给microk8s Prometheus栈中Grafana传递自定义配置的方法
microk8s通过microk8s enable prometheus部署的Grafana运行在monitoring命名空间下,Deployment名称为grafana,可以通过以下两种常用方法传入自定义grafana.ini配置,比如SMTP告警配置:
方法1:挂载ConfigMap作为完整配置文件
适合需要修改大量配置项的场景:
- 第一步:编写自定义的
grafana.ini文件,补充你需要的SMTP等配置,示例:
[smtp] enabled = true host = 你的SMTP服务地址:端口 user = 发件人邮箱账号 password = 发件人邮箱密码/授权码 skip_verify = false from_address = 发件人邮箱地址 from_name = Grafana告警通知
- 第二步:基于上述文件创建ConfigMap:
如果配置了全局kubectl别名,执行:kubectl create configmap grafana-custom-config -n monitoring --from-file=grafana.ini=./你的grafana.ini本地路径
如果没有配置别名,用microk8s自带kubectl:microk8s kubectl create configmap grafana-custom-config -n monitoring --from-file=grafana.ini=./你的grafana.ini本地路径 - 第三步:编辑Grafana的Deployment,挂载上述ConfigMap:
执行编辑命令:kubectl edit deployment grafana -n monitoring(无别名则替换为microk8s kubectl edit deployment grafana -n monitoring)
找到spec.template.spec.containers[0].volumeMounts字段,新增挂载项:
- name: custom-grafana-config mountPath: /etc/grafana/grafana.ini subPath: grafana.ini readOnly: true
再找到spec.template.spec.volumes字段,新增ConfigMap引用:
- name: custom-grafana-config configMap: name: grafana-custom-config
保存退出后,Deployment会自动滚动重启Pod,新配置随即生效。
方法2:通过环境变量覆盖指定配置项
适合仅需修改少量配置的场景,无需额外创建ConfigMap:
Grafana支持GF_<配置段大写>_<配置项大写>格式的环境变量覆盖grafana.ini中的对应配置,你可以直接编辑Grafana的Deployment添加环境变量:
- 执行编辑命令:
kubectl edit deployment grafana -n monitoring - 找到
spec.template.spec.containers[0].env字段,新增SMTP相关的环境变量,示例:
- name: GF_SMTP_ENABLED value: "true" - name: GF_SMTP_HOST value: "你的SMTP服务地址:端口" - name: GF_SMTP_USER value: "发件人邮箱账号" - name: GF_SMTP_PASSWORD value: "发件人邮箱密码/授权码" - name: GF_SMTP_FROM_ADDRESS value: "发件人邮箱地址" - name: GF_SMTP_FROM_NAME value: "Grafana告警通知"
保存退出后等待Pod重启完成即可生效。
注意事项
- 若你的SMTP密码属于敏感信息,建议将密码存储在K8s Secret中,通过
valueFrom.secretKeyRef引用,避免明文泄露。 - 配置完成后可登录Grafana后台,进入告警联系人点页面测试邮件发送,验证配置是否生效。
内容的提问来源于stack exchange,提问作者Meng-Yuan Huang
相关产品推荐
相关产品推荐

