Grafana 重置 admin 密码

server/2025/2/21 4:19:45/

Grafana 重置 admin 密码

  • 1. 已知 admin 密码修改新密码
    • 1.1 方法一:常规方法
    • 1.2 方法二:API 接口
  • 2. 忘记 admin 密码重置密码
    • 2.1 方法一:命令行
    • 2.2 方法二:修改数据库
    • 2.3 方法三:将某个用户提权为 admin 权限用户
  • 参考

Grafana 的使用越来越广泛,在使用过程中经常遇到要重置密码的需求,尤其是 admin 密码,先说常规问题。

1. 已知 admin 密码修改新密码

1.1 方法一:常规方法

使用已知密码登陆系统,在系统页面里进行修改。

1.2 方法二:API 接口

接口使用方法如下:

curl -X PUT -H "Content-Type: application/json" -d '{"oldPassword": "admin","newPassword": "newpass","confirmNew": "newpass"
}' http://admin:admin@<your_grafana_host>:3000/api/user/password

2. 忘记 admin 密码重置密码

接下来就是划重点的时候了,经常搭建了一个小环境以后,隔了几周想再看看的时候发现,admin 密码忘记了,没法登陆了。接下来这几个方法都能解决这几个问题,看情况使用。

2.1 方法一:命令行

该方法基于 Grafana 4.1 以上

grafana-cli admin reset-admin-password <new password>

如果上述方法报错:Could not find config defaults, make sure homepath command line parameter is set or working directory is homepath

那么使用如下 flag 来指定参数

grafana-cli admin reset-admin-password --homepath "/usr/share/grafana" newpass

2.2 方法二:修改数据库

查看Grafana配置文件,确定Grafana 数据库 grafana.db的路径

配置文件路径一般为 /etc/grafana/grafana.ini ,如果安装时修改过,请查看对应位置的 grafana.ini 。

[paths]
;data = /var/lib/grafana[database]
# For "sqlite3" only, path relative to data_path setting
;path = grafana.db

通过配置文件得知grafana.db的完整路径为: /var/lib/grafana/grafana.db

由于 Grafana 使用 sqlite3 来存储配置数据,所以使用 sqlite3 来进行修改,如果没有请安装。

[root@local]# sqlite3 /var/lib/grafana/grafana.db
#查看数据库中包含的表
.tables#查看user表内容
select * from user;#重置admin用户的密码为默认admin
update user set password = '59acf18b94d7eb0694c61e60ce44c110c7a683ac6a8f09580d626f90f4a242000746579358d77dd9e570e83fa24faa88a8a6', salt = 'F3FAxVm33R' where login = 'admin';#退出sqlite3
.exit

使用上述方法,会将 admin 用户的密码重置为 admin ,然后登陆页面进行修改。

2.3 方法三:将某个用户提权为 admin 权限用户

一般来说上述方法已经可以满足需求了,如果不方便重置 admin 用户的密码,那么也可以通过修改数据库,将某个用户提权为 admin 权限用户,然后通过这个用户来进行修改。

提权语句如下:

udpate user set is_admin = 1 where login = 'xxxx';

参考

http://docs.grafana.org/administration/cli/#reset-admin-password , By Grafana


http://www.ppmy.cn/server/37421.html

相关文章

并发容器(Map、List、Set)实战及其原理

Java的集合容器框架中&#xff0c;主要有四大类别&#xff1a;List、Set、Queue、Map&#xff0c;大家熟知的这些集合类ArrayList、LinkedList、HashMap这些容器都是非线程安全的。所以&#xff0c;Java先提供了同步容器供用户使用。同步容器可以简单地理解为通过synchronized来…

创建操作手册知识库的终极指南

在繁忙的工作中&#xff0c;有一个方便好用的操作手册知识库能帮我们节省大量时间&#xff0c;避免走弯路。那么&#xff0c;如何创建这样一个知识库呢&#xff1f;下面就给大家讲解一下简单易学的创建步骤。 一、明确目标与需求 在创建操作手册知识库之前&#xff0c;首先要明…

MySQL45讲(一)(40)

回顾binlog_formatstatement STATEMENT 记录SQL语句。日志文件小&#xff0c;节约IO&#xff0c;但是对一些系统函数不能准确复制或不能复制&#xff0c;如now()、uuid()等 在RR隔离级别下&#xff0c;binlog_formatstatement 如果执行insert select from 这条语句是对于一张…

C语言程序的编译与链接过程

在编写C语言程序时&#xff0c;我们通常只是编写源代码&#xff08;.c文件&#xff09;&#xff0c;但要让计算机真正执行这些代码&#xff0c;还需要经过编译和链接两个主要步骤。下面&#xff0c;我们将详细解析这两个过程。 一、编译过程 编译是将源代码&#xff08;.c文件…

nest中的ORM

在 Nest.js 中执行 SQL 查询通常涉及使用 TypeORM 或 Sequelize 这样的 ORM&#xff08;对象-关系映射&#xff09;库。这些库使得在 Nest.js 应用程序中连接和操作 SQL 数据库变得更加简单和直观。 以下是一个使用 TypeORM 在 Nest.js 中执行 SQL 查询的示例代码&#xff1a;…

分布式websocket IM即时通讯聊天开源项目如何启动

前言 自己之前分享了分布式websocket的视频有同学去fork项目了&#xff0c;自己启动一下更方便理解项目嘛。然后把项目启动需要的东西全部梳理出来。支持群聊单聊,表情包以及发送图片。 支持消息可靠&#xff0c;消息防重&#xff0c;消息有序。同时基础架构有分布式权限&…

网络安全运维类面试非技术问题

1、你熟悉哪些品牌的安全设备 答&#xff1a;天融信的ngfw防火墙&#xff0c;老牌防火墙厂商&#xff0c;功能比较齐全&#xff0c;像流量检测&#xff0c;web应用防护和僵木蠕等模块都有&#xff0c;界面是红白配色&#xff0c;设计稍微有点老 2、IPS用的是哪个牌子的 答&…

Window(Qt/Vs)软件添加版本信息

Window&#xff08;Qt/Vs&#xff09;软件添加版本信息 文章目录 Window&#xff08;Qt/Vs&#xff09;软件添加版本信息VS添加版本信息添加资源文件添加版本定义头自动更新版本添加批处理脚本设置生成事件 Qt添加版本信息添加资源文件文件信息修改自动更新版本 CMake添加版本信…