Как запустить Grafana в контейнере Docker — CloudSavvy IT

Логотип Графана

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

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

Начиная

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Простейшее создание контейнера Grafana выглядит так:

docker run -d –name=grafana -p 3000:3000 графана/графана

У вас будет новый сервер Grafana, доступный через порт 3000. Посетите http://localhost:3000 и войдите в систему как admin/admin.

Теперь вы можете начать добавлять источники данных и информационные панели для создания визуализаций. Нажмите кнопку «Добавить первый источник данных» на главной странице, чтобы подключить новый источник; выберите тип провайдера на следующем экране, затем заполните данные, чтобы Grafana могла получить доступ к вашим данным.

Затем вернитесь на домашнюю страницу и нажмите «Создать свою первую панель мониторинга». Выберите предпочтительный тип визуализации, а затем используйте панель запросов, чтобы выбрать соответствующие показатели из ваших данных. Когда вы закончите, ваша новая визуализация появится на панели инструментов.

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

Выбор варианта изображения

Grafana использует бизнес-модель с двойной лицензией. Версия с открытым исходным кодом публикуется как grafana/grafana на Docker Hub, а Enterprise — как grafana/grafana-enterprise. Следующие инструкции будут работать с обоими этими вариантами верхнего уровня.

Доступно несколько версий Grafana, каждая из которых представлена ​​в вариантах Alpine или Ubuntu. Alpine следует отдавать предпочтение в большинстве ситуаций развертывания: он тоньше и ориентирован на предоставление среды, совместимой с Grafana, без каких-либо лишних дополнений.

ОС выбирается путем добавления ее имени после версии Grafana в теге изображения:

графана / графана: 8.3.0-убунту

Всегда лучше привязываться к конкретному выпуску, чтобы непреднамеренно не получать критические изменения при публикации новых обновлений. Если не указывать имя ОС (grafana/grafana:8.3.0), вы получите вариант Alpine выбранной вами версии.

Создание контейнера

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

docker run -d –name grafana -p 9000:3000 \ -v grafana-data:/var/lib/grafana grafana/grafana:8.3.0

В этом примере запускается новый контейнер Grafana с именем grafana, который прослушивает порт 9000 на вашем хосте Docker. Порт привязан к 3000 в контейнере, так как это адрес прослушивания Grafana по умолчанию.

На том Docker, называемый grafana-data, ссылается флаг -v. Он монтируется в /var/lib/grafana внутри контейнера, где Grafana хранит все сгенерированные данные. Подключение тома означает, что содержимое каталога будет храниться вне контейнера, что позволит избежать потери данных при остановке контейнера или перезапуске хоста.

Внедрение конфигурации

Вы можете переопределить ключи конфигурации Grafana, установив переменные среды при запуске контейнера. Вы можете изменить любой из ключей в конфигурационных файлах Grafana в формате INI, набрав имя ключа с заглавной буквы и добавив перед ним GF_:

# INI-файл имя_экземпляра = my-grafana
[security]admin_user = demo admin_password = grafana — # Соответствующие переменные среды GF_DEFAULT_INSTANCE_NAME=my-grafana GF_SECURITY_ADMIN_USER=demo GF_SECURITY_ADMIN_PASSWORD=grafana

Убедитесь, что вы включили неявное имя раздела DEFAULT при изменении значения переменной верхнего уровня в файле конфигурации.

После того, как вы определились, какие значения вы хотите изменить, укажите правильные переменные среды с флагами -e при запуске контейнера:

docker run -d –name grafana -p 9000:3000 \ -e GF_DEFAULT_INSTANCE_NAME = my-grafana -e GF_SECURITY_ADMIN_USER = demo -e GF_SECURITY_ADMIN_PASSWORD = grafana -v grafana-data: /var/lib/grafana

Grafana также поддерживает файловую конфигурацию. С помощью этого механизма значение целевой переменной среды становится путем к файлу, доступному внутри контейнера. Grafana получит реальное значение параметра, прочитав файл.

Чтобы использовать этот подход, измените любую переменную среды, добавив суффикс __FILE к ее обычному имени:

docker run -d –name grafana -p 9000:3000 \ -e GF_DEFAULT_INSTANCE_NAME = my-grafana -e GF_SECURITY_ADMIN_USER = demo -e GF_SECURITY_ADMIN_PASSWORD__FILE = /run/secrets/password -v grafana-data:grafana:8.3.0

