Подробный гайд: grafana-cli admin reset-admin-password
Команда grafana-cli admin reset-admin-password позволяет безопасно сбросить пароль встроенного пользователя admin, если он утерян, заблокирован или неизвестен. Команда напрямую обновляет запись в базе данных Grafana, учитывая текущую конфигурацию (grafana.ini) и тип БД (SQLite, PostgreSQL, MySQL).
Предварительные требования
- Доступ к хосту/контейнеру с установленной Grafana (SSH,
docker exec,kubectl). - Права
rootили пользователяgrafana. - Grafana должна быть остановлена перед выполнением команды (иначе возникнет блокировка БД или повреждение данных).
- Узнать путь к
grafana-cli(зависит от способа установки). - Новый пароль должен соответствовать политике сложности (по умолчанию ≥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/