注意:分号是ini配置文件的标准注释方式。


## 配置文件设定方式


* 方式1: 使用--config指定配置文件
* 方式2: 通过环境变量GF\_PATHS\_CONFIG指定配置文件


比如官方Grafana 镜像中这两种方式都设定为同一值,配置文件的目录信息如下所示:




| 项目 | 设定值 |
| --- | --- |
| 配置文件目录 | /etc/grafana |
| 配置文件名称 | grafana.ini |

liumiaocn:config liumiao$ docker exec -it grafana sh
/usr/share/grafana $ env |grep PATHS_CONFIG
GF_PATHS_CONFIG=/etc/grafana/grafana.ini
/usr/share/grafana $ ps -ef |grep -v ps |grep -v -w sh
PID USER TIME COMMAND
1 grafana 0:09 grafana-server --homepath=/usr/share/grafana --config=/etc/grafana/grafana.ini --packaging=docker cfg:default.log.mode=console cfg:default.paths.data=/var/lib/grafana cfg:default.paths.logs=/var/log/grafana cfg:default.paths.plugins=/var/lib/grafana/plugins cfg:default.paths.provisioning=/etc/grafana/provisioning
/usr/share/grafana $

## 配置文件设定格式


配置文件的格式如下所示

[段名称]
键的名称 = 键的设定值

## 环境变量的使用方式


所有在配置文件设定的变量都可以通过环境变量来进行覆盖,相应的环境变量的名称规则如下所示:



> 
> 环境变量映射规则:GF\_段名称\_键的名称
> 
> 
> 


以Grafana启动时缺省的用户名和密码的设定为例,配置文件中可通过如下设定登录的用户名和密码为admin/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

在使用的时候,比如可以通过Dockerfile或者启动的docker run命令中指定如下环境变量来进行设定:


* 设定管理用户名名称的环境变量:GF\_SECURITY\_ADMIN\_USER


## 部分配置文件设定


### 缺省段设定




| 设定项 | 缺省设定 | 详细说明 |
| --- | --- | --- |
| app\_mode | production | 应用模式,可设定为production或者 development |
| instance\_name | HOSTNAME环境变量值 | 示例名称,缺省设定为HOSTNAME环境变量,如果其值为空则会取hostname命令的值 |


### paths段设定




| 设定项 | 缺省设定 | 详细说明 |
| --- | --- | --- |
| data | /var/lib/grafana | 主要设定Grafana保存临时文件、会话相关的目录信息,如果使用了sqlite3时,也会在此段中进行设定 |
| temp\_data\_lifetime | 24h | 临时数据的存续时间,data目录中的数据在多长时间之后会被删除 |
| logs | /var/log/grafana | 存放Grafana日志信息的目录 |
| plugins | /var/lib/grafana/plugins | 插件目录,确认插件信息时Grafana会自动扫描和查询此目录 |
| provisioning | conf/provisioning | 存放Grafana配置文件信息的目录 |


### server段设定




| 设定项 | 缺省设定 | 详细说明 |
| --- | --- | --- |
| protocol | http | 支持http、https、h2和socket方式 |
| http\_addr | - | 绑定的IP地址,为空时表示不做限制 |
| http\_port | 3000 | 对外服务的端口号 |
| domain | localhost | 服务的域名 |
| enforce\_domain | false | 如果报文头部的信息和域信息不匹配时重定向到正确域名以预防DNS重绑定攻击 |
| root\_url | http://localhost:3000 | 服务的URL地址 |
| serve\_from\_sub\_path | false | 出于兼容性的原因缺省设定为false |
| router\_logging | false | 是否记录Web的日志请求 |
| static\_root\_path | public | 相对工作目录 |
| enable\_gzip | false | 是否启用gzip |
| cert\_file | - | 证书文件(协议为https时的设定项) |
| cert\_key | - | 证书密钥(协议为https时的设定项) |
| socket | - | (协议为socket时的设定项) |


### database段设定




| 设定项 | 缺省设定 | 详细说明 |
| --- | --- | --- |
| type | sqlite3 | 支持的数据库类型包括mysql、postgres以及sqlite3 |
| host | 127.0.0.1:3306 | 机器名称和端口号,mysql和postgres需要的设定选项 |
| name | grafana | 实例名称 |
| user | root | 用户名称 |
| password | - | 用户密码,如果包含#或者;时,需要使用三个双引号将其引起来 |
| url | - | 数据库连接的URL设定,比如mysql://user:secret@host:port/database |
| ssl\_mode | disable | postgres的设定选项,可设定为disable、require或者verify-full |
| path | grafana.db | sqlite3的设定选项,相对于data\_path的相对路径 |