Установка Grafana с Nginx как обратным прокси на Rocky Linux
Важно: эта инструкция рассчитана на систему Rocky Linux 8.5 с правами root. Перед изменением конфигураций сделайте резервные копии файлов /etc/grafana/grafana.ini и /etc/nginx/conf.d/grafana.conf.
О чём эта статья
Статья шаг за шагом ведёт по установке Grafana из официального репозитория, настройке сервиса systemd, привязке Grafana к локальному интерфейсу и конфигурации Nginx как SSL-терминатора и обратного прокси. Включены рекомендации по безопасности, проверке работоспособности и типичные сценарии устранения неполадок.
Ключевые термины (1 строка)
- Grafana — веб-инструмент для визуализации и мониторинга;
- Reverse proxy (обратный прокси) — сервер, принимающий внешние HTTPS-запросы и перенаправляющий их на внутренний сервис.
Требования
- Операционная система: Rocky Linux 8.5 (Green Obsidian)
- Права root или эквивалент sudo
- Доменное имя, указывающее на сервер (например, grafana.example.io)
- Ключи/сертификат SSL (в примере — Let’s Encrypt)
Добавление репозитория Grafana
Создайте файл репозитория /etc/yum.repos.d/grafana.repo и вставьте конфигурацию репозитория Grafana.
sudo nano /etc/yum.repos.d/grafana.repoВставьте:
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crtСохраните и выйдите.
Проверьте список репозиториев:
sudo dnf repolistИщите запись “grafana” в выводе. Затем можно посмотреть информацию о пакете:
sudo info grafanaЕсли будет запрос на импорт GPG-ключа — подтвердите “y” и Enter.
Установка Grafana
Установите пакет Grafana через DNF:
sudo dnf install grafana -yПосле установки стартуйте и включите сервис автозапуска:
sudo systemctl enable --now grafana-server
sudo systemctl status grafana-serverПроверьте, что процесс слушает порт 3000:
ss -alntup | grep grafanaОжидаемый вывод содержит запись вида:
tcp LISTEN 0 128 *:3000 *:* users:(("grafana-server",pid=6756,fd=9))
Настройки Grafana (grafana.ini)
По умолчанию Grafana слушает все интерфейсы. Для работы через Nginx рекомендуется привязать Grafana к localhost и указать внешний домен в параметре domain.
sudo nano /etc/grafana/grafana.iniВ разделе [server] измените:
[server]
# The IP address to bind to, empty will bind to all interfaces
http_addr = localhost
# The http port to use
http_port = 3000
# The public facing domain name used to access grafana from a browser
domain = grafana.example.ioПерезапустите сервис:
sudo systemctl restart grafana-serverТеперь Grafana работает на 127.0.0.1:3000 и ожидает внешнего доступа через Nginx.
Настройка Nginx как обратного прокси для Grafana
Установите Nginx:
sudo dnf install nginx -yСоздайте конфигурационный файл /etc/nginx/conf.d/grafana.conf:
sudo nano /etc/nginx/conf.d/grafana.confВставьте конфигурацию (измените server_name и пути к SSL на ваши):
# this is required to proxy Grafana Live WebSocket connections.
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
server_name grafana.example.io;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen 443 ssl http2;
server_name grafana.example.io;
root /usr/share/nginx/html;
index index.html index.htm;
ssl_certificate /etc/letsencrypt/live/grafana.example.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/grafana.example.io/privkey.pem;
access_log /var/log/nginx/grafana-access.log;
error_log /var/log/nginx/grafana-error.log;
location / {
proxy_pass http://localhost:3000/;
}
# Proxy Grafana Live WebSocket connections.
location /api/live {
rewrite ^/(.*) /$1 break;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $http_host;
proxy_pass http://localhost:3000/;
}
}Проверьте синтаксис и запустите Nginx:
sudo nginx -t
sudo systemctl enable --now nginx
sudo systemctl status nginx
Проверка установки Grafana
Откройте браузер и перейдите по адресу:
Стандартные данные для входа: пользователь admin, пароль admin. При первом входе система потребует изменить пароль.


После успешного входа появится стандартная панель Grafana.

Краткая методика развертывания (mini-methodology)
- Добавить репозиторий Grafana и установить пакет.
- Настроить grafana.ini: привязать к localhost, задать domain.
- Установить и настроить Nginx: редирект с 80 на 443, проксирование на localhost:3000, поддержка WebSocket.
- Получить сертификат (например, Let’s Encrypt) и прописать пути в конфиге Nginx.
- Перезапустить сервисы, проверить логи и порт.
Факт-бокс: ключевые параметры
- Порт по умолчанию: 3000
- Конфигурация Grafana: /etc/grafana/grafana.ini
- Системный юнит: grafana-server.service
- Конфиг Nginx для сайта: /etc/nginx/conf.d/grafana.conf
- URI входа: https://<ваш-домен>
Роли и чек-листы (role-based checklists)
DevOps / Системный администратор:
- Добавить репозиторий и установить Grafana
- Привязать Grafana к localhost в grafana.ini
- Настроить Nginx и получить SSL-сертификат
- Настроить мониторинг и бэкапы конфигураций
Сетевой инженер:
- Убедиться, что DNS указывает на сервер
- Настроить правила брандмауэра (порт 443 открыт, 3000 закрыт извне)
- Проверить проброс портов и NAT (если применимо)
Разработчик/пользователь Grafana:
- Войти под admin и сменить пароль
- Добавить источники данных (Prometheus, PostgreSQL и т.д.)
- Создать первую панель/дашборд
Устранение неполадок (troubleshooting)
Nginx не стартует или конфиг не проходит тест:
- sudo nginx -t — посмотреть ошибку; проверить синтаксис в grafana.conf
- Просмотреть логи: /var/log/nginx/error.log и /var/log/nginx/grafana-error.log
Grafana недоступна через nginx, но слушает 127.0.0.1:3000:
- ss -alntup | grep 3000
- curl -I http://localhost:3000/ — проверить ответ локально
- Убедиться, что proxy_pass в Nginx указывает на http://localhost:3000/
Проблемы с WebSocket (Live):
- Убедиться, что в nginx конфиге присутствует блок map и location /api/live с proxy_set_header Upgrade
- Проверить заголовки в ответе через браузерные DevTools
Сертификат SSL не найден:
- Проверить пути ssl_certificate и ssl_certificate_key
- Если используете certbot: sudo certbot –nginx -d grafana.example.io
Когда этот подход не подходит (counterexamples)
- Если Grafana должна быть доступна на нескольких интерфейсах напрямую (без обратного прокси) — не меняйте http_addr на localhost.
- В средах с внутренними сетями и аппаратными балансировщиками этот вариант может требовать другой конфигурации TLS/PROXY (например, TCP-прокси).
Альтернативы
- Вместо Nginx можно использовать Caddy (автоматические TLS) или Apache как обратный прокси.
- Можно использовать встроенную поддержку HTTPS в Grafana, но чаще TLS делегируют на обратный прокси.
Рекомендации по безопасности (security hardening)
Откройте порт 443 и закройте 3000 во внешней сети (firewalld/iptables):
- sudo firewall-cmd –permanent –add-service=https
- sudo firewall-cmd –permanent –remove-port=3000/tcp
- sudo firewall-cmd –reload
Включите SELinux в режиме Enforcing (по умолчанию в Rocky Linux) и убедитесь, что Nginx может проксировать трафик. При необходимости проверьте audit.log и примените соответствующие booleans.
Ограничьте доступ к панели администратора через IP-списки или VPN для критичных сред.
Используйте сильные пароли для admin и настройте аутентификацию через LDAP/OAuth, если доступно.
Логи и мониторинг
- Grafana logs: /var/log/grafana/grafana.log (или systemd-journald через journalctl -u grafana-server)
- Nginx access и error логи: /var/log/nginx/grafana-access.log, /var/log/nginx/grafana-error.log
- Настройте метрики Grafana (internal metrics) и отправляйте их в Prometheus для наблюдения за самим мониторингом.
Критерии приёмки
- Grafana доступна по HTTPS на вашем домене.
- При обращении к https://your-domain пользователь видит страницу входа Grafana.
- Grafana слушает только localhost:3000 и недоступна извне по порту 3000.
- Nginx работает с корректным SSL и проксирует WebSocket для /api/live.
Шаблон быстрой проверки (acceptance checklist)
- systemctl status grafana-server — active (running)
- ss -alntup | grep 3000 — слушает localhost
- sudo nginx -t — синтаксис OK
- [ ] curl -I https://grafana.example.io — возвращает 200/302 (в зависимости от настройки)
Итоги
Поздравляем — вы развернули Grafana на Rocky Linux и защитили доступ через Nginx с HTTPS. Дальше можно добавить источники данных (Prometheus, MySQL и т.д.), создать дашборды и настроить оповещения.
Ключевые рекомендации: привязывайте Grafana к localhost при использовании обратного прокси, настраивайте корректно WebSocket-проксирование для Live, храните бэкапы конфигураций и применяйте базовые меры безопасности (firewall, SSL, сильные пароли).
Короткий список команд
- Установка Grafana: sudo dnf install grafana -y
- Включение сервиса: sudo systemctl enable –now grafana-server
- Проверка порта: ss -alntup | grep grafana
- Установка Nginx: sudo dnf install nginx -y
- Проверка Nginx: sudo nginx -t && sudo systemctl enable –now nginx
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента