Grafana配置文件中的设定基本都可以通过环境变量的方式来设定,用户在使用的时候也就会更加方便地通过环境变量的设定来对需要修改的设定进行调整,这篇文章以Docker方式启动的Grafana为例,介绍一下如何使用环境变量设定来修改Grafana启动时的缺省配置。
环境变量的使用方式所有在配置文件设定的变量都可以通过环境变量来进行覆盖,相应的环境变量的名称规则如下所示:
环境变量映射规则:GF_段名称_键的名称
Grafana启动时缺省的用户名和密码在配置文件中的设定如下所示,可以看到密码和用户名都是admin:
[security] # default admin user, created on startup admin_user = admin # default admin password, can be changed before first start of grafana, or in profile settings admin_password = admin环境变量
Grafana的官方镜像中缺省设定了如下几个环境变量
环境变量 默认值 GF_PATHS_CONFIG /etc/grafana/grafana.ini GF_PATHS_DATA /var/lib/grafana 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比如如下示例启动的Grafana容器中确认的日志信息也是一致的
liumiaocn:config liumiao$ docker exec -it grafana env |grep GF GF_PATHS_CONFIG=/etc/grafana/grafana.ini GF_PATHS_DATA=/var/lib/grafana 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 liumiaocn:config liumiao$使用环境变量修改密码
使用如下命令启动Grafana服务
liumiaocn:config liumiao$ docker run --rm -p 3000:3000 -e "GF_SECURITY_ADMIN_PASSWORD=liumiaocn" --name=grafana -d grafana/grafana:6.5.1 a4363ff1211bc0d0f2748996a1d51fe68928f94fd2cef1ebb71e01e724e9c418 liumiaocn:config liumiao$登录确认
使用admin/liumiaocn成功登录,另外第一次登录也不再提示需要手动修改密码
但是这种方式的不好的地方在于,密码以明文的方式存在于环境变量之中。
liumiaocn:config liumiao$ docker exec -it grafana env |grep GF GF_SECURITY_ADMIN_PASSWORD=liumiaocn GF_PATHS_CONFIG=/etc/grafana/grafana.ini GF_PATHS_DATA=/var/lib/grafana 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 liumiaocn:config liumiao$修改用户和密码
也可以进行如下修改
设定项目 环境变量 设定值 用户名 GF_SECURITY_ADMIN_USER root 用户密码 GF_SECURITY_ADMIN_PASSWORD liumiaocn启动Grafana服务
liumiaocn:config liumiao$ docker run --rm -p 3000:3000 -e "GF_SECURITY_ADMIN_PASSWORD=liumiaocn" -e "GF_SECURITY_ADMIN_USER=root" --name=grafana -d grafana/grafana:6.5.1 187100b8a007982ed3647bd77435cdadcb0b3140c58826b6af5ac2120277d446 liumiaocn:config liumiao$
然后可以通过root/liumiaocn进行登录确认了