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, выполните следующую команду:

Bash
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, выполните следующую команду:

Bash
# 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 Engine управлял томом хранилища.

Чтобы использовать тома Docker для постоянного хранилища, выполните следующие шаги:

  1. Создайте том Docker для использования контейнером Grafana, дав ему описательное имя (например, grafana-storage). Выполните следующую команду:

    Bash
    # 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
  2. Запустите контейнер Grafana, выполнив следующую команду:

    Bash
    # start grafana
    docker run -d -p 3000:3000 --name=grafana \
      --volume grafana-storage:/var/lib/grafana \
      grafana/grafana-enterprise

Использование bind-монтирований

Если вы планируете использовать каталоги на вашем хосте для базы данных или конфигурации при запуске Grafana в Docker, вы должны запустить контейнер с пользователем, у которого есть разрешение на доступ и запись в каталог, который вы монтируете.

Чтобы использовать bind-монтирования, выполните следующую команду:

Bash
# 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 поддерживает указание пользовательских параметров конфигурации с помощью переменных среды.

Bash
# 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, выполните следующие шаги:

  1. Передайте плагины, которые вы хотите установить, в Docker с помощью переменной среды GF_PLUGINS_PREINSTALL в виде списка, разделённого запятыми.

    Это запускает фоновый процесс, который устанавливает список плагинов во время запуска сервера Grafana.

    Например:

    Bash
    docker run -d -p 3000:3000 --name=grafana \
      -e "GF_PLUGINS_PREINSTALL=grafana-clock-panel, yesoreyeram-infinity-datasource" \
      grafana/grafana-enterprise
  2. Чтобы указать версию плагина, добавьте номер версии к переменной среды GF_PLUGINS_PREINSTALL.

    Например:

    Bash
    docker run -d -p 3000:3000 --name=grafana \
      -e "GF_PLUGINS_PREINSTALL=grafana-clock-panel@1.0.1" \
      grafana/grafana-enterprise

    Примечание: Если вы не указываете номер версии, используется последняя версия.

  3. Чтобы установить плагин из пользовательского URL, используйте следующее соглашение для указания URL: <plugin ID>@[<plugin version>]@<url to plugin zip>.

    Например:

    Bash
    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.

Bash
# 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, выполните следующую команду:

Bash
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, выполните следующие шаги:

  1. Создайте файл docker-compose.yaml.

    Bash
    # 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
  2. Теперь добавьте следующий код в файл docker-compose.yaml.

    Например:

    YAML
    services:
      grafana:
        image: grafana/grafana-enterprise
        container_name: grafana
        restart: unless-stopped
        ports:
          - '3000:3000'
  3. Чтобы запустить docker-compose.yaml, выполните следующую команду:

    Bash
    # start the grafana container
    docker compose up -d

    Где:

    d = отсоединённый режим

    up = чтобы поднять и запустить контейнер

Чтобы определить, что Grafana работает, откройте окно браузера и введите IP_ADDRESS:3000. Должен появиться экран входа.

Остановка контейнера Grafana

Чтобы остановить контейнер Grafana, выполните следующую команду:

Bash
docker compose down

Примечание: Дополнительную информацию об использовании команд Docker Compose см. в разделе docker compose.

Сохранение ваших данных Grafana

По умолчанию Grafana использует встроенную базу данных SQLite версии 3 для хранения конфигурации, пользователей, дашбордов и других данных. Когда вы запускаете Docker-образы как контейнеры, изменения этих данных Grafana записываются в файловую систему внутри контейнера, которые сохраняются только до тех пор, пока существует контейнер. Если вы остановите и удалите контейнер, любые изменения файловой системы (то есть данные Grafana) будут отброшены. Чтобы избежать потери данных, вы можете настроить постоянное хранилище с помощью томов Docker или bind-монтирований для вашего контейнера.

Используйте тома Docker, когда вы хотите, чтобы Docker Engine управлял томом хранилища.

Чтобы использовать тома Docker для постоянного хранилища, выполните следующие шаги:

  1. Создайте файл docker-compose.yaml

    Bash
    # 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
  2. Добавьте следующий код в файл docker-compose.yaml.

    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: {}
  3. Сохраните файл и выполните следующую команду:

    Bash
    docker compose up -d

Использование bind-монтирований

Если вы планируете использовать каталоги на вашем хосте для базы данных или конфигурации при запуске Grafana в Docker, вы должны запустить контейнер с пользователем, у которого есть разрешение на доступ и запись в каталог, который вы монтируете.

Чтобы использовать bind-монтирования, выполните следующие шаги:

  1. Создайте файл docker-compose.yaml

    Bash
    # 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
  2. Создайте каталог, в который вы будете монтировать ваши данные, в данном случае /data, например, в вашем текущем рабочем каталоге:

    Bash
    mkdir $PWD/data
  3. Теперь добавьте следующий код в файл docker-compose.yaml.

    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'
  4. Сохраните файл и выполните следующую команду:

    Bash
    docker compose up -d

Пример

Следующий пример запускает последнюю стабильную версию Grafana, слушающую порт 3000, с контейнером с именем grafana, постоянным хранилищем в томе docker grafana-storage, заданным корневым URL сервера и установленным официальным плагином clock panel.

YAML
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

Обратитесь к странице Конфигурация за подробностями о параметрах настройки вашей среды, журналирования, базы данных и так далее.