数据可视化组件Grafana详细解读--在Docker上安装Grafana管理平台
使用Docker安装Grafana使用官方docker容器非常容易安装和运行。$ docker run -d -p 3000:3000 grafana/grafanaPS:运行一条docker命令后会启动一个容器并占用3000端口,如果此时由接着运行下文列出的docker run ...命令,新的容器是不能启动的,因为端口被占用了。命令查看当前正在运行的容器的containe...
使用Docker安装
Grafana使用官方docker容器非常容易安装和运行。
$ docker run -d -p 3000:3000 grafana/grafana
PS:运行一条docker命令后会启动一个容器并占用3000端口,如果此时由接着运行下文列出的docker run ...命令,新的容器是不能启动的,因为端口被占用了。命令查看当前正在运行的容器的container_id,然后docker stop [container_id]命令停止容器,container_id是您刚才通过docker ps命令查看到的容器代号。然后docker ps -ls查看停止的容器,docker rm [container_id]将原容器删除,然后在运行下面新的docker run ...命令启动一个新的grafana容器,当然您也可以通过修改端口号来重新启动。
使用泊坞窗安装Grafana
Grafana在泊坞窗容器中,非常容易安装,使用下面命令,即可安装grafana的官方镜像。
$ docker run -d -p 3000:3000 grafana/grafana
组态
conf/grafana.ini
可以使用语法使用环境变量覆盖 定义的所有选项 GF_<SectionName>_<KeyName>
。例如:
$ docker run \
-d \
-p 3000:3000 \
--name=grafana \
-e "GF_SERVER_ROOT_URL=http://grafana.server.name" \
-e "GF_SECURITY_ADMIN_PASSWORD=secret" \
grafana/grafana
后端Web服务器有许多配置选项。有关所有这些选项的详细信息,请转到“ 配置”页面。
要使
conf/grafana.ini
(或相应的环境变量)的任何更改 生效,您需要通过重新启动Docker容器来重新启动Grafana。
详细配置
conf/grafana.ini
的中环境变量可以被以下命令中参数配置选项对话 GF_<SectionName>_<KeyName> 覆盖,
例如:
$ docker run \
-d \
-p 3000:3000 \
--name=grafana \
-e "GF_SERVER_ROOT_URL=http://grafana.server.name" \
-e "GF_SECURITY_ADMIN_PASSWORD=secret" \
grafana/grafana
# 备注
# -e "GF_SERVER_ROOT_URL=http://grafana.server.name" \ 这个是环境变量参数,在conf/grafana.ini这可以找到,此配置将覆盖原配置文件中的信息
# -e "GF_SECURITY_ADMIN_PASSWORD=secret" \ 这个是环境变量参数,在conf/grafana.ini这可以找到,此配置将覆盖原配置文件中的信息
网络后端服务器有许多配置选项。有关所有这些选项的详细信息,请转到“ 配置”页面。
要使
conf/grafana.ini
(或相应的环境变量)的任何更改生效,您需要通过重新启动Docker容器来重新启动Grafana。
默认路径
启动Grafana Docker容器时,以下设置是硬编码的,并且只能使用环境变量覆盖,而不能覆盖 conf/grafana.ini
。
设置 | 默认值 |
---|---|
GF_PATHS_CONFIG | /etc/grafana/grafana.ini |
GF_PATHS_DATA | 在/ var / lib中/ grafana |
GF_PATHS_HOME | 的/ usr /共享/ grafana |
GF_PATHS_LOGS | 在/ var /日志/ grafana |
GF_PATHS_PLUGINS | 在/ var / lib中/ grafana /插件 |
GF_PATHS_PROVISIONING | 的/ etc / grafana /配置 |
默认路径
启动Grafana Docker容器时,以下设置是硬编码的,并且只能使用环境变量覆盖,而不能覆盖 conf/grafana.ini
。
设置 | 默认值 |
---|---|
GF_PATHS_CONFIG | /etc/grafana/grafana.ini |
GF_PATHS_DATA | 在/ var / lib中/ grafana |
GF_PATHS_HOME | 的/ usr /共享/ grafana |
GF_PATHS_LOGS | 在/ var /日志/ grafana |
GF_PATHS_PLUGINS | 在/ var / lib中/ grafana /插件 |
GF_PATHS_PROVISIONING | 的/ etc / grafana /配置 |
运行特定版本的Grafana
# specify right tag, e.g. 5.1.0 - see Docker Hub for available tags
$ docker run \
-d \
-p 3000:3000 \
--name grafana \
grafana/grafana:5.1.0
运行特定版本的Grafana
# specify right tag, e.g. 5.1.0 - see Docker Hub for available tags
$ docker run \
-d \
-p 3000:3000 \
--name grafana \
grafana/grafana:5.1.0
运行主分支
对于主分支的每个成功构建,我们更新 grafana/grafana:master
标记并grafana/grafana-dev:master-<commit hash>
使用构建的git commit的哈希创建新标记 。这意味着您始终可以获得最新版本的Grafana。
在生产中运行Grafana master时,我们 强烈 建议您使用 grafana/grafana-dev:master-<commit hash>
标记,因为这样可以保证您使用特定版本的Grafana而不是当时最新的提交。
有关可用标签的列表,请查看 grafana / grafana 和 grafana / grafana-dev。
运行主分支
对于主分支的每个成功构建,我们更新grafana/grafana:master
标记并grafana/grafana-dev:master-<commit hash>
使用构建的git commit的哈希创建新标记。这意味着你始终可以获得最新版本的Grafana。
在生产中运行Grafana master时,我们强烈建议您使用grafana/grafana-dev:master-<commit hash>
标记,因为这样可以保证您使用特定版本的Grafana而不是当时最新的提交。
有关可用标签的列表,请查看grafana / grafana和grafana / grafana-dev。
安装Grafana插件
将要安装的插件传递给docker,并将 GF_INSTALL_PLUGINS
环境变量作为逗号分隔列表。这将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
安装Grafana插件
将要安装的插件传递给搬运工,并将GF_INSTALL_PLUGINS
环境变量作为逗号分隔列表。将这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
使用预安装的插件构建自定义Grafana图像
在 grafana-docker中 有一个名为的文件夹custom/
,其中包含一个 Dockerfile
可用于构建自定义Grafana图像的文件夹 。它接受 GRAFANA_VERSION
并 GF_INSTALL_PLUGINS
作为构建参数。
如何构建和运行的示例:
cd custom
docker build -t grafana:latest-with-plugins \
--build-arg "GRAFANA_VERSION=latest" \
--build-arg "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource" .
docker run \
-d \
-p 3000:3000 \
--name=grafana \
grafana:latest-with-plugins
使用预安装的插件构建自定义Grafana图像
在grafana-泊坞窗中有一个名为的文件夹数custom/
,所有游戏其中一个Dockerfile
柯林斯用于构建自定义Grafana图像的文件夹。接受它GRAFANA_VERSION
并GF_INSTALL_PLUGINS
作为构建参数。
如何构建和运行的示例:
cd custom
docker build -t grafana:latest-with-plugins \
--build-arg "GRAFANA_VERSION=latest" \
--build-arg "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource" .
docker run \
-d \
-p 3000:3000 \
--name=grafana \
grafana:latest-with-plugins
从其他来源安装插件
仅适用于Grafana v5.3.1 +
可以通过指定这样的url来自定义url:s安装插件: GF_INSTALL_PLUGINS=<url to plugin zip>;<plugin name>
docker run \
-d \
-p 3000:3000 \
--name=grafana \
-e "GF_INSTALL_PLUGINS=http://plugin-domain.com/my-custom-plugin.zip;custom-plugin" \
grafana/grafana
从其他来源安装插件
仅适用于Grafana v5.3.1 +
可以通过指定这样的URL来自定义网址:■安装插件:
docker run \
-d \
-p 3000:3000 \
--name=grafana \
-e "GF_INSTALL_PLUGINS=http://plugin-domain.com/my-custom-plugin.zip;custom-plugin" \
grafana/grafana
为CloudWatch支持配置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
您还可以指定多个配置文件 GF_AWS_PROFILES
(例如 GF_AWS_PROFILES=default another
)。
支持的变量:
GF_AWS_${profile}_ACCESS_KEY_ID
:AWS访问密钥ID(必需)。GF_AWS_${profile}_SECRET_ACCESS_KEY
:AWS秘密访问密钥(必需)。GF_AWS_${profile}_REGION
:AWS区域(可选)。
为的CloudWatch支持配置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
您还可以指定多个配置文件GF_AWS_PROFILES
(例如GF_AWS_PROFILES=default another
)。
支持的变量:
GF_AWS_${profile}_ACCESS_KEY_ID
:AWS访问密钥ID(必需)。GF_AWS_${profile}_SECRET_ACCESS_KEY
:AWS秘密访问密钥(必需)。GF_AWS_${profile}_REGION
:AWS区域(可选)。
具有持久存储的Grafana容器(推荐)
# create a persistent volume for your data in /var/lib/grafana (database and plugins)
docker volume create grafana-storage
# start grafana
docker run \
-d \
-p 3000:3000 \
--name=grafana \
-v grafana-storage:/var/lib/grafana \
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 run \
-d \
-p 3000:3000 \
--name=grafana \
-v grafana-storage:/var/lib/grafana \
grafana/grafana
使用绑定坐骑的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:5.1.0
使用绑定数据分卷的Grafana容器
您可能希望在泊坞窗中运行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:5.1.0
ps:这里使用参数--volume“$ PWD / data:/ var / lib / grafana”是挂载宿主机的$ pwd / data目录到容器的/ var / lib / grafana目录下
从文件中读取秘密(支持Docker Secrets)
仅适用于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
从文件中读取秘密密文信息(支持Docker Secrets)
仅适用于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
从先前版本的docker容器迁移到5.1或更高版本
Grafana的docker容器已经看到了5.1的重大改写。
重要的变化
- 启动期间不再修改文件所有权
chown
- 默认用户ID
472
而不是104
- 没有更多的隐含卷
/var/lib/grafana
/etc/grafana
/var/log/grafana
从先前版本的搬运工容器迁移到5.1或更高版本
Grafana的搬运工容器已经看到了5.1的重大改写。
重要的变化
- 启动期间不再修改文件所有权
chown
- 默认用户ID
472
而不是104
- 没有更多的隐含卷
/var/lib/grafana
/etc/grafana
/var/log/grafana
删除隐式卷
此前 /var/lib/grafana
, /etc/grafana
以及 /var/log/grafana
被定义为在册 Dockerfile
。无论您是否想要,每次启动Grafana容器的新实例时,都会创建三个卷。
您应始终小心定义自己的命名卷以进行存储,但如果依赖于这些卷,则应注意升级后的容器将不再具有这些卷。
警告:使用docker compose和隐式卷从早期版本迁移到5.1或更高版本时,您需要使用它 docker inspect
来找出容器映射到哪些卷,以便您也可以将它们映射到已升级的容器。您还必须更改文件所有权(或用户),如下所述。
删除隐式卷
此前/var/lib/grafana
,/etc/grafana
以及/var/log/grafana的三个数据卷
被定义在Dockerfile中
。无论您是否想要,每次启动Grafana容器的新实例时,都会创建三个卷。
您应始终小心定义自己的命名卷以进行存储,但如果依赖于这些卷,则应注意升级后的容器将不再具有这些卷。
警告:使用docker compose和隐式卷从早期版本迁移到5.1或更高版本时,您需要使用它docker inspect
来找出容器映射到哪些卷,以便您也可以将它们映射到已升级的容器。您还必须更改文件所有权(或用户),如下所述。
用户ID更改
在5.1中,我们切换了grafana用户的id。不幸的是,这意味着在5.1之前创建的文件将不具有更高版本的正确权限。我们进行了此更改,以便grafana用户ID更有可能是Grafana独有的。例如,在Ubuntu上,16.04 104
已经被syslog用户使用。
版 | 用户 | 用户身份 |
---|---|---|
<5.1 | grafana | 104 |
> = 5.1 | grafana | 472 |
这个问题有两种可能的解决方案。您以root用户身份启动新容器并将所有权更改 104
为 472
或以用户身份启动已升级容器 104
。
作为不同的用户运行docker
docker run --user 104 --volume "<your volume mapping here>" grafana/grafana:5.1.0
在docker-compose.yml中指定用户
version: "2"
services:
grafana:
image: grafana/grafana:5.1.0
ports:
- 3000:3000
user: "104"
修改权限
下面的命令将在Grafana容器中运行bash并将您的卷映射到。这使得可以修改文件所有权以匹配新容器。修改权限时务必小心。
$ docker run -ti --user root --volume "<your volume mapping here>" --entrypoint bash grafana/grafana:5.1.0
# in the container you just started:
chown -R root:root /etc/grafana && \
chmod -R a+r /etc/grafana && \
chown -R grafana:grafana /var/lib/grafana && \
chown -R grafana:grafana /usr/share/grafana
用户ID更改
在5.1中,我们切换了grafana用户的ID。不幸的是,这意味着在5.1之前创建的文件将不具有更高版本的正确权限。我们进行了此更改,以便grafana用户ID更有可能是Grafana独有的。例如,在Ubuntu的上,16.04 104
已经被系统记录用户使用。
版 | 用户 | 用户身份 |
---|---|---|
<5.1 | grafana | 104 |
> = 5.1 | grafana | 472 |
这个问题有两种可能的解决方案。您以根身份用户新启动容器并将所有权更改104
为472
或以用户身份启动已升级容器104
。
作为不同的用户运行泊坞窗
docker run --user 104 --volume "<your volume mapping here>" grafana/grafana:5.1.0
在泊坞窗,compose.yml中指定用户
version: "2"
services:
grafana:
image: grafana/grafana:5.1.0
ports:
- 3000:3000
user: "104"
修改权限
下面的命令将在Grafana容器中运行的bash并将您的卷映射到。这使得可以修改文件所有权以匹配新容器。修改权限时务必小心。
$ docker run -ti --user root --volume "<your volume mapping here>" --entrypoint bash grafana/grafana:5.1.0
# in the container you just started:
chown -R root:root /etc/grafana && \
chmod -R a+r /etc/grafana && \
chown -R grafana:grafana /var/lib/grafana && \
chown -R grafana:grafana /usr/share/grafana
首次登录
要运行Grafana,请打开浏览器并转到 http:// localhost:3000 /。如果您尚未配置其他端口,则3000是Grafana侦听的默认http 端口。然后按照此处的说明操作 。
首次登录
要运行Grafana,请打开浏览器并转到http:// localhost:3000 /。如果您尚未配置其他端口,则3000是Grafana侦听的默认http 端口。然后按照此处的说明操作。
升级Grafana
PS:对于原来已经安装grafana,且使用旧版grafana的用户
我们建议大家经常升级Grafana,以便及时了解最新的修复和增强功能。为了实现这一目标,Grafana升级是向后兼容的,升级过程简单快捷。
升级通常总是安全的(在许多次要版本和一个主要版本之间),仪表板和图形看起来都是一样的。在某些边缘情况下可能会有轻微的重大更改,这些更改通常在发行说明和更改日志中列出
数据库备份
在升级之前,备份Grafana数据库是个好主意。这将确保您始终可以回滚到以前的版本。在启动期间,Grafana将自动迁移数据库模式(如果有更改或新表)。有时,如果您以后想要降级,这可能会导致问题。
Sqlite备份数据/导入数据
如果你使用sqlite,你只需要备份你的grafana.db
文件。这通常位于/var/lib/grafana/grafana.db
unix系统上。如果您不确定您使用的数据库以及存储位置,请检查您的grafana配置文件。如果您使用二进制tar / zip将grafana安装到自定义位置,通常是在<grafana_install_dir>/data
。
MySQL备份数据/导入数据
backup:
> mysqldump -u root -p[root_password] [grafana] > grafana_backup.sql
restore:
> mysql -u root -p grafana < grafana_backup.sql
Postgres备份数据/导入数据
backup:
> pg_dump grafana > grafana_backup
restore:
> psql grafana < grafana_backup
Ubuntu / Debian
如果您通过下载debian软件包(.deb
)安装了grafana,您可以按照相同的安装指南执行相同的dpkg -i
命令,但使用新软件包。它将升级您的Grafana安装。
如果您使用我们的APT存储库:
sudo apt-get update
sudo apt-get install grafana
从二进制tar文件升级
如果您下载了二进制tar包,则可以下载并解压缩新包并覆盖所有现有文件。但这可能会覆盖您的配置更改。我们建议您将配置更改放在名为的文件中<grafana_install_dir>/conf/custom.ini
,这样可以使升级更容易,而不会有丢失配置更改的风险。
PS:使用 apt-get update && apt-get install grafana请确保源是和官方一致,否则请到官网查找如何添加最新官方源
Centos / RHEL
如果您通过下载rpm软件包安装了grafana,您可以按照相同的安装指南执行相同的命令yum install
或rpm -i
命令,但会使用新软件包,并将升级原Grafana。
如果您使用我们的YUM存储库:
$ yum update grafana
PS:使用 yum update grafana请确保 repo 源是和官方一致,否则请到官网查找如何添加最新官方源
Docker
这只是一个示例,详细信息取决于您如何配置grafana容器。
docker pull grafana
docker stop my-grafana-container
docker rm my-grafana-container
docker run --name=my-grafana-container --restart=always -v /var/lib/grafana:/var/lib/grafana
Windows
如果您下载了Windows二进制包,则只需下载一个较新的包并解压缩到同一位置(并覆盖现有文件)。这可能会覆盖您的配置更改。我们建议您将配置更改放在名为的文件中<grafana_install_dir>/conf/custom.ini
,这样可以使升级更容易,而不会有丢失配置更改的风险。
从1.x升级
从2.x升级
我们不知道直接从2.x升级到4.x的任何问题,但为了安全起见,请通过3.x => 4.x.
升级到v5.0
仪表板网格布局引擎已更改。在v5中加载时,所有仪表板都将自动升级到新的定位系统。保存在v5中的仪表板在旧版Grafana中不起作用。某些外部面板插件可能需要更新才能正常工作。
有关新面板定位系统的更多详细信息,请单击此处
升级到v5.2
此版本中包含的其中一个数据库迁移将更新所有注释时间戳,从第二精度到毫秒精度。如果您有大量注释,则数据库迁移可能需要很长时间才能完成,如果您使用systemd运行Grafana,则可能会导致问题。
我们有一个报告,其中使用systemd,PostgreSQL和大量注释(表大小为1645mb)需要8-20分钟才能完成数据库迁移。但是,systemd在90秒后杀死了grafana-server进程。当systemd终止grafana-server进程时,正在进行的任何数据库迁移查询将继续在数据库中执行,直到完成为止。
如果您正在使用systemd并且有大量注释,请考虑临时将systemd TimeoutStartSec
设置调整为高级30m
之前的升级。
更多推荐
所有评论(0)