Вы можете добавить файл в контейнер с помощью монтирования привязки (-v ./password.txt:/run/secrets/password) или специальной системы управления секретами, такой как Docker Secrets. Конфигурация на основе файлов обеспечивает более безопасный способ ввода конфиденциальных значений, которые вы не хотели бы отображать в виде обычного текста в журналах заданий CI и в истории вашей оболочки.

Переопределение файла конфигурации

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

Образ Docker находит этот файл в /etc/grafana/grafana.ini. Вы можете подключить замену к ожидаемому пути, используя монтирование привязки Docker:

docker run -d –name grafana -p 9000:3000 \ -v ./grafana.ini:/etc/grafana/grafana.ini -v grafana-data: /var/lib/grafana grafana/grafana: 8.3.0

Использование файла конфигурации упрощает внедрение более сложных настроек. Вы можете интерполировать переменные для создания динамических значений. Файлы конфигурации также поддерживают комментарии, которые позволяют документировать ваши намерения, чтобы помочь будущим сопровождающим.

Управление плагинами

Для многих установок Grafana требуются плагины, которые добавляют дополнительные источники данных или предоставляют готовые панели мониторинга. Образ Docker включает в себя вспомогательную утилиту, которая позволяет добавлять плагины в новый контейнер, устанавливая специальную переменную среды.

Вот как добавить официальный плагин, указанный в каталоге Grafana:

docker run -d –name grafana -p 9000:3000 \ -e GF_INSTALL_PLUGINS=grafana-simple-json-datasource -v grafana-data:/var/lib/grafana grafana/grafana:8.3.0

Переменная GF_INSTALL_PLUGINS ожидает список имен подключаемых модулей, разделенных запятыми, для установки при первом запуске контейнера. Имена будут переданы команде установки плагинов grafana-cli. Это означает, что вы можете включать выражения версии, такие как grafana-simple-json-datasource 1.1.0, и ссылаться на плагины сообщества через их URL:

docker run -d –name grafana -p 9000:3000 \ -e GF_INSTALL_PLUGINS=https://example.com/grafana-plugin.zip -v grafana-data:/var/lib/grafana grafana/grafana:8.3.0

Создание пользовательского изображения

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

Вы можете добиться этого, написав Dockerfile, расширяющий официальный образ grafana/grafana. Это дает вам возможность скопировать пользовательский файл конфигурации и установить любые дополнительные переменные среды, которые вам нужны.

FROM grafana/grafana:8.3.0 # Добавить плагины ENV GF_INSTALL_PLUGINS=grafana-simple-json-datasource # Скопировать файл конфигурации из вашего рабочего каталога COPY grafana.ini /etc/grafana/grafana.ini

Используйте свой Dockerfile для создания нового образа Grafana:

docker build -t custom-grafana:latest .

Теперь вы можете запустить предварительно настроенный экземпляр контейнера из своего образа:

docker run -d –name grafana -p 9000:3000 \ -v grafana-data:/var/lib/grafana custom-grafana:последняя

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

Одним из недостатков является необходимость перестраивать образ при публикации обновлений Grafana вышестоящего уровня. Вам придется периодически извлекать grafana/grafana, создавать образ в Docker, помещать его в реестр, а затем извлекать новую версию на хосте Docker. Последним этапом является воссоздание запущенных контейнеров, чтобы они использовали обновленный образ.

Резюме

Docker упрощает установку и настройку Grafana, предоставляя изолированную среду, в которой вы можете разместить свою платформу наблюдения. Вы можете быстро запустить новые экземпляры Grafana, привязав хост-порт, смонтировав том данных и указав значения конфигурации через переменные среды. Позже вы сможете инкапсулировать свою конфигурацию в собственный повторно используемый образ, основанный на официальной базе.

После запуска и запуска установка Dockerized Grafana работает так же, как и обычная. Вы можете подключать источники данных, взаимодействовать с HTTP API и настраивать оповещения, указывая на порт хоста, который вы привязали к своему контейнеру. Вы также можете назначить своему экземпляру доменное имя и настроить HTTPS, обслуживая его за обратным прокси-сервером, таким как Apache или Traefik.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *