Caution
Начиная с релиза Grafana
12.4.0, репозиторийgrafana/grafana-ossна Docker Hub больше не будет обновляться. Вместо этого мы рекомендуем использовать репозиторийgrafana/grafanaна Docker Hub. Эти два репозитория содержат одинаковые Docker-образы Grafana OSS.
Запуск Docker-образа Grafana
Эта тема проведёт вас через установку Grafana с помощью официальных Docker-образов. В частности, она охватывает запуск Grafana через интерфейс командной строки Docker (CLI) и docker-compose.
Docker-образы Grafana бывают двух редакций:
- Grafana Enterprise:
grafana/grafana-enterprise - Grafana Open Source:
grafana/grafana
Примечание: Рекомендуемая и используемая по умолчанию редакция Grafana — Grafana Enterprise. Она бесплатна и включает все функции редакции OSS. Кроме того, у вас есть возможность перейти к полному набору функций Enterprise, который поддерживает плагины Enterprise.
Образы по умолчанию для Grafana создаются с использованием проекта Alpine Linux и могут быть найдены в официальном образе Alpine. Инструкции по настройке Docker-образа для Grafana см. в разделе Настройка Docker-образа Grafana.
Запуск Grafana через Docker CLI
В этом разделе показано, как запустить Grafana с помощью Docker CLI.
Примечание: Если вы работаете в системе Linux (например, Debian или Ubuntu), вам может потребоваться добавить
sudoперед командой или добавить вашего пользователя в группуdocker. Дополнительную информацию см. в разделе Шаги после установки для Docker Engine в Linux.
Чтобы запустить последнюю стабильную версию Grafana, выполните следующую команду:
docker run -d -p 3000:3000 --name=grafana grafana/grafana-enterprise
Где:
docker run— команда Docker CLI, которая запускает новый контейнер из образа-d(--detach) запускает контейнер в фоновом режиме-p <host-port>:<container-port>(--publish) публикует порт(ы) контейнера на хосте, позволяя вам достичь порта контейнера через порт хоста. В данном случае мы можем достичь порта контейнера3000через порт хоста3000--nameприсваивает контейнеру логическое имя (например,grafana). Это позволяет вам ссылаться на контейнер по имени, а не по ID.grafana/grafana-enterprise— это образ для запуска
Остановка контейнера Grafana
Чтобы остановить контейнер Grafana, выполните следующую команду:
# The `docker ps` command shows the processes running in Docker
docker ps
# This will display a list of containers that looks like the following:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cd48d3994968 grafana/grafana-enterprise "/run.sh" 8 seconds ago Up 7 seconds 0.0.0.0:3000->3000/tcp grafana
# To stop the grafana container run the command
# docker stop CONTAINER-ID or use
# docker stop NAME, which is `grafana` as previously defined
docker stop grafana
Сохранение ваших данных Grafana
По умолчанию Grafana использует встроенную базу данных SQLite версии 3 для хранения конфигурации, пользователей, дашбордов и других данных. Когда вы запускаете Docker-образы как контейнеры, изменения этих данных Grafana записываются в файловую систему внутри контейнера, которые сохраняются только до тех пор, пока существует контейнер. Если вы остановите и удалите контейнер, любые изменения файловой системы (то есть данные Grafana) будут отброшены. Чтобы избежать потери данных, вы можете настроить постоянное хранилище с помощью томов Docker или bind-монтирований для вашего контейнера.
Примечание: Хотя оба метода похожи, есть небольшое различие. Если вы хотите, чтобы ваше хранилище полностью управлялось Docker и было доступно только через контейнеры Docker и Docker CLI, вам следует выбрать постоянное хранилище. Однако если вам нужен полный контроль над хранилищем и вы хотите разрешить другим процессам помимо Docker доступ или изменение слоя хранилища, тогда bind-монтирования — правильный выбор для вашей среды.
Использование томов Docker (рекомендуется)
Используйте тома Docker, когда вы хотите, чтобы Docker Engine управлял томом хранилища.
Чтобы использовать тома Docker для постоянного хранилища, выполните следующие шаги:
-
Создайте том Docker для использования контейнером Grafana, дав ему описательное имя (например,
grafana-storage). Выполните следующую команду:# create a persistent volume for your data docker volume create grafana-storage # verify that the volume was created correctly # you should see some JSON output docker volume inspect grafana-storage -
Запустите контейнер Grafana, выполнив следующую команду:
# start grafana docker run -d -p 3000:3000 --name=grafana \ --volume grafana-storage:/var/lib/grafana \ grafana/grafana-enterprise
Использование bind-монтирований
Если вы планируете использовать каталоги на вашем хосте для базы данных или конфигурации при запуске Grafana в Docker, вы должны запустить контейнер с пользователем, у которого есть разрешение на доступ и запись в каталог, который вы монтируете.
Чтобы использовать bind-монтирования, выполните следующую команду:
# create a directory for your data
mkdir data
# start grafana with your user id and using the data directory
docker run -d -p 3000:3000 --name=grafana \
--user "$(id -u)" \
--volume "$PWD/data:/var/lib/grafana" \
grafana/grafana-enterprise
Использование переменных среды для настройки Grafana
Grafana поддерживает указание пользовательских параметров конфигурации с помощью переменных среды.
# enable debug logs
docker run -d -p 3000:3000 --name=grafana \
-e "GF_LOG_LEVEL=debug" \
grafana/grafana-enterprise
Установка плагинов в контейнер Docker
Вы можете устанавливать плагины в Grafana из официальной и community страницы плагинов или с помощью пользовательского URL для установки приватного плагина. Эти плагины позволяют вам добавлять новые типы визуализаций, источники данных и приложения, чтобы помочь вам лучше визуализировать ваши данные.
Grafana в настоящее время поддерживает три типа плагинов: панель, источник данных и приложение. Дополнительную информацию об управлении плагинами см. в разделе Управление плагинами.
Чтобы установить плагины в контейнер Docker, выполните следующие шаги:
-
Передайте плагины, которые вы хотите установить, в Docker с помощью переменной среды
GF_PLUGINS_PREINSTALLв виде списка, разделённого запятыми.Это запускает фоновый процесс, который устанавливает список плагинов во время запуска сервера Grafana.
Например:
docker run -d -p 3000:3000 --name=grafana \ -e "GF_PLUGINS_PREINSTALL=grafana-clock-panel, yesoreyeram-infinity-datasource" \ grafana/grafana-enterprise -
Чтобы указать версию плагина, добавьте номер версии к переменной среды
GF_PLUGINS_PREINSTALL.Например:
docker run -d -p 3000:3000 --name=grafana \ -e "GF_PLUGINS_PREINSTALL=grafana-clock-panel@1.0.1" \ grafana/grafana-enterpriseПримечание: Если вы не указываете номер версии, используется последняя версия.
-
Чтобы установить плагин из пользовательского URL, используйте следующее соглашение для указания URL:
<plugin ID>@[<plugin version>]@<url to plugin zip>.Например:
docker run -d -p 3000:3000 --name=grafana \ -e "GF_PLUGINS_PREINSTALL=custom-plugin@@https://github.com/VolkovLabs/custom-plugin.zip" \ grafana/grafana-enterprise
Пример
Следующий пример запускает последнюю стабильную версию Grafana, слушающую порт 3000, с контейнером с именем grafana, постоянным хранилищем в томе docker grafana-storage, заданным корневым URL сервера и установленным официальным плагином clock panel.
# create a persistent volume for your data
docker volume create grafana-storage
# start grafana by using the above persistent storage
# and defining environment variables
docker run -d -p 3000:3000 --name=grafana \
--volume grafana-storage:/var/lib/grafana \
-e "GF_SERVER_ROOT_URL=http://my.grafana.server/" \
-e "GF_PLUGINS_PREINSTALL=grafana-clock-panel" \
grafana/grafana-enterprise
Запуск Grafana через Docker Compose
Docker Compose — это программный инструмент, который упрощает определение и совместное использование приложений, состоящих из нескольких контейнеров. Он работает с помощью файла YAML, обычно называемого docker-compose.yaml, который перечисляет все службы, составляющие приложение. Вы можете запустить контейнеры в правильном порядке одной командой, а другой командой вы можете их остановить. Дополнительную информацию о преимуществах использования Docker Compose и о том, как его использовать, см. в разделе Использование Docker Compose.
Перед началом
Чтобы запустить Grafana через Docker Compose, установите инструмент compose на вашу машину. Чтобы определить, доступен ли инструмент compose, выполните следующую команду:
docker compose version
Если инструмент compose недоступен, обратитесь к разделу Установка Docker Compose.
Запуск последней стабильной версии Grafana
В этом разделе показано, как запустить Grafana с помощью Docker Compose. В примерах этого раздела используется Compose версии 3. Дополнительную информацию о совместимости см. в разделе Матрица совместимости Compose и Docker.
Примечание: Если вы работаете в системе Linux (например, Debian или Ubuntu), вам может потребоваться добавить
sudoперед командой или добавить вашего пользователя в группуdocker. Дополнительную информацию см. в разделе Шаги после установки для Docker Engine в Linux.
Чтобы запустить последнюю стабильную версию Grafana с помощью Docker Compose, выполните следующие шаги:
-
Создайте файл
docker-compose.yaml.# first go into the directory where you have created this docker-compose.yaml file cd /path/to/docker-compose-directory # now create the docker-compose.yaml file touch docker-compose.yaml -
Теперь добавьте следующий код в файл
docker-compose.yaml.Например:
services: grafana: image: grafana/grafana-enterprise container_name: grafana restart: unless-stopped ports: - '3000:3000' -
Чтобы запустить
docker-compose.yaml, выполните следующую команду:# start the grafana container docker compose up -dГде:
d = отсоединённый режим
up = чтобы поднять и запустить контейнер
Чтобы определить, что Grafana работает, откройте окно браузера и введите IP_ADDRESS:3000. Должен появиться экран входа.
Остановка контейнера Grafana
Чтобы остановить контейнер Grafana, выполните следующую команду:
docker compose down
Примечание: Дополнительную информацию об использовании команд Docker Compose см. в разделе docker compose.
Сохранение ваших данных Grafana
По умолчанию Grafana использует встроенную базу данных SQLite версии 3 для хранения конфигурации, пользователей, дашбордов и других данных. Когда вы запускаете Docker-образы как контейнеры, изменения этих данных Grafana записываются в файловую систему внутри контейнера, которые сохраняются только до тех пор, пока существует контейнер. Если вы остановите и удалите контейнер, любые изменения файловой системы (то есть данные Grafana) будут отброшены. Чтобы избежать потери данных, вы можете настроить постоянное хранилище с помощью томов Docker или bind-монтирований для вашего контейнера.
Использование томов Docker (рекомендуется)
Используйте тома Docker, когда вы хотите, чтобы Docker Engine управлял томом хранилища.
Чтобы использовать тома Docker для постоянного хранилища, выполните следующие шаги:
-
Создайте файл
docker-compose.yaml# first go into the directory where you have created this docker-compose.yaml file cd /path/to/docker-compose-directory # now create the docker-compose.yaml file touch docker-compose.yaml -
Добавьте следующий код в файл
docker-compose.yaml.services: grafana: image: grafana/grafana-enterprise container_name: grafana restart: unless-stopped ports: - '3000:3000' volumes: - grafana-storage:/var/lib/grafana volumes: grafana-storage: {} -
Сохраните файл и выполните следующую команду:
docker compose up -d
Использование bind-монтирований
Если вы планируете использовать каталоги на вашем хосте для базы данных или конфигурации при запуске Grafana в Docker, вы должны запустить контейнер с пользователем, у которого есть разрешение на доступ и запись в каталог, который вы монтируете.
Чтобы использовать bind-монтирования, выполните следующие шаги:
-
Создайте файл
docker-compose.yaml# first go into the directory where you have created this docker-compose.yaml file cd /path/to/docker-compose-directory # now create the docker-compose.yaml file touch docker-compose.yaml -
Создайте каталог, в который вы будете монтировать ваши данные, в данном случае
/data, например, в вашем текущем рабочем каталоге:mkdir $PWD/data -
Теперь добавьте следующий код в файл
docker-compose.yaml.services: grafana: image: grafana/grafana-enterprise container_name: grafana restart: unless-stopped # if you are running as root then set it to 0 # else find the right id with the id -u command user: '0' ports: - '3000:3000' # adding the mount volume point which we create earlier volumes: - '$PWD/data:/var/lib/grafana' -
Сохраните файл и выполните следующую команду:
docker compose up -d
Пример
Следующий пример запускает последнюю стабильную версию Grafana, слушающую порт 3000, с контейнером с именем grafana, постоянным хранилищем в томе docker grafana-storage, заданным корневым URL сервера и установленным официальным плагином clock panel.
services:
grafana:
image: grafana/grafana-enterprise
container_name: grafana
restart: unless-stopped
environment:
- GF_SERVER_ROOT_URL=http://my.grafana.server/
- GF_PLUGINS_PREINSTALL=grafana-clock-panel
ports:
- '3000:3000'
volumes:
- 'grafana_storage:/var/lib/grafana'
volumes:
grafana_storage: {}
Note
Если вы хотите указать версию плагина, добавьте номер версии к переменной среды
GF_PLUGINS_PREINSTALL. Например:-e "GF_PLUGINS_PREINSTALL=grafana-clock-panel@1.0.1,yesoreyeram-infinity-datasource@3.8.0". Если вы не указываете номер версии, используется последняя версия.
Дальнейшие шаги
Обратитесь к руководству Начало работы за информацией о входе в систему, настройке источников данных и так далее.
Настройка Docker-образа
Обратитесь к странице Настройка Docker-образа Grafana за подробностями о параметрах настройки вашей среды, журналирования, базы данных и так далее.
Настройка Grafana
Обратитесь к странице Конфигурация за подробностями о параметрах настройки вашей среды, журналирования, базы данных и так далее.