运行 Grafana Docker 镜像

参考:

https://grafana.com/grafana/download?pg=get&plcmt=selfmanaged-box1-cta1&edition=oss
https://grafana.com/docs/grafana/latest/setup-grafana/installation/docker/

Alpine 镜像 (推荐)

Grafana 企业版:grafana/grafana-enterprise:<version>

Grafana 开源版:grafana/grafana-oss:<version>

默认图像基于流行的Alpine Linux 项目,在Alpine 官方图像中可用。Alpine Linux 比大多数发行版基础镜像小得多,因此镜像更精简、更安全。

当需要尽可能小的安全性和最终图像尺寸时,强烈建议使用 Alpine 变体。需要注意的主要警告是它使用musl libc而不是glibc 和朋友,因此某些软件可能会遇到问题,具体取决于其 libc 要求的深度。然而,大多数软件都没有这方面的问题,所以这个变体通常是一个非常安全的选择。

Ubuntu 镜像

Grafana 企业版:grafana/grafana-enterprise:<version>-ubuntu

Grafana 开源版:grafana/grafana-oss:<version>-ubuntu

这些图像基于Ubuntu,在Ubuntu 官方图像中可用。对于那些喜欢基于Ubuntu 的图像和/或依赖于 Alpine 不可用的某些工具的人来说,它是一个替代图像。

运行 Grafana

您可以运行最新的 Grafana 版本,运行特定版本,或运行基于grafana/grafana GitHub 存储库主分支的不稳定版本。

  • 运行最新的稳定版 Grafana

注意:如果您使用的是 Linux 系统,您可能需要sudo在命令前添加或将您的用户添加到docker组中。

docker run -d -p 3000:3000 grafana/grafana-enterprise
  • 运行特定版本的 Grafana

注意:如果您使用的是 Linux 系统,您可能需要sudo在命令前添加或将您的用户添加到docker组中。

docker run -d -p 3000:3000 --name grafana grafana/grafana-enterprise:<version number>

例子:

docker run -d -p 3000:3000 --name grafana grafana/grafana-enterprise:8.2.0
  • 运行 Grafana 主分支

    对于主分支的每次成功构建,我们都会更新grafana/grafana-oss:main和grafana/grafana-oss:main-ubuntu标签。此外,还创建了两个新标签grafana/grafana-oss-dev:<version>-<build ID>pregrafana/grafana-oss-dev:<version>-<build ID>pre-ubuntu,其中version是 Grafana 的下一个版本,build ID是相应 CI 构建的 ID。使用这些来访问 Grafana 的最新主要版本。

    在生产环境中运行 Grafana main 时,我们强烈建议您使用该grafana/grafana-oss-dev:-pre标签。此标记保证您使用特定版本的 Grafana,而不是当时最新提交的任何版本。

    有关可用标签的列表,请查看grafana/grafana-ossgrafana/grafana-oss-dev

在 Docker 容器中安装插件

您可以安装 Grafana插件页面上列出的官方和社区插件,也可以从自定义 URL 安装。

  • 安装官方和社区 Grafana 插件

将要安装的插件与GF_INSTALL_PLUGINS环境变量作为逗号分隔列表传递给 Docker。这会将每个插件名称发送到grafana-cli plugins install ${plugin}并在 Grafana 启动时安装它们。

docker run -d \
  -p 3000:3000 \
  --name=grafana \
  -e "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource" \
  grafana/grafana-enterprise

注意:如果你需要指定一个插件的版本,那么你可以将它添加到GF_INSTALL_PLUGINS环境变量中。否则,使用最新的。例如:-e “GF_INSTALL_PLUGINS=grafana-clock-panel 1.0.1,grafana-simple-json-datasource 1.3.5”。

  • 从其他来源安装插件

仅适用于 Grafana v5.3.1 及更高版本。

您可以通过像这样指定 URL 从自定义 URL 安装插件 GF_INSTALL_PLUGINS=<url to plugin zip>;<plugin install folder name>:

docker run -d \
  -p 3000:3000 \
  --name=grafana \
  -e "GF_INSTALL_PLUGINS=http://plugin-domain.com/my-custom-plugin.zip;custom-plugin,grafana-clock-panel" \
  grafana/grafana-enterprise
  • 使用预安装的插件构建和运行 Docker 镜像

您可以构建自己的包含插件的自定义映像。如果您正在创建多个图像并且希望它们都在构建时安装相同的插件,这可以节省时间。

在Grafana GitHub 存储库中有一个名为 的文件夹packaging/docker/custom/,其中包含两个 DockerfileDockerfile和ubuntu.Dockerfile,可用于构建自定义 Grafana 映像。它接受GRAFANA_VERSION, GF_INSTALL_PLUGINS, 和GF_INSTALL_IMAGE_RENDERER_PLUGIN作为构建参数。

  • 使用预安装的插件构建

