Grafana使用日志5--配置SMTP以发送忘记密码重置邮件

背景

在项目中,我们每个人都会用到各种各样的工具,随着工具的增多,拥有的账号的数量也随之递增,这时候如果没有使用密码管理工具,很容易就忘记了某一个工具的账号密码
而我们现在就要讨论一下在Grafana中,如果忘记了密码,怎么在不联系管理员的情况下手动重置密码

配置

在Grafana登录时,我们可以看到在登陆框的下面有一个Forget your password?
点击该按钮,会让你输入用户名或邮箱,然后Grafana就会自动发送邮件到这个邮箱,帮你重置密码
但是如果没有配置SMTP服务的话,这个功能是不起作用的,所以本文就是用来讲如何配置SMTP

打开Grafana配置文件(/etc/grafana/grafana.ini),找到如下这一段

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#################################### SMTP / Emailing ##########################
[smtp]
;enabled = false
enabled = true
;host = localhost:25
host = {{smtp-server:465}}
;user =
user = {{username}}
# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
;password =
password = {{password}}
;cert_file =
;key_file =
;skip_verify = false
;from_address = admin@grafana.localhost
from_address = {{aaa@example.com}}
;from_name = Grafana
# EHLO identity in SMTP dialog (defaults to instance_name)
;ehlo_identity = dashboard.example.com
ehlo_identity = {{ehlo}}
# SMTP startTLS policy (defaults to 'OpportunisticStartTLS')
;startTLS_policy = NoStartTLS
# Enable trace propagation in e-mail headers, using the 'traceparent', 'tracestate' and (optionally) 'baggage' fields (defaults to false)
;enable_tracing = false

按照如上配置,修改括号中的内容

再之后重启grafana

1
sudo systemctl restart grafana-server

测试

经测试可以正常发送,配置正确

题外话

startTLS_policy

关于startTLS_policy,有三个选项,下面介绍一下每一个选项
startTLS_policy 用于定义 Grafana 在与 SMTP 服务器通信时如何处理 STARTTLS。它有以下几个可能的取值:

  • OpportunisticStartTLS(默认值):
    Grafana 会尝试使用 STARTTLS 升级为加密通信。
    如果服务器不支持 STARTTLS,Grafana 会回退到明文通信。
    这是一种灵活的策略,适用于大多数场景。

  • MandatoryStartTLS:
    Grafana 必须使用 STARTTLS 加密通信。
    如果服务器不支持 STARTTLS,Grafana 会拒绝连接并报错。
    这种策略适合对安全性要求较高的场景。

  • NoStartTLS:
    Grafana 不会尝试使用 STARTTLS。
    所有通信都以明文方式进行。
    这种策略仅适用于测试或内部网络环境,不推荐在生产环境中使用。