Гид по технологиям

Установка Grafana с Nginx как обратным прокси на Rocky Linux

• 6 min read • DevOps • Обновлено 22 Nov 2025
Установка Grafana с Nginx на Rocky Linux
Установка 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 (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

Настройка Nginx для Grafana

Проверка установки Grafana

Откройте браузер и перейдите по адресу:

https://grafana.example.io

Стандартные данные для входа: пользователь admin, пароль admin. При первом входе система потребует изменить пароль.

Страница входа Grafana

Смена пароля в Grafana

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

Панель Grafana

Краткая методика развертывания (mini-methodology)

  1. Добавить репозиторий Grafana и установить пакет.
  2. Настроить grafana.ini: привязать к localhost, задать domain.
  3. Установить и настроить Nginx: редирект с 80 на 443, проксирование на localhost:3000, поддержка WebSocket.
  4. Получить сертификат (например, Let’s Encrypt) и прописать пути в конфиге Nginx.
  5. Перезапустить сервисы, проверить логи и порт.

Факт-бокс: ключевые параметры

  • Порт по умолчанию: 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:

  • Проблемы с 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
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро