前言
下面介绍的是各种情况下 Grafana忘记密码后进行的重置操作。
【1】web重置
当Grafana的邮件通知配置正常时,你可以通过web界面 点击忘记密码,通过邮件中的链接重置密码
也可联系管理员进入web后台,修改该账户的密码
<1>点击 忘记密码
<2>输入邮箱后,点击发送Reset Password。到你的邮箱等待邮件
<3>复制链接到浏览器
将localhost:3000替换为这个Grafana的域名或IP+端口
<4>两次输入密码后,点击 Reset Password即可重置密码,返回首页用新密码即可登录。
【2】sqlite3重置
此方式需要你可以登录Grafana服务器中
<1>根据你的实际情况查找grafana.db
find查找
find / -name grafana.dbor查看Grafana配置文件,确定grafana.db的路径cat /etc/grafana/grafana.ini
[paths]
;data = /var/lib/grafana通常默认位置为/var/lib/grafana/grafana.db
<2>sqlite3重置密码
(当前演示的是重置admin账号密码为admin)
sqlite3 /var/lib/grafana/grafana.dbupdate user set password = '59acf18b94d7eb0694c61e60ce44c110c7a683ac6a8f09580d626f90f4a242000746579358d77dd9e570e83fa24faa88a8a6', salt = 'F3FAxVm33R' where login = 'admin';.exit
也可在sqlite3进入后,修改一个已知密码的账号为管理员,通过管理员web重置udpate user set is_admin = 1 where login = '账号';
备注:
password后为"admin"字符经过grafana加密后的字符串
where login为指定账号,也可指定其他账号,将其密码先修改成为admin在sqlite3 进入grafana后可通过 select * from user; 查询账号及密码信息修改完成后无需重启服务,即可用新密码登录
【3】API密码重置
当你没有忘记你的账户及对应的密码,仅想要重置密码,可使用curl进行重置,也可写入脚本中执行。
格式:curl -X PUT -H "Content-Type: application/json" -d '{"oldPassword": "旧密码","newPassword": "新密码","confirmNew": "新密码"
}' http://账号:密码@你的grafana的IP:3000/api/user/password示例:curl -X PUT -H "Content-Type: application/json" -d '{"oldPassword": "admin123","newPassword": "admin123..123","confirmNew": "admin123..123"}' http://admin:admin123@123.123.121.123:3000/api/user/password
{"message":"User password changed"} 修改成功
{"message":"Unauthorized"} 访问的链接错误
{"message":"Invalid username or password"} 账户或密码错误
【4】grafana-cli密码重置
前提是可登录服务器,可在4.1以上的grafana中使用
grafana-server -v 查看版本
参考链接:
https://grafana.com/docs/grafana/latest/administration/cli/
有两个参数可以用来设置homepath和配置文件路径
grafana-cli admin reset-admin-password --homepath "/usr/share/grafana" 新密码systemctl restart grafana-server
然而,根据官方提供的操作,即使提示修改成功。从首页登录依然只能使用旧密码登录。建议使用前3种方法。