如果需要指定插件的版本,可以将其添加到GF_INSTALL_PLUGINS构建参数中。否则,将假定为最新的。例如:–build-arg “GF_INSTALL_PLUGINS=grafana-clock-panel 1.0.1,grafana-simple-json-datasource 1.3.5”

如何构建和运行的示例:

cd packaging/docker/custom
docker build \
  --build-arg "GRAFANA_VERSION=latest" \
  --build-arg "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource" \
  -t grafana-custom -f Dockerfile .

docker run -d -p 3000:3000 --name=grafana grafana-custom

配置文件位置

如果您在 Docker 镜像中运行 Grafana,那么您可以使用环境变量配置 Grafana,而不是直接编辑配置文件。如果你想保存你的数据,那么你还需要为 Grafana 容器指定持久化存储或绑定挂载。

注意:这些示例使用 Grafana Enterprise docker 镜像。您可以通过将 docker 镜像更改为 grafana/grafana-oss.

保存您的 Grafana 数据

如果您不指定信息存储位置,那么一旦您停止容器,所有 Grafana 数据就会消失。要保存数据,您需要为容器设置持久存储或绑定挂载。

使用持久存储运行 Grafana 容器(推荐)

# create a persistent volume for your data in /var/lib/grafana (database and plugins)
docker volume create grafana-storage

# start grafana
# Docker(Alpine base image)
docker run -d -p 3000:3000 --name=grafana -v grafana-storage:/var/lib/grafana grafana/grafana-oss
# Docker(Ubuntu base image)
docker run -d -p 3000:3000 --name=grafana -v grafana-storage:/var/lib/grafana grafana/grafana-oss:9.3.6-ubuntu
使用绑定挂载运行 Grafana 容器

您可能希望在 Docker 中运行 Grafana,但将主机上的文件夹用于数据库或配置。这样做时,使用能够访问和写入您映射到容器中的文件夹的用户启动容器变得很重要。

mkdir data # creates a folder for your data
ID=$(id -u) # saves your user id in the ID variable

# starts grafana with your user id and using the data folder
docker run -d --user $ID --volume "$PWD/data:/var/lib/grafana" -p 3000:3000 grafana/grafana-oss
默认路径

以下设置在启动 Grafana Docker 容器时是硬编码的,只能使用环境变量覆盖,不能在 conf/grafana.ini.

环境 默认值
GF_PATHS_CONFIG /etc/grafana/grafana.ini
GF_PATHS_DATA /var/lib/graphana
GF_PATHS_HOME /usr/share/grafana
GF_PATHS_LOGS /var/log/grafana
GF_PATHS_PLUGINS /var/lib/grafana/plugins
GF_PATHS_PROVISIONING /etc/grafana/provisioning
记录

Docker 容器中的日志默认输出到标准输出,这在 Docker 世界中很常见。通过设置不同的日志模式来改变这一点。

例子:

# Run Grafana while logging to both standard out and /var/log/grafana/grafana.log
docker run -p 3000:3000 -e "GF_LOG_MODE=console file" grafana/grafana-oss

使用 Docker Secrets 配置 Grafana

仅适用于 Grafana v5.2 及更高版本。

可以通过文件为 Grafana 提供配置。这与Docker Secrets配合得很好,因为默认情况下秘密会映射到 /run/secrets/<name of secret>容器中。

您可以使用 conf/grafana.ini 中的任何配置选项来执行此操作,方法是设置GF_<SectionName>_<KeyName>__FILE为保存机密的文件的路径。

例如,您可以这样设置管理员密码:

  • 管理员密码秘密:/run/secrets/admin_password

  • 环境变量:GF_SECURITY_ADMIN_PASSWORD__FILE=/run/secrets/admin_password

为 CloudWatch Support 配置 AWS 凭证

docker run -d \
-p 3000:3000 \
--name=grafana \
-e "GF_AWS_PROFILES=default" \
-e "GF_AWS_default_ACCESS_KEY_ID=YOUR_ACCESS_KEY" \
-e "GF_AWS_default_SECRET_ACCESS_KEY=YOUR_SECRET_KEY" \
-e "GF_AWS_default_REGION=us-east-1" \
grafana/grafana-oss

您还可以指定多个配置文件GF_AWS_PROFILES(例如 GF_AWS_PROFILES=default another)。

支持的变量:

  • GF_AWS_${profile}ACCESSKEY_ID:AWS 访问密钥 ID(必填)。
  • GF_AWS_${profile}SECRETACCESS_KEY:AWS 秘密访问密钥(必需)。
  • GF_AWS_${profile}_REGION:AWS 区域(可选)。
作者:Jeebiz  创建时间:2019-10-20 22:16
最后编辑:Jeebiz  更新时间:2024-02-26 11:18