Подробный гайд: grafana-cli admin reset-admin-password

Инструкция по сбросу пароля администратора Grafana через CLI. Работает в Linux, Docker и Kubernetes с советами по безопасности и исправлению ошибок.

2026.05.12                  


Подробный гайд: grafana-cli admin reset-admin-passwordПодробный гайд: grafana-cli admin reset-admin-password Команда grafana-cli admin reset-admin-password позволяет безопасно сбросить пароль встроенного пользователя admin, если он утерян, заблокирован или неизвестен. Команда напрямую обновляет запись в базе данных Grafana, учитывая текущую конфигурацию (grafana.ini) и тип БД (SQLite, PostgreSQL, MySQL).


Предварительные требования

  1. Доступ к хосту/контейнеру с установленной Grafana (SSH, docker exec, kubectl).
  2. Права root или пользователя grafana.
  3. Grafana должна быть остановлена перед выполнением команды (иначе возникнет блокировка БД или повреждение данных).
  4. Узнать путь к grafana-cli (зависит от способа установки).
  5. Новый пароль должен соответствовать политике сложности (по умолчанию ≥5 символов, можно изменить в grafana.ini).

Пошаговые инструкции

1. Linux (deb/rpm, tarball)

# 1. Остановите сервис Grafana
sudo systemctl stop grafana-server

# 2. Сбросьте пароль (замените NEW_PASSWORD на ваш)
sudo grafana-cli admin reset-admin-password NEW_PASSWORD

# 3. Запустите сервис обратно
sudo systemctl start grafana-server

# 4. Проверьте вход в http://<your-grafana>:3000
# Логин: admin
# Пароль: NEW_PASSWORD

Если grafana-cli не найден, попробуйте:

sudo /usr/sbin/grafana-cli admin reset-admin-password NEW_PASSWORD
# или
sudo grafana admin reset-admin-password NEW_PASSWORD

2. Docker

В Docker команда выполняется через временный контейнер, подключённый к тому же том с данными:

# 1. Остановите основной контейнер
docker stop grafana

# 2. Запустите временный контейнер с тем же volume
docker run --rm \
  -v grafana_/var/lib/grafana \
  grafana/grafana:latest \
  grafana-cli admin reset-admin-password NEW_PASSWORD

# 3. Запустите Grafana обратно
docker start grafana

Замените grafana_data на имя вашего volume или путь к host-директории (например, -v /opt/grafana/data:/var/lib/grafana).

3. Kubernetes / Helm

В K8s прямой exec возможен, но не рекомендуется в production без maintenance-окна.

Надёжнее использовать Job:

apiVersion: batch/v1
kind: Job
metadata:
  name: grafana-reset-admin
spec:
  template:
    spec:
      containers:
      - name: reset
        image: grafana/grafana:latest
        command: ["grafana-cli", "admin", "reset-admin-password", "NEW_PASSWORD"]
        volumeMounts:
        - name: grafana-storage
          mountPath: /var/lib/grafana
      volumes:
      - name: grafana-storage
        persistentVolumeClaim:
          claimName: <your-grafana-pvc>
      restartPolicy: Never
kubectl apply -f reset-job.yaml
kubectl logs job/grafana-reset-admin
kubectl delete job grafana-reset-admin

Возможные ошибки и решения

Ошибка Причина Решение
command not found: grafana-cli Пакет не установлен или путь не в $PATH Используйте полный путь: /usr/sbin/grafana-cli или grafana
database is locked / unable to open database Grafana запущена systemctl stop grafana-server или остановите контейнер
permission denied Запуск от обычного пользователя sudo grafana-cli ... или sudo -u grafana grafana-cli ...
password too short или does not meet policy Включена валидация в grafana.ini Увеличьте длину/сложность пароля или временно отключите валидацию
no such file or directory (Docker/K8s) Неверный volume/PVC или путь Проверьте docker inspect / kubectl get pvc

Альтернативные способы сброса пароля

1. Через переменную окружения (только при первом запуске или пересоздании БД):
   GF_SECURITY_ADMIN_PASSWORD=your_new_password
2. Прямое обновление в SQLite (не рекомендуется, требует ручного хеширования):
   sqlite3 /var/lib/grafana/grafana.db "UPDATE user SET password = '<bcrypt_hash>' WHERE login = 'admin';"
3. Через API (если есть другой админ или токен):
   curl -X PATCH -H "Authorization: Bearer <token>" http://localhost:3000/api/admin/users/2/password \
     -d '{"password": "NEW_PASSWORD"}'

Рекомендации по безопасности

  • Не сохраняйте пароль в истории bash: добавьте пробел перед командой или выполните set +o history перед вводом.
  • Сразу после входа смените пароль через Admin → Server Admin → Users → Admin → Change Password.
  • Включите 2FA для учётной записи admin.
  • Ограничьте доступ к серверу/контейнеру только для доверенных лиц.
  • Регулярно резервируйте /var/lib/grafana (SQLite) или внешнюю БД.

Примечания по версиям Grafana

Версия Особенности
8.x и ниже Команда стабильна, требует остановки сервиса
9.x Добавлена строгая валидация паролей по умолчанию
10.x–11.x grafana-cli остаётся основным инструментом. В некоторых дистрибутивах используется grafana admin reset-admin-password
Все версии Работает с SQLite, MySQL, PostgreSQL. Настройки читаются из grafana.ini автоматически

Полезные ссылки

  • Конфигурация безопасности: security секция в grafana.ini
  • Бэкап и восстановление: Grafana Backup Guide - grafana.com/docs/grafana/latest/administration/back-up/