Grafana : remettre le mot de passe admin à sa valeur par défaut

Si vous arrivez sur cette page, c’est que comme moi vous avez probablement oublié le mot de passe que vous aviez défini un jour pour l’utilisateur admin dans Grafana 🙂 Dans ce cas, une solution est de redéfinir le mot de passe à sa valeur par défaut (admin) en modifiant directement la base de données.

Je vous propose ici une méthode pour les différents moteurs de base de données supportés par Grafana : MySQL, SQLite et PostgreSQL.

Trouver son moteur de base de données

Grafana a pu être configuré pour utiliser différents moteurs de base de données : MySQL, PostgreSQL ou SQLite.
Pour trouver le moteur utilisé et les paramètres associés, il faut chercher dans le fichier de configuration Grafana (pour RedHat, dans /etc/grafana/grafana.ini) :

# grep -FA6 "[database]" /etc/grafana/grafana.ini
[database]
# Either "mysql", "postgres" or "sqlite3", it's your choice
type = mysql
host = 127.0.0.1:3306
name = grafana
user = grafana
password = grafana

Ici j’utilise donc un moteur de base de données MySQL (ou équivalent, en fait ici c’est du MariaDB).

Modifier le mot de passe

Le mot de passe stocké en base n’est pas en clair, il est stocké sous forme de hash. En conséquence, la méthode proposée ici permet simplement de remettre le mot de passe admin car je connais son empreinte et son sel. A vous ensuite de modifier le mot de passe dans l’interface Grafana une fois connecté.

La requête a utilisée est donc la suivante :

update user set password = '59acf18b94d7eb0694c61e60ce44c110c7a683ac6a8f09580d626f90f4a242000746579358d77dd9e570e83fa24faa88a8a6', salt = 'F3FAxVm33R' where login = 'admin';

Avec MySQL et équivalent (MariaDB, etc.)

On se connecte à la base de données avec les informations obtenues précédemment dans le fichier de configuration :

# mysql -u grafana -p grafana
Enter password: grafana
MariaDB [grafana]>

Et j’exécute la requête SQL :

MariaDB [grafana]> update user set password = '59acf18b94d7eb0694c61e60ce44c110c7a683ac6a8f09580d626f90f4a242000746579358d77dd9e570e83fa24faa88a8a6', salt = 'F3FAxVm33R' where login = 'admin';
Query OK, 0 rows affected (0.28 sec)
Rows matched: 1  Changed: 0  Warnings: 0

MariaDB [grafana]> exit
Bye

Avec SQLite

Connexion à la base de données SQLite stockée par défaut dans /var/lib/grafana/grafana.db :

# sqlite3 /var/lib/grafana/grafana.db
sqlite>

Et on exécute la requête :

sqlite> update user set password = '59acf18b94d7eb0694c61e60ce44c110c7a683ac6a8f09580d626f90f4a242000746579358d77dd9e570e83fa24faa88a8a6', salt = 'F3FAxVm33R' where login = 'admin';
sqlite> .exit

Avec PostgreSQL

Je n’ai pas de base PostgreSQL pour Grafana sous la main. La procédure ci-dessous est donc indicative et n’a pas été validée par mes soins 🙂 (si d’ailleurs quelqu’un se trouve dans cette situation il peut laisser un commentaire pour infirmer ou confirmer)

Connexion à la base de données PostgreSQL :

$ psql
postgres=#

Exécution de la requête de mise à jour :

postgres=# update user set password = '59acf18b94d7eb0694c61e60ce44c110c7a683ac6a8f09580d626f90f4a242000746579358d77dd9e570e83fa24faa88a8a6', salt = 'F3FAxVm33R' where login = 'admin';
postgres=# \q

Tester

Dans l’interface Web de Grafana, la connexion doit maintenant être possible avec le couple admin/admin.
Le mot de passe peut ensuite être modifié en cliquant sur Grafana Admin > Global User > Edit sur la ligne admin.

Laisser un commentaire