Обзор развертывания Grafana на сервере¶
Предварительные требования¶
Для успешного развертывания приложения требуются следующие условия:
-
Операционная система: Debian, Ubuntu, CentOS, Rocky Linux или AlmaLinux.
-
Права доступа: Права суперпользователя (root) для установки пакетов и управления Docker.
-
Доступные порты:
-
80/tcp— для HTTP (используется Certbot). -
443/tcp— для HTTPS. -
22/tcp— SSH. -
3000/tcp— внутренний порт приложения.
FDQN итоговой панели на домене hostkey.in¶
Для доступа к интерфейсу используется следующий шаблон домена:
| Параметр | Значение |
|---|---|
| Префикс | grafana |
| Домен | hostkey.in |
| Полный шаблон | grafana{Server_ID_from_Invapi}.hostkey.in |
Процесс установки приложения¶
Приложение развертывается с использованием Docker Compose и включает в себя настройку веб-сервера для обеспечения SSL-соединения.
Процесс установки включает следующие этапы:
-
Подготовка операционной системы (остановка процессов автоматического обновления
unattended-upgrна Debian/Ubuntu). -
Настройка сетевых правил брандмауэра (
ufwилиfirewalld) для открытия портов 80 и 443. -
Установка Docker и подготовка конфигурации прокси-сервера с поддержкой SSL через Certbot.
-
Создание рабочей директории
/root/grafana. -
Создание Docker-объема
grafana-dataдля хранения данных приложения. -
Развертывание контейнеров с помощью
docker compose up -d. -
Сброс пароля администратора через CLI внутри контейнера.
Контейнеры Docker и их запуск¶
Приложение работает в составе двух основных контейнеров, управляемых через файл compose.yml в директории /root/grafana.
Контейнер Nginx (Proxy)
-
Образ:
jonasal/nginx-certbot:latest -
Порты:
80:80,443:443 -
Тома (volumes):
-
nginx_secrets:/etc/letsencrypt— для хранения SSL-сертификатов. -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d— пользовательские конфигурации Nginx. -
Переменные окружения:
CERTBOT_EMAIL=hkadm@hostkey.com. -
Политика перезапуска:
unless-stopped.
Контейнер Grafana
-
Образ:
grafana/grafana-oss:8.2.6 -
Порты:
3000:3000 -
Тома (volumes):
-
/data/grafana/datasources:/etc/grafana/provisioning/datasources— конфигурации источников данных. -
grafana-data:/var/lib/grafana— постоянное хранилище данных приложения. -
Политика перезапуска:
unless-stopped.
Кастомные скрипты и дополнительные настройки¶
В процессе развертывания выполняются следующие действия:
-
Настройка проксирования: В конфигурационный файл Nginx вносится изменение, чтобы перенаправлять трафик с доменного имени на внутренний адрес контейнера
http://grafana:3000. -
Сброс пароля администратора: Выполняется команда внутри запущенного контейнера для установки пароля администратора (используется значение из системных переменных).
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо выполнить следующие действия в директории /root/grafana:
Расположение конфигурационных файлов и данных¶
-
Рабочая директория приложения:
/root/grafana -
Конфигурация Docker Compose:
/root/grafana/compose.yml -
Данные Grafana (Docker Volume):
grafana-data -
Источники данных (Provisioning):
/data/grafana/datasources -
Конфигурации Nginx:
/data/nginx/user_conf.d/
Доступные порты для подключения¶
| Порт | Назначение | Тип доступа |
|---|---|---|
443 | HTTPS (основной интерфейс) | Внешний |
80 | HTTP (перенаправление на HTTPS) | Внешний |
3000 | Интерфейс Grafana | Внутренний |