配置 Grafana
您可以使用 Grafana Cloud 以避免自行安装、维护和扩展 Grafana 实例。创建免费账户即可开始使用,该账户包含永久免费的 1 万指标、50GB 日志、50GB 链路追踪、500 VUh k6 测试等。
Grafana 具有默认和自定义配置文件。您可以通过修改自定义配置文件或使用环境变量来自定义 Grafana 实例。要查看 Grafana 实例的设置列表,请参阅 查看服务器设置。
注意
添加自定义选项后,请取消注释配置文件中的相关部分。
重启 Grafana 使您的更改生效。
配置文件位置
Grafana 实例的默认设置存储在 <WORKING DIRECTORY>/conf/defaults.ini
文件中。**不要**更改此文件。
根据您的操作系统,您的自定义配置文件可以是 <WORKING DIRECTORY>/conf/custom.ini
文件或 /usr/local/etc/grafana/grafana.ini
文件。您可以使用 --config
选项指定自定义配置路径。
Linux
如果您使用 deb 或 RPM 包安装了 Grafana,则您的配置文件位于 /etc/grafana/grafana.ini
,并且不使用单独的 custom.ini
文件。此路径在 Grafana init.d 脚本中使用 --config
选项指定。
Docker
有关环境变量、持久存储和构建自定义 Docker 镜像的信息,请参阅 配置 Grafana Docker 镜像。
Windows
在 Windows 上,sample.ini
文件位于与 defaults.ini
文件相同的目录中。它包含所有被注释掉的设置。复制 sample.ini
并将其命名为 custom.ini
。
macOS
默认情况下,配置文件位于 /opt/homebrew/etc/grafana/grafana.ini
或 /usr/local/etc/grafana/grafana.ini
。对于使用 Homebrew 安装的 Grafana 实例,直接编辑 grafana.ini
文件。否则,将一个名为 custom.ini
的配置文件添加到 conf
目录以覆盖 conf/defaults.ini
中定义的设置。
删除 .ini 文件中的注释
Grafana 使用分号 (;
) 来注释 INI 文件中的行。要取消注释一行,请移除该行开头的分号 (;
)。
Grafana 忽略所有以分号开头的配置行。
例如
;http_port = 3000
使用环境变量覆盖配置
**不要**使用环境变量来**添加**新的配置设置。相反,使用环境变量来**覆盖**现有选项。
覆盖选项
GF_<SECTION NAME>_<KEY>
其中 <SECTION NAME>
是配置文件中方括号 ([
和 ]
) 内的文本。所有字母必须大写,句号 (.
) 和连字符 (-
) 必须替换为下划线 (_
)。例如,如果您有以下配置设置
# default section
instance_name = ${HOSTNAME}
[security]
admin_user = admin
[auth.google]
client_secret = 0ldS3cretKey
[plugin.grafana-image-renderer]
rendering_ignore_https_errors = true
[feature_toggles]
enable = newNavigation
您可以在 Linux 机器上使用以下命令覆盖变量
export GF_DEFAULT_INSTANCE_NAME=my-instance
export GF_SECURITY_ADMIN_USER=owner
export GF_AUTH_GOOGLE_CLIENT_SECRET=newS3cretKey
export GF_PLUGIN_GRAFANA_IMAGE_RENDERER_RENDERING_IGNORE_HTTPS_ERRORS=true
export GF_FEATURE_TOGGLES_ENABLE=newNavigation
变量展开
如果您的任何选项包含表达式 $__<PROVIDER>{<ARGUMENT>}
或 ${<ENVIRONMENT VARIABLE>}
,则 Grafana 将对其进行评估。评估会使用提供的参数运行提供商以获取选项的最终值。
有三种提供商:env
、file
和 vault
。
env
提供商
env
提供商展开环境变量。如果您将选项设置为 $__env{PORT}
,则会用 PORT
环境变量的值替换它。对于环境变量,您也可以使用简写语法 ${PORT}
。
以下示例将日志目录设置为 LOGDIR
环境变量中的路径
[paths]
logs = $__env{LOGDIR}/grafana
file
提供商
file
提供商从文件系统中读取文件。它会去除文件开头和结尾的空白字符。
以下示例将数据库密码设置为 /etc/secrets/gf_sql_password
文件的内容
[database]
password = $__file{/etc/secrets/gf_sql_password}
vault
提供商
vault
提供商允许您使用 Hashicorp Vault 管理您的密钥。
注意
vault
提供商仅在 Grafana Enterprise 中可用。有关更多信息,请参阅 将 Grafana 与 Hashicorp Vault 集成。
配置选项
以下标题描述了 Grafana 配置文件的各个部分和配置选项。
app_mode
选项为 production
和 development
。默认值为 production
。除非您正在进行 Grafana 开发,否则**不要**更改此选项。
instance_name
设置 Grafana 服务器实例的名称。用于日志记录、内部指标和集群信息。默认值为:${HOSTNAME}
,它使用环境变量 HOSTNAME
的值;如果该变量为空或不存在,Grafana 会尝试使用系统调用获取机器名称。
[paths]
data
Grafana 存储 sqlite3 数据库(如果使用)、基于文件的会话(如果使用)和其他数据的路径。此路径通常在 init.d 脚本或 systemd 服务文件中通过命令行指定。
macOS:默认的 SQLite 数据库位于 /usr/local/var/lib/grafana
temp_data_lifetime
data
目录中的临时图片应该保留多久。默认值:24h
。支持的修饰符:h
(小时),m
(分钟),例如:168h
、30m
、10h30m
。使用 0
表示永不清理临时文件。
logs
Grafana 存储日志的路径。此路径通常在 init.d 脚本或 systemd 服务文件中通过命令行指定。您可以在配置文件或默认环境变量文件中覆盖它。
注意
在配置文件或环境变量文件中覆盖默认日志路径时,Grafana 在完全启动之前仍然会记录到默认日志路径。
使用命令行参数 cfg:default.paths.logs
覆盖日志路径
./grafana-server --config /custom/config.ini --homepath /custom/homepath cfg:default.paths.logs=/custom/path
macOS:默认情况下,日志文件应位于 /usr/local/var/log/grafana/grafana.log
。
plugins
Grafana 自动扫描和查找插件的目录。有关手动或自动安装插件的信息,请参阅 安装 Grafana 插件。
macOS:默认情况下,Mac 插件位置是:/usr/local/var/lib/grafana/plugins
。
provisioning
包含 配置 配置文件的目录,Grafana 在启动时会应用这些文件。当 JSON 文件更改时,仪表盘会重新加载。
[server]
protocol
http
、https
、h2
或 socket
min_tls_version
TLS 握手需要最低 TLS 版本。可用选项为 TLS1.2
和 TLS1.3
。如果您未指定版本,系统将使用 TLS1.2
。
http_addr
服务器监听的主机。如果您的机器有多个网络接口,您可以使用此设置仅在一个网络接口上暴露 Grafana 服务,而不是在其他接口(例如回环接口)上可用。空值相当于将值设置为 0.0.0.0
,这意味着 Grafana 服务绑定到所有接口。
在使用网络地址转换 (NAT) 的环境中,请确保使用网络接口地址,而不是最终的公共地址;否则,您可能会在日志中看到诸如 bind: cannot assign requested address
的错误。
http_port
要绑定的端口,默认为 3000
。要使用端口 80,您需要例如为 Grafana 二进制文件授予权限
sudo setcap 'cap_net_bind_service=+ep' /usr/sbin/grafana-server
或者使用以下命令将端口 80 重定向到 Grafana 端口
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
另一种方法是在 Grafana 前面放置一个像 Nginx 或 Apache 这样的 Web 服务器,并让它们将请求代理到 Grafana。
domain
此设置仅用作 root_url
设置的一部分(见下文)。如果您使用 GitHub 或 Google OAuth,此设置非常重要。
enforce_domain
如果 host header 与 domain 不匹配,则重定向到正确的域名。防止 DNS 重绑定攻击。默认值为 false
。
root_url
这是从 Web 浏览器访问 Grafana 时使用的完整 URL。如果您使用 Google 或 GitHub OAuth 身份验证,此设置非常重要(以确保回调 URL 正确)。
注意
如果您在 Grafana 前面有一个反向代理,通过子路径暴露它,此设置也很重要。
在这种情况下,将子路径添加到此 URL 设置的末尾。
serve_from_sub_path
从 root_url
设置中指定的子路径提供 Grafana 服务。出于兼容性原因,默认设置为 false
。
启用此设置并在 root_url
中使用子路径,例如 root_url = https://:3000/grafana
,则可以通过 https://:3000/grafana
访问 Grafana。如果未通过子路径访问,Grafana 会将请求重定向到子路径。
router_logging
设置为 true
使 Grafana 记录所有 HTTP 请求(不仅仅是错误)。这些请求作为 Info 级别事件记录到 Grafana 日志中。
static_root_path
前端文件(HTML、JS 和 CSS 文件)所在的目录路径。默认为 public
,这就是为什么需要在工作目录设置为安装路径的情况下执行 Grafana 二进制文件。
enable_gzip
将此选项设置为 true
以启用 HTTP 压缩,这可以提高传输速度和带宽利用率。建议大多数用户将其设置为 true
。出于兼容性原因,默认设置为 false
。
cert_file
证书文件路径(如果 protocol
设置为 https
或 h2
)。
cert_key
证书密钥文件路径(如果 protocol
设置为 https
或 h2
)。
cert_pass
可选。用于解密加密证书的密码。
certs_watch_interval
控制是否定期监视 cert_key
和 cert_file
的变化。默认禁用。启用后,会监视 cert_key
和 cert_file
的变化。如果发生变化,新证书会自动加载。
警告
加载新证书后,使用旧证书的连接将无法工作。您必须重新加载使用旧证书的连接才能使其工作。
socket_gid
当 protocol=socket
时,应设置 socket 的 GID。在更改此设置之前,请确保目标组在 Grafana 进程的组中,并且 Grafana 进程是文件所有者。建议将 GID 设置为 HTTP 服务器用户 GID。当值为 -1
时不设置。
socket_mode
当 protocol=socket
时,应设置 socket 的模式。在更改此设置之前,请确保 Grafana 进程是文件所有者。
socket
当 protocol=socket
时,应创建 socket 的路径。在更改此设置之前,请确保 Grafana 对该路径具有适当的权限。
cdn_url
指定您的 Grafana CDN 资源根目录的完整 HTTP URL 地址。Grafana 会添加版本和版本路径。
例如,给定一个像 https://cdn.myserver.com
的 CDN URL,Grafana 会尝试从 http://cdn.myserver.com/grafana-oss/7.4.0/public/build/app.<HASH>.js
加载 JavaScript 文件。
read_timeout
设置传入请求读取超时和关闭空闲连接前的最大时间,使用持续时间格式(例如 5s/5m/5ms)。0
表示读取请求没有超时。
[server.custom_response_headers]
此设置允许您指定服务器添加到 HTTP(S) 响应中的附加 header。
exampleHeader1 = exampleValue1
exampleHeader2 = exampleValue2
[database]
Grafana 需要一个数据库来存储用户和仪表盘(以及其他内容)。默认情况下,它配置为使用 sqlite3
,这是一个嵌入式数据库(包含在 Grafana 主二进制文件中)。
type
可以是 mysql
、postgres
或 sqlite3
,由您选择。
host
仅适用于 MySQL 或 Postgres。包括 IP 或主机名和端口,对于 Unix socket 则为路径。例如,对于在与 Grafana 相同主机上运行的 MySQL:host = 127.0.0.1:3306
或使用 Unix socket:host = /var/run/mysqld/mysqld.sock
name
Grafana 数据库的名称。保留设置为 grafana
或其他名称。
user
数据库用户(不适用于 sqlite3
)。
password
数据库用户的密码(不适用于 sqlite3
)。如果密码包含 #
或 ;
,您必须用三引号将其括起来。例如 """#password;"""
url
使用 URL 或下面的其他字段配置数据库 示例:mysql://user:secret@host:port/database
max_idle_conn
空闲连接池中的最大连接数。
max_open_conn
与数据库的最大打开连接数。对于 MYSQL,请在 Grafana 和数据库上都配置此设置。有关更多信息,请参阅 sysvar_max_connections
。
conn_max_lifetime
设置连接可重用的最大时间。默认值为 14400(即 14400 秒或 4 小时)。对于 MySQL,此设置应短于 wait_timeout
变量。
migration_locking
设置为 false
以在迁移期间禁用数据库锁定。默认值为 true。
locking_attempt_timeout_sec
仅适用于 mysql
和 postgres
。指定在锁定数据库进行迁移失败前等待的时间(秒)。默认值为 0
。
log_queries
设置为 true
以记录 SQL 调用和执行时间。
ssl_mode
对于 Postgres,可以使用任何有效的 libpq
sslmode
,例如 disable
、require
、verify-full
等。对于 MySQL,可以使用 true
、false
或 skip-verify
。
ssl_sni
对于 Postgres,设置为 0
以禁用 Server Name Indication。默认情况下,在启用 SSL 的连接上此功能处于启用状态。
isolation_level
仅 MySQL 驱动程序支持 Grafana 中的隔离级别。如果值为空,则应用驱动程序的默认隔离级别。可用选项为 “READ-UNCOMMITTED”、“READ-COMMITTED”、“REPEATABLE-READ” 或 “SERIALIZABLE”。
ca_cert_path
要使用的 CA 证书路径。在许多 Linux 系统上,证书可以在 /etc/ssl/certs
中找到。
client_key_path
客户端密钥路径。仅在服务器需要客户端身份验证时使用。
client_cert_path
客户端证书路径。仅在服务器需要客户端身份验证时使用。
server_cert_name
mysql
或 postgres
服务器使用的证书的通用名称字段。如果 ssl_mode
设置为 skip-verify
则不需要。
path
仅适用于 sqlite3
数据库。数据库文件路径。
cache_mode
仅适用于 “sqlite3”。连接到数据库使用的 共享缓存 设置。(private, shared) 默认为 private
。
wal
仅适用于 “sqlite3”。用于启用/禁用 预写日志 (WAL) 的设置。默认值为 false
(禁用)。
query_retries
此设置仅适用于 sqlite
,控制当数据库被锁定时系统重试查询的次数。默认值为 0
(禁用)。
transaction_retries
此设置仅适用于 sqlite
,控制当数据库被锁定时系统重试事务的次数。默认值为 5
。
instrument_queries
设置为 true
以添加数据库查询的指标和链路追踪。默认值为 false
。
[remote_cache]
在配置的数据库、Redis 或 Memcached 中缓存身份验证详细信息和会话信息。此设置不配置 Grafana Enterprise 中的查询缓存。
type
可以是 redis
、memcached
或 database
。默认值为 database
connstr
远程缓存连接字符串。格式取决于远程缓存的 type
。选项包括 database
、redis
和 memcache
。
database
使用 database
时留空,Grafana 会使用主数据库。
redis
示例连接字符串:addr=127.0.0.1:6379,pool_size=100,db=0,username=grafana,password=grafanaRocks,ssl=false
addr
是 Redis 服务器的 主机:端口
。pool_size
(可选)是可以与 Redis 建立的基础连接数。db
(可选)是您要使用的 Redis 数据库的编号标识符。username
(可选)是用于验证当前连接的连接标识符。password
(可选)是用于验证当前连接的连接密钥。ssl
(可选)表示是否应使用 SSL 连接到 Redis 服务器。值可以是true
、false
或insecure
。将值设置为insecure
会在建立连接时跳过证书链和主机名的验证。
memcache
示例连接字符串:127.0.0.1:11211
[dataproxy]
logging
这会启用数据代理日志记录,默认值为 false
。
timeout
数据代理在超时前应等待多久。默认值为 30 秒。
此设置也适用于使用设置了超时的 HTTP 客户端进行查询请求的核心后端 HTTP 数据源。
keep_alive_seconds
keep-alive 探测之间的间隔。默认值为 30
秒。有关更多详细信息,请参阅 Dialer.KeepAlive
文档。
tls_handshake_timeout_seconds
Grafana 等待与数据源成功进行 TLS 握手的时间长度。默认值为 10
秒。有关更多信息,请参阅 Transport.TLSHandshakeTimeout
文档。
expect_continue_timeout_seconds
Grafana 在完全写入请求 header 后(如果请求带有 Expect: 100-continue
header)等待数据源的第一个响应 header 的时间长度。值为 0
表示立即发送正文。默认值为 1
秒。有关更多信息,请参阅 Transport.ExpectContinueTimeout
文档。
max_conns_per_host
限制每个主机的总连接数,包括拨号、活动和空闲状态的连接。违反限制时,拨号会被阻止。值为 0
表示没有限制。默认值为 0
。有关更多信息,请参阅 Transport.MaxConnsPerHost
文档。
max_idle_connections
Grafana 维护的最大空闲连接数。默认值为 100
。有关更多信息,请参阅 Transport.MaxIdleConns
文档。
idle_conn_timeout_seconds
Grafana 在关闭空闲连接之前维护它们的时间长度。默认值为 90
秒。有关更多信息,请参阅 Transport.IdleConnTimeout
文档。
send_user_header
如果启用且用户不是匿名用户,数据代理会在请求中添加包含用户名的 X-Grafana-User
header。默认值为 false
。
response_limit
限制 Grafana 从传出 HTTP 请求响应中读取的字节数。默认值为 0
,表示禁用。
row_limit
限制 Grafana 从 SQL 数据源处理的行数。默认值为 1000000
。
user_agent
为传出数据代理请求设置自定义的 User-Agent
header 值。如果为空,默认值为 Grafana/<BuildVersion>
(例如 Grafana/9.0.0
)。
[analytics]
enabled
此选项也称为 使用情况分析。当设置为 false
时,此选项会禁用写入 Grafana 数据库的 writer 以及相关功能,例如仪表盘和数据源洞察、在线状态指示器和高级仪表盘搜索。默认值为 true
。
reporting_enabled
启用后,Grafana 会将匿名使用统计信息发送到 stats.grafana.org
。Grafana 不会跟踪 IP 地址,仅跟踪运行实例、版本、仪表盘和错误的计数。
匿名使用统计信息有助于指导 Grafana 的未来发展。计数器每 24 小时发送一次。默认值为 true
。
check_for_updates
设置为 false
可禁用在 GitHub 中检查 Grafana 新版本。启用后,每十分钟运行一次新版本检查。当有新版本可用时,会通过 UI 通知。检查本身不会导致 Grafana 软件自动更新,也不会发送任何敏感信息。
check_for_plugin_updates
设置为 false
可禁用从 https://grafana.org.cn 检查已安装插件的新版本。启用后,每十分钟运行一次新插件检查。当有新的插件更新可用时,会通过 UI 通知。检查本身不会导致任何插件自动更新,也不会发送任何敏感信息。
google_analytics_ua_id
如果您想使用 Google Analytics 跟踪 Grafana 使用情况,请在此处指定您的 Universal Analytics ID。默认情况下,此功能处于禁用状态。
google_analytics_4_id
如果您想使用 Google Analytics 4 跟踪 Grafana 使用情况,请在此处指定您的 GA4 ID。默认情况下,此功能处于禁用状态。
google_tag_manager_id
Google Tag Manager ID,仅在您在此处输入 ID 时启用。
rudderstack_write_key
如果您想通过 RudderStack 跟踪 Grafana 使用情况,请在此处指定您的 RudderStack Write Key。还必须提供 rudderstack_data_plane_url
才能启用此功能。默认情况下,此功能处于禁用状态。
rudderstack_data_plane_url
接收 RudderStack 事件的 RudderStack data plane URL。您还必须提供 rudderstack_write_key
才能启用此功能。
rudderstack_sdk_url
可选。如果启用了 RudderStack 跟踪,您可以提供自定义 URL 加载 RudderStack SDK。
rudderstack_config_url
可选。如果启用了 RudderStack 跟踪,您可以提供自定义 URL 加载 RudderStack 配置。
rudderstack_integrations_url
可选。如果启用了 RudderStack 跟踪,您可以提供自定义 URL 加载在设备模式下运行的目标的 SDK。此设置仅对 RudderStack 1.1 及更高版本有效。
application_insights_connection_string
如果您想通过 Azure Application Insights 跟踪 Grafana 使用情况,请指定您的 Application Insights 连接字符串。由于连接字符串包含分号,您需要将其用反引号 (`) 括起来。默认情况下,使用情况跟踪已禁用。
application_insights_endpoint_url
可选地,使用此选项可以覆盖 Application Insights 数据收集的默认端点地址。有关详细信息,请参阅 Azure 文档。
feedback_links_enabled
设置为 false
可从 UI 中移除所有反馈链接。默认值为 true
。
[security]
disable_initial_admin_creation
在首次启动 Grafana 时禁用创建 Grafana Admin 用户。默认值为 false
。
admin_user
默认 Grafana 管理员用户的名称,该用户拥有完整权限。默认值为 admin
。
admin_password
默认 Grafana 管理员的密码。首次运行时设置一次。默认值为 admin
。
admin_email
默认 Grafana 管理员的电子邮件,在启动时创建。默认值为 admin@localhost
。
secret_key
用于签名某些数据源设置,如密钥和密码,使用的加密格式是 AES-256 CFB 模式。更改此设置需要更新数据源设置以重新编码它们。
disable_gravatar
设置为 true
可禁用将 Gravatar 用于用户资料图片。默认值为 false
。
data_source_proxy_whitelist
定义允许使用 Grafana 数据源代理在数据源 URL 中使用的 IP 地址或域名(带端口)的列表。
格式为 <IP>
或 <DOMAIN>:<PORT>
,用空格分隔。PostgreSQL、MySQL 和 MSSQL 数据源不使用代理,不受此设置影响。
disable_brute_force_login_protection
设置为 true
可禁用暴力破解登录保护。默认值为 false
。如果现有用户在 5 分钟内用尽所有登录尝试次数,其帐户将在五分钟内无法登录。
brute_force_login_protection_max_attempts
配置用户在帐户被锁定前,可以在五分钟内进行多少次登录尝试。默认值为 5
。
disable_ip_address_login_protection
设置为 true
可禁用按 IP 地址的暴力破解登录保护。默认值为 true
。如果来自同一 IP 地址的用户在 5 分钟内用尽所有登录尝试次数,该 IP 地址的任何人将在 5 分钟内无法登录。
cookie_secure
如果您通过 HTTPS 托管 Grafana,请将其设置为 true
。默认值为 false
。
cookie_samesite
设置 SameSite
cookie 属性,阻止浏览器随跨站请求发送此 cookie。主要目标是减轻跨域信息泄露的风险。此设置还提供了一些针对跨站请求伪造 (CSRF) 攻击的保护,在此处了解有关 SameSite 的更多信息。有效值为 lax
、strict
、none
和 disabled
。默认值为 lax
。使用 disabled
值不会向 cookie 添加任何 SameSite
属性。
allow_embedding
当设置为 false
时,Grafana HTTP 响应中会设置 HTTP 头 X-Frame-Options: deny
,指示浏览器不允许在 <frame>
、<iframe>
、<embed>
或 <object>
中渲染 Grafana。主要目标是减轻点击劫持 (Clickjacking) 的风险。默认值为 false
。
strict_transport_security
如果要启用 HTTP Strict-Transport-Security
(HSTS) 响应头,请将其设置为 true
。仅在配置中启用了 HTTPS 或存在其他上游系统(如前端负载均衡器)确保应用程序使用 HTTPS 时使用此设置。HSTS 告知浏览器该网站只能使用 HTTPS 访问。
strict_transport_security_max_age_seconds
设置浏览器应缓存 HSTS 的时长(秒)。仅在启用了 strict_transport_security
时生效。默认值为 86400
。
strict_transport_security_preload
设置为 true
以启用 HSTS preloading
选项。仅在启用了 strict_transport_security
时生效。默认值为 false
。
strict_transport_security_subdomains
设置为 true
以启用 HSTS includeSubDomains 选项。仅在启用了 strict_transport_security
时生效。默认值为 false
。
x_content_type_options
设置为 false
可禁用 X-Content-Type-Options 响应头。X-Content-Type-Options 响应 HTTP 头是服务器使用的标记,指示应遵循 Content-Type 头中声明的 MIME 类型且不应更改。默认值为 true
。
x_xss_protection
设置为 false
可禁用 X-XSS-Protection 头,该头指示浏览器在检测到反射型跨站脚本 (XSS) 攻击时停止加载页面。默认值为 true
。
content_security_policy
设置为 true
可在请求中添加 Content-Security-Policy
头。内容安全策略 (CSP) 控制用户代理可以加载的资源,并有助于防止 XSS 攻击。
content_security_policy_template
设置用于在请求中添加 Content-Security-Policy
头的策略模板。模板中的 $NONCE
包含一个随机数。
content_security_policy_report_only
设置为 true
可在请求中添加 Content-Security-Policy-Report-Only
头。报告模式下的 CSP 允许您通过监控策略效果来实验策略,而无需强制执行。您可以同时启用两种策略。
content_security_policy_template
设置用于在请求中添加 Content-Security-Policy-Report-Only
头的策略模板。模板中的 $NONCE
包含一个随机数。
actions_allow_post_url
设置 API 路径,使其可在插件之间使用 POST 谓词访问。如果此值为空,则只能通过代理传递远程请求。如果设置了此值,您还可以向本地服务器发送已认证的 POST 请求。通常用于启用插件之间的后端通信。
这是一个使用 glob 匹配的逗号分隔列表。
以下示例允许访问所有具有后端的插件
actions_allow_post_url=/api/plugins/*
以下示例限制对单个插件后端的访问
actions_allow_post_url=/api/plugins/grafana-special-app
angular_support_enabled
此设置默认为 false,表示不会加载 Angular 框架和支持组件。这意味着所有依赖 Angular 支持的插件和核心功能将无法工作。
依赖 Angular 的核心功能包括
- 旧的图形面板
- 旧的表格面板
这些功能都有支持的替代方案,我们建议使用它们。
csrf_trusted_origins
通过 CSRF 检查的其他允许 URL 列表。建议在身份验证来自 IdP 时使用。
csrf_additional_headers
允许用户设置的头列表。建议在身份验证位于反向代理后方时使用。
csrf_always_check
设置为 true
可执行 CSRF 检查,即使请求中没有登录 cookie(默认为 false
)。
enable_frontend_sandbox_for_plugins
在前端沙箱内加载的插件 ID 的逗号分隔列表。
[snapshots]
enabled
设置为 false
可禁用快照功能(默认为 true
)。
external_enabled
设置为 false
可禁用外部快照发布端点(默认为 true
)。
external_snapshot_url
设置外部快照的目标 Grafana 实例的根 URL(默认为 https://snapshots.raintank.io)。
external_snapshot_name
设置外部快照按钮的名称。默认为 Publish to snapshots.raintank.io
。
public_mode
设置为 true 可将此 Grafana 实例配置为外部快照服务器,允许未经身份验证的请求创建和删除快照。默认值为 false
。
[dashboards]
versions_to_keep
每个仪表盘保留的版本数量。默认值:20
,最小:1
。
min_refresh_interval
此功能防止用户将仪表盘刷新间隔设置为低于给定间隔值。默认间隔值为 5 秒。间隔字符串是一个可能带符号的十进制数字序列,后跟单位后缀 (ms
, s
, m
, h
, d
)。例如 30s
或 1m
。
这也限制了 Explore 中的刷新间隔选项。
default_home_dashboard_path
默认主页仪表盘的路径。如果此值为空,则 Grafana 使用 StaticRootPath + “dashboards/home.json”。
注意
在 Linux 上,Grafana 使用
/usr/share/grafana/public/dashboards/home.json
作为默认主页仪表盘位置。
[dashboard_cleanup]
如果通过 /apis 删除仪表盘,则清理相关仪表盘信息的设置。
interval
清理相关资源的作业运行频率。默认间隔为 30s
。为确保系统不过载,允许的最小值为 10s
。
间隔字符串必须包含单位后缀 (ms, s, m, h),例如 30s 或 1m。
batch_size
在清理过程中,每个批次处理的已删除仪表盘数量。默认值:10
,最小:5
,最大:200
。
增加此值可以在每个清理周期中处理更多仪表盘,但可能会影响系统性能。
[datasources]
default_manage_alerts_ui_toggle
配置数据源时,“通过告警 UI 管理告警”开关的默认行为。仅当数据源的 jsonData.manageAlerts
属性不包含先前配置的值时才生效。
[sql_datasources]
max_open_conns_default
对于 SQL 数据源(MySql、Postgres、MSSQL),您可以覆盖默认的最大开放连接数(默认值:100)。数据源设置中配置的值优先于默认值。
max_idle_conns_default
对于 SQL 数据源(MySql、Postgres、MSSQL),您可以覆盖默认允许的空闲连接数(默认值:100)。数据源设置中配置的值优先于默认值。
max_conn_lifetime_default
对于 SQL 数据源(MySql、Postgres、MSSQL),您可以覆盖默认的最大连接生命周期(以秒为单位)(默认值:14400)。数据源设置中配置的值优先于默认值。
[users]
allow_sign_up
设置为 false
可禁止用户注册或创建用户帐户。默认值为 false
。Grafana 管理员仍可以创建用户。有关创建用户的更多信息,请参阅添加用户。
allow_org_create
设置为 false
可禁止用户创建新组织。默认值为 false
。
auto_assign_org
设置为 true
可自动将新用户添加到主组织(ID 1
)。当设置为 false
时,新用户会自动为其创建一个新组织。即使将 allow_org_create
设置为 false
,也会创建该组织。默认值为 true
。
auto_assign_org_id
设置此值可自动将新用户添加到指定的组织。这需要将 auto_assign_org
设置为 true
。该组织必须已存在。默认值为 1
。
auto_assign_org_role
auto_assign_org_role
设置确定了当 auto_assign_org
设置为 true
时,分配给主组织中新用户的默认角色。您可以将其设置为以下角色之一:(Viewer
(默认)、Admin
、Editor
和 None
)。例如:
auto_assign_org_role = Viewer
verify_email_enabled
在注册完成或更新用户电子邮件地址时需要进行电子邮件验证。默认值为 false
。
login_default_org_id
设置用户登录时的默认组织。默认值为 -1
。
login_hint
登录页面上用于登录/用户名输入的占位符文本。
password_hint
登录页面上用于密码输入的占位符文本。
default_theme
设置默认 UI 主题:dark
(暗色)、light
(亮色)或 system
(系统)。默认主题为 dark
。
system
匹配用户的系统主题。
default_language
此选项设置默认 UI 语言,如果支持 IETF 语言标签(如 en-US
)。如果设置为 detect
,则默认 UI 语言由浏览器偏好设置决定。默认值为 en-US
。
home_page
自定义主页的路径。仅在使用默认主页仪表盘时,用户才会被重定向到此处。它应匹配前端路由并包含一个前导斜杠。
外部用户管理
如果您在外部管理用户,可以将组织的邀请用户按钮替换为指向外部站点的链接和说明。
viewers_can_edit
注意
此选项已弃用 - 如果您使用 RBAC,请将观察者指定为编辑者,并将数据源浏览器角色分配给您的用户。
观察者可以访问和使用探索 (Explore),并对他们有权访问的仪表盘中的面板进行临时编辑。他们无法保存更改。默认值为 false
。
editors_can_admin
注意
此选项已弃用 - 如果您使用 RBAC,请将编辑者指定为管理员,并将团队创建者角色分配给您的用户。
编辑者可以管理他们创建的仪表盘、文件夹和团队。默认值为 false
。
user_invite_max_lifetime_duration
用户邀请在过期前保持有效的时长。此设置应表示为持续时间。示例:6h(小时)、2d(天)、1w(周)。默认值为 24h
(24 小时)。支持的最小持续时间为 15m
(15 分钟)。
verification_email_max_lifetime_duration
用于更新用户电子邮件地址的验证电子邮件在过期前保持有效的时长。此设置应表示为持续时间。示例:6h(小时)、2d(天)、1w(周)。默认值为 1h(1 小时)。
last_seen_update_interval
更新用户最后一次查看时间的频率。此设置应表示为持续时间。示例:1h(小时)、15m(分钟)。默认值为 15m
(15 分钟)。支持的最小持续时间为 5m
(5 分钟)。支持的最大持续时间为 1h
(1 小时)。
hidden_users
这是用户名逗号分隔列表。在此处指定的用户将在 Grafana UI 中隐藏。Grafana 管理员和用户自己仍然可见。
[auth]
Grafana 提供了多种用户认证方式。有关如何设置和配置认证的详细说明,请参阅 Grafana 认证概览和其他认证文档。
login_cookie_name
用于存储认证令牌的 cookie 名称。默认值为 grafana_session
。
login_maximum_inactive_lifetime_duration
认证用户在下次访问需要重新登录前可以保持非活动状态的最大生命周期(时长)。默认值为 7 天 (7d)。此设置应表示为持续时间,例如 5m
(分钟)、6h
(小时)、10d
(天)、2w
(周)或 1M
(月)。每次成功的令牌轮换(token_rotation_interval_minutes
)都会重置生命周期。
login_maximum_lifetime_duration
认证用户自登录以来在需要重新登录前的最大生命周期(时长)。默认值为 30 天 (30d)。此设置应表示为持续时间,例如 5m
(分钟)、6h
(小时)、10d
(天)、2w
(周)或 1M
(月)。
token_rotation_interval_minutes
当认证用户处于活动状态时,认证令牌轮换的频率。默认值为每 10 分钟。
disable_login_form
设置为 true
可禁用(隐藏)登录表单,如果您使用 OAuth 2.0,此设置很有用。默认值为 false
。
disable_signout_menu
设置为 true
可禁用侧边菜单中的退出链接。如果您使用 auth.proxy
,此设置很有用。默认值为 false
。
signout_redirect_url
用户退出时重定向到的 URL。为支持OpenID Connect RP-Initiated Logout,用户必须将 post_logout_redirect_uri
添加到 signout_redirect_url
。
示例
signout_redirect_url = https://:8087/realms/grafana/protocol/openid-connect/logout?post_logout_redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Flogin
oauth_auto_login
注意
此选项已弃用 - 请改为使用特定 OAuth 提供者的
auto_login
选项。
设置为 true
可尝试自动使用 OAuth 登录,跳过登录屏幕。如果配置了多个 OAuth 提供者,此设置将被忽略。默认值为 false
。
oauth_state_cookie_max_age
OAuth 状态 cookie 在删除前存活的秒数。默认值为 600
(秒)。如果管理员遇到 OAuth 登录状态不匹配错误,可以增加此值。
oauth_login_error_message
用户未授权时的自定义错误消息。默认值是前端国际化短语的键,Login provider denied login request
(登录提供者拒绝了登录请求)。
oauth_refresh_token_server_lock_min_wait_ms
服务器锁定重试机制的最小等待时间(毫秒)。默认值为 1000
(毫秒)。服务器锁定重试机制用于防止多个 Grafana 实例同时刷新 OAuth 令牌。此机制在重试获取服务器锁定前至少等待指定的时间。
总共有五次重试,因此使用默认值,总等待时间(用于获取锁)至少为 5 秒(重试之间的等待时间计算为 random(n, n + 500)),这意味着最大令牌刷新持续时间必须小于 5-6 秒。
如果您在使用 OAuth 令牌刷新机制时遇到问题,可以增加此值,为令牌刷新留出更多时间。
oauth_skip_org_role_update_sync
注意
此选项已从 G11 中移除,取而代之的是特定 OAuth 提供者的
skip_org_role_sync
设置。以下各节解释了每个提供者的设置。
如果要将 oauth_skip_org_role_update_sync
设置从 true
更改为 false
,则对于您设置的每个提供者,使用 skip_org_role_sync
设置来指定是否要跳过同步。
警告
当前,如果未找到用户的组织角色映射,Grafana 不会更新用户的组织角色。
如果
oauth_skip_org_role_update_sync
选项设置为false
,则每次登录时,没有映射的用户将被重置为默认组织角色。更多信息请参阅
auto_assign_org_role
选项。
skip_org_role_sync
skip_org_role_sync
阻止特定 OAuth 集成的组织角色同步,而已弃用的设置 oauth_skip_org_role_update_sync
会影响所有已配置的 OAuth 提供者。
skip_org_role_sync
的默认值为 false
。
将 skip_org_role_sync
设置为 false
时,每次新登录时,用户的组织和角色都会根据外部提供者的角色重置。请查看下面的表格中的您的提供者。
将 skip_org_role_sync
设置为 true
时,用户首次登录时,Grafana 会根据 auto_assign_org_role
中指定的值设置组织角色,并在指定 auto_assign_org_id
时强制使用该组织,否则回退到组织 ID 1
。
注意
启用
skip_org_role_sync
也会禁用从外部提供者同步 Grafana 管理员,因此会忽略allow_assign_grafana_admin
。
当您想在 Grafana 中管理用户的组织角色并能够手动将他们分配到多个组织时,或者当他们可以从其他提供者同步时防止同步冲突时,请使用此设置。
oauth_skip_org_role_update_sync
和 skip_org_role_sync
的行为可以在下面的表格中看到
[auth.grafana_com]
oauth_skip_org_role_update_sync | skip_org_role_sync | 结果组织角色 | 可修改 |
---|---|---|---|
false | false | 用户组织角色与 Grafana.com 角色同步。如果未提供角色,则设置 auto_assign_org_role 。 | false |
true | false | 跳过所有 OAuth 提供者用户的组织角色同步。角色设置为 auto_assign_org_role 。 | true |
false | true | 跳过 Grafana.com 用户的组织角色同步。角色设置为 auto_assign_org_role 。 | true |
true | true | 跳过 Grafana.com 用户和所有其他 OAuth 提供者的组织角色同步。角色设置为 auto_assign_org_role 。 | true |
[auth.azuread]
oauth_skip_org_role_update_sync | skip_org_role_sync | 结果组织角色 | 可修改 |
---|---|---|---|
false | false | 用户组织角色与 AzureAD 角色同步。如果未提供角色,则设置 auto_assign_org_role 。 | false |
true | false | 跳过所有 OAuth 提供者用户的组织角色同步。角色设置为 auto_assign_org_role 。 | true |
false | true | 跳过 AzureAD 用户的组织角色同步。角色设置为 auto_assign_org_role 。 | true |
true | true | 跳过 AzureAD 用户和所有其他 OAuth 提供者的组织角色同步。角色设置为 auto_assign_org_role 。 | true |
[auth.google]
oauth_skip_org_role_update_sync | skip_org_role_sync | 结果组织角色 | 可修改 |
---|---|---|---|
false | false | 用户组织角色设置为 auto_assign_org_role 且不可更改。 | false |
true | false | 用户组织角色设置为 auto_assign_org_role 且可在 Grafana 中更改。 | true |
false | true | 用户组织角色设置为 auto_assign_org_role 且可在 Grafana 中更改。 | true |
true | true | 用户组织角色设置为 auto_assign_org_role 且可在 Grafana 中更改。 | true |
注意
对于 GitLab、GitHub、Okta、Generic OAuth 提供者,Grafana 同步组织角色并设置 Grafana 管理员。
allow_assign_grafana_admin
设置也会考虑在内,以决定是否允许从外部提供者设置 Grafana 管理员角色。
[auth.github]
oauth_skip_org_role_update_sync | skip_org_role_sync | 结果组织角色 | 可修改 |
---|---|---|---|
false | false | 用户组织角色与 GitHub 角色同步。如果未提供角色,则设置 auto_assign_org_role 。 | false |
true | false | 跳过所有 OAuth 提供者用户的组织角色同步。角色设置为 auto_assign_org_role 。 | true |
false | true | 跳过 GitHub 用户的组织角色和 Grafana 管理员同步。角色设置为 auto_assign_org_role 。 | true |
true | true | 跳过所有 OAuth 提供者的组织角色同步,并跳过 GitHub 用户的 Grafana 管理员同步。角色设置为 auto_assign_org_role 。 | true |
[auth.gitlab]
oauth_skip_org_role_update_sync | skip_org_role_sync | 结果组织角色 | 可修改 |
---|---|---|---|
false | false | 用户组织角色与 GitLab 角色同步。如果未提供角色,则设置 auto_assign_org_role 。 | false |
true | false | 跳过所有 OAuth 提供者用户的组织角色同步。角色设置为 auto_assign_org_role 。 | true |
false | true | 跳过 GitLab 用户的组织角色和 Grafana 管理员同步。角色设置为 auto_assign_org_role 。 | true |
true | true | 跳过所有 OAuth 提供者的组织角色同步,并跳过 GitLab 用户的 Grafana 管理员同步。角色设置为 auto_assign_org_role 。 | true |
[auth.generic_oauth]
oauth_skip_org_role_update_sync | skip_org_role_sync | 结果组织角色 | 可修改 |
---|---|---|---|
false | false | 用户组织角色与提供者的角色同步。如果未提供角色,则设置 auto_assign_org_role 。 | false |
true | false | 跳过所有 OAuth 提供者用户的组织角色同步。角色设置为 auto_assign_org_role 。 | true |
false | true | 跳过该提供者用户的组织角色和 Grafana 管理员同步。角色设置为 auto_assign_org_role 。 | true |
true | true | 跳过所有 OAuth 提供者的组织角色同步,并跳过该提供者用户的 Grafana 管理员同步。角色设置为 auto_assign_org_role 。 | true |
[auth.okta]
oauth_skip_org_role_update_sync | skip_org_role_sync | 结果组织角色 | 可修改 |
---|---|---|---|
false | false | 用户组织角色与 Okta 角色同步。如果未提供角色,则设置 auto_assign_org_role 。 | false |
true | false | 跳过所有 OAuth 提供者用户的组织角色同步。角色设置为 auto_assign_org_role 。 | true |
false | true | 跳过 Okta 用户的组织角色和 Grafana 管理员同步。角色设置为 auto_assign_org_role 。 | true |
true | true | 跳过所有 OAuth 提供者的组织角色同步,并跳过 Okta 用户的 Grafana 管理员同步。角色设置为 auto_assign_org_role 。 | true |
skip_org_role_sync
示例
[auth.google]
oauth_skip_org_role_update_sync | skip_org_role_sync | 结果组织角色 | 示例场景 |
---|---|---|---|
false | false | 与 Google 认证组织角色同步 | 用户使用其 Google 帐户登录 Grafana,其组织角色会根据其在 Google 中的角色自动设置。 |
true | false | 跳过所有 OAuth 提供者的组织角色同步 | 用户使用其 Google 帐户登录 Grafana,其组织角色不会根据其角色设置。但 Grafana 管理员可以从 UI 修改角色。 |
false | true | 跳过 Google 的组织角色同步 | 用户使用其 Google 帐户登录 Grafana,其组织角色不会根据其在 Google 中的角色设置。但 Grafana 管理员可以从 UI 修改角色。 |
true | true | 跳过所有 OAuth 提供者(包括 Google)的组织角色同步 | 用户使用其 Google 帐户登录 Grafana,其组织角色不会根据其在 Google 中的角色设置。但 Grafana 管理员可以从 UI 修改角色。 |
api_key_max_seconds_to_live
API 密钥在过期前的存活秒数限制。默认值为 -1(无限制)。
sigv4_auth_enabled
设置为 true
可为基于 HTTP 的数据源启用 AWS Signature Version 4 认证选项。默认值为 false
。
sigv4_verbose_logging
设置为 true
可在启用 AWS Signature Version 4 认证时启用详细的请求签名日志记录。默认值为 false
。
managed_service_accounts_enabled
仅在 Grafana 11.3 及更高版本中可用。
设置为 true
可启用托管服务帐户用于插件认证。默认值为 false
。
注意
此功能仅支持单组织部署。插件的服务帐户会自动在默认组织中创建。这意味着插件只能访问该特定组织内的数据和资源。
[auth.anonymous]
有关详细说明,请参阅匿名认证。
[auth.github]
有关详细说明,请参阅GitHub OAuth2 认证。
[auth.gitlab]
有关详细说明,请参阅GitLab OAuth 2.0 认证。
[auth.google]
有关详细说明,请参阅Google OAuth2 认证。
[auth.grafananet]
遗留密钥名称,仍在配置文件中,因此它们在环境变量中可用。
[auth.grafana_com]
遗留密钥名称,仍在配置文件中,因此它们在环境变量中可用。
[auth.azuread]
有关详细说明,请参阅Azure AD OAuth2 认证。
[auth.okta]
有关详细说明,请参阅Okta OAuth2 认证。
[auth.generic_oauth]
有关详细说明,请参阅通用 OAuth 认证。
[auth.basic]
有关详细说明,请参阅基本认证。
[auth.proxy]
有关详细说明,请参阅认证代理认证。
[auth.ldap]
有关详细说明,请参阅LDAP 认证。
[aws]
您可以配置核心和外部 AWS 插件。
allowed_auth_providers
指定 AWS 插件允许的认证提供者。允许的提供者列表请参阅给定插件的数据源配置页面。如果您通过 Provisioning 配置插件,则只允许在 allowed_auth_providers
中指定的提供者。
选项:default
(AWS SDK 默认)、keys
(访问密钥和秘密密钥)、credentials
(凭据文件)、ec2_iam_role
(EC2 IAM 角色)
assume_role_enabled
设置为 false
可禁用 AWS 认证使用具有临时安全凭据的 Assume Role。有关 Assume Role 的详细信息,请参阅 AWS API 参考文档中关于AssumeRole 操作的部分。
如果禁用此选项,则 AWS 数据源配置页面将移除Assume Role 和External Id 字段。如果使用 Provisioning 配置插件,只要将 assume_role_enabled
设置为 true
,就可以使用 Assume Role。
list_metrics_page_limit
使用List Metrics API 选项加载 Amazon CloudWatch 数据源中自定义命名空间的指标。默认情况下,页面限制为 500。
[azure]
在 Azure 云中托管时,Grafana 支持与 Azure 服务进行额外集成。
cloud
Grafana 托管的 Azure 云环境
Azure 云 | 值 |
---|---|
Microsoft Azure 公有云 | AzureCloud (默认) |
Microsoft 中国国家云 | AzureChinaCloud |
美国政府云 | AzureUSGovernment |
Microsoft 德国国家云(“黑森林”) | AzureGermanCloud |
clouds_config
JSON 配置定义了在自定义 Azure 环境中托管时,Azure 云列表及其相关属性。
例如
clouds_config = `[
{
"name":"CustomCloud1",
"displayName":"Custom Cloud 1",
"aadAuthority":"https://login.cloud1.contoso.com/",
"properties":{
"azureDataExplorerSuffix": ".kusto.windows.cloud1.contoso.com",
"logAnalytics": "https://api.loganalytics.cloud1.contoso.com",
"portal": "https://portal.azure.cloud1.contoso.com",
"prometheusResourceId": "https://prometheus.monitor.azure.cloud1.contoso.com",
"resourceManager": "https://management.azure.cloud1.contoso.com"
}
}]`
managed_identity_enabled
指定 Grafana 是否在配置了托管身份的 Azure 中运行(例如,在 Azure 虚拟机实例中运行)。默认禁用,需要明确启用。
managed_identity_client_id
用于用户分配的托管身份的客户端 ID。
对于用户分配的身份,应设置此值;对于系统分配的身份,应为空。
workload_identity_enabled
指定是否在支持 Azure AD Workload Identity 的数据源中启用工作负载身份认证。
有关 Azure AD 工作负载身份的更多文档,请查阅Azure AD Workload Identity 文档。
默认禁用,需要明确启用。
workload_identity_tenant_id
Azure AD 工作负载身份的租户 ID。
允许覆盖与 Kubernetes 服务帐户关联的 Azure AD 身份的默认租户 ID。
workload_identity_client_id
Azure AD 工作负载身份的客户端 ID。
允许覆盖与 Kubernetes 服务帐户关联的 Azure AD 身份的默认客户端 ID。
workload_identity_token_file
Azure AD 工作负载身份的令牌文件的自定义路径。
允许设置投影服务帐户令牌文件的自定义路径。
user_identity_enabled
指定是否在支持用户身份认证(代表当前登录用户)的数据源中启用该功能(需要 AAD 认证)。
默认禁用,需要明确启用。
user_identity_fallback_credentials_enabled
指定是否在数据源中启用用户身份认证回退凭据。启用此功能允许数据源创建者为后端发起的请求(例如告警、记录查询等)提供回退凭据。
默认启用,需要明确禁用。如果禁用用户身份认证,则此设置无效。
user_identity_token_url
覆盖 Azure Active Directory 的令牌 URL。
默认与 AAD 认证设置中配置的令牌 URL 相同。
user_identity_client_authentication
覆盖 Azure Active Directory 的客户端认证方法。当前支持的值为 client_secret_post
和 managed_identity
。
默认与 AAD 认证设置中配置的客户端认证方法相同。
user_identity_client_id
覆盖将用于将用户令牌交换为数据源访问令牌的 ADD 应用程序 ID。
默认与 AAD 认证中使用的相同,或者可以设置为另一个应用程序(用于 OBO 流程)。
user_identity_client_secret
覆盖 AAD 应用程序客户端密钥。
默认与 AAD 认证中使用的相同,或者可以设置为另一个应用程序(用于 OBO 流程)。
user_identity_managed_identity_client_id
覆盖配置为用户分配托管身份的联合凭据的 AAD 应用程序托管身份客户端 ID。
默认与 AAD 认证中使用的相同,或者可以设置为另一个托管身份(用于 OBO 流程)。
user_identity_federated_credential_audience
覆盖配置为用户分配托管身份的联合凭据的 AAD 联合凭据受众。
默认与 AAD 认证中使用的相同,或者可以设置为另一个受众(用于 OBO 流程)。
forward_settings_to_plugins
设置插件通过插件上下文接收 Azure 设置。
默认情况下,这包括所有 Grafana Labs 拥有的 Azure 插件或使用 Azure 设置的插件(Azure Monitor、Azure Data Explorer、Prometheus、MSSQL)。
azure_entra_password_credentials_enabled
指定是否可以为 MSSQL 数据源使用 Entra 密码认证。不推荐使用此认证方式,在启用前应仔细考虑。
默认禁用,需要明确启用。
[auth.jwt]
更多信息请参阅JWT 认证。
[smtp]
电子邮件服务器设置。
enabled
启用此选项允许 Grafana 发送电子邮件。默认值为 false
。
host
默认值为 localhost:25
。隐式 TLS 使用端口 465。
user
在 SMTP 认证的情况下,默认值为 empty
(空)。
password
在 SMTP 认证的情况下,默认值为 empty
(空)。如果密码包含 #
或 ;
,则必须使用三引号将其括起来。例如:"""#password;"""
cert_file
证书文件的路径,默认值为 empty
(空)。
key_file
密钥文件的路径,默认值为 empty
(空)。
skip_verify
验证 SMTP 服务器的 SSL,默认值为 false
。
from_address
发送电子邮件时使用的地址,默认值为 admin@grafana.localhost
。
from_name
发送电子邮件时使用的姓名,默认值为 Grafana
。
ehlo_identity
在 SMTP 对话中用作 EHLO 客户端标识的名称,默认值为 <instance_name>
。
startTLS_policy
可以是 OpportunisticStartTLS
、MandatoryStartTLS
、NoStartTLS
或 empty
(空)。默认值为 empty
。
enable_tracing
在电子邮件头中启用跟踪传播,使用 traceparent
、tracestate
和(可选)baggage
字段。默认值为 false
。要启用,您必须首先在其中一个 tracing.opentelemetry.*
部分配置跟踪。
[smtp.static_headers]
在各自的行中输入键值对,以便包含在发出的电子邮件头中。所有键必须采用规范邮件头格式。示例:Foo=bar
, Foo-Header=bar
。
[emails]
welcome_email_on_sign_up
默认值为 false
。
templates_pattern
输入模板模式的逗号分隔列表。默认值为 emails/*.html, emails/*.txt
。
content_types
输入应包含在发送的电子邮件中的内容类型的逗号分隔列表。按偏好降序排列内容类型。例如,text/html, text/plain
表示 HTML 是最优先的。部分的顺序很重要,因为邮件客户端使用发送方支持且最偏好的媒体类型。支持的内容类型为 text/html
和 text/plain
。默认值为 text/html
。
[log]
Grafana 日志选项。
mode
选项包括 console
(控制台)、file
(文件)和 syslog
。默认值为 console
和 file
。使用空格分隔多种模式,例如 console file
。
level
选项包括 debug
(调试)、info
(信息)、warn
(警告)、error
(错误)和 critical
(严重)。默认值为 info
。
filters
可选设置,用于为特定日志记录器设置不同的级别。例如:filters = sqlstore:debug
您可以使用逗号分隔列表设置多个过滤器:例如:filters = sqlstore:debug,plugins:info
相应的 docker-compose.yaml
配置如下所示
GF_LOG_FILTERS: sqlstore:debug,plugins:info
GF_LOG_LEVEL: error
user_facing_default_error
使用此配置选项设置向用户显示的默认错误消息。此消息将取代敏感的后端错误消息,敏感错误应被混淆。默认消息为 Please inspect the Grafana server log for details.
(请检查 Grafana 服务器日志以获取详细信息)。
[log.console]
仅当在 [log]
模式中使用 console
时适用。
level
选项包括 debug
(调试)、info
(信息)、warn
(警告)、error
(错误)和 critical
(严重)。默认值继承自 [log]
级别。
format
日志行格式,有效选项包括 text
、console
和 json
。默认值为 console
。
[log.file]
仅当在 [log]
模式中使用 file
时适用。
level
选项包括 debug
(调试)、info
(信息)、warn
(警告)、error
(错误)和 critical
(严重)。默认值继承自 [log]
级别。
format
日志行格式,有效选项包括 text
、console
和 json
。默认值为 text
。
log_rotate
启用自动日志轮换,有效选项为 false
或 true
。默认值为 true
。启用后,使用 max_lines
、max_size_shift
、daily_rotate
和 max_days
配置日志轮换行为。
max_lines
每个文件在轮换前的最大行数。默认值为 1000000
。
max_size_shift
文件在轮换前的最大大小。默认值为 28
,表示 1 << 28
,即 256MB
。
daily_rotate
启用文件的按日轮换,有效选项为 false
或 true
。默认值为 true
。
max_days
保留日志文件的最大天数。默认值为 7
。
[log.syslog]
仅当在 [log]
模式中使用 syslog
时适用。
level
选项包括 debug
(调试)、info
(信息)、warn
(警告)、error
(错误)和 critical
(严重)。默认值继承自 [log]
级别。
format
日志行格式,有效选项包括 text
、console
和 json
。默认值为 text
。
network and address
Syslog 网络类型和地址。可以是 UDP、TCP 或 UNIX。如果留空,则使用默认的 UNIX 端点。
facility
Syslog 设施。有效选项包括 user
、daemon
或 local0
到 local7
。默认值为空。
tag
Syslog 标签。默认情况下,使用进程的 argv[0]
。
[log.frontend]
enabled
初始化 Faro JavaScript 代理。默认值为 false
。
custom_endpoint
用于将 Faro 代理捕获的事件发送到的自定义 HTTP 端点。默认值 /log-grafana-javascript-agent
将事件记录到标准输出。
log_endpoint_requests_per_second_limit
Grafana 后端日志接收端点 /log-grafana-javascript-agent
在较长时间内每秒请求限制。默认值为 3
。
log_endpoint_burst_limit
Grafana 后端日志接收端点 /log-grafana-javascript-agent
在短时间内接受的最大请求数。默认值为 15
。
instrumentations_all_enabled
通过使用 getWebInstrumentations
启用所有 Faro 默认 instrumentation。覆盖其他 instrumentation 标志。
instrumentations_errors_enabled
开启错误 instrumentation。仅影响 Grafana JavaScript Agent。
instrumentations_console_enabled
开启控制台 instrumentation。仅影响 Grafana JavaScript Agent。
instrumentations_webvitals_enabled
开启 Web Vitals instrumentation。仅影响 Grafana JavaScript Agent。
instrumentations_tracing_enabled
开启跟踪 instrumentation。仅影响 Grafana JavaScript Agent。
api_key
如果 custom_endpoint
需要认证,您可以在此处设置 API 密钥。仅与 Grafana JavaScript Agent 提供者相关。
[quota]
将配额设置为 -1
表示无限制。
enabled
启用使用配额。默认值为 false
。
org_user
限制每个组织允许的用户数量。默认值为 10。
org_dashboard
限制每个组织允许的仪表盘数量。默认值为 100。
org_data_source
限制每个组织允许的数据源数量。默认值为 10。
org_api_key
限制每个组织可以输入的 API 密钥数量。默认值为 10。
org_alert_rule
限制每个组织可以输入的告警规则数量。默认值为 100。
user_org
限制用户可以创建的组织数量。默认值为 10。
global_user
设置全局用户数量限制。默认值为 -1(无限制)。
global_org
设置可以创建的组织数量的全局限制。默认值为 -1(无限制)。
global_dashboard
设置可以创建的仪表盘数量的全局限制。默认值为 -1(无限制)。
global_api_key
设置可以输入的 API 密钥数量的全局限制。默认值为 -1(无限制)。
global_session
设置同时登录的用户数量的全局限制。默认值为 -1(无限制)。
global_alert_rule
设置可以创建的告警规则数量的全局限制。默认值为 -1(无限制)。
global_correlations
设置可以创建的关联数量的全局限制。默认值为 -1(无限制)。
alerting_rule_evaluation_results
限制每个告警规则的查询评估结果数量。如果告警规则的条件查询产生的结果超出此限制,则评估将出错。默认值为 -1(无限制)。
[unified_alerting]
有关 Grafana 告警的更多信息,请参阅Grafana Alerting。
enabled
启用或禁用 Grafana Alerting。默认值为 true
。
从仪表盘和面板迁移的告警规则包含通过 annotations
的链接。
disabled_orgs
禁用 Grafana 8 Unified Alerting 的组织 ID 逗号分隔列表。
admin_config_poll_interval
指定轮询配置更改的频率。默认值为 60s
。
间隔字符串是一个可能带符号的十进制数字序列,后跟单位后缀 (ms, s, m, h, d),例如 30s 或 1m。
alertmanager_config_poll_interval
指定轮询 Alertmanager 配置更改的频率。默认值为 60s
。
间隔字符串是一个可能带符号的十进制数字序列,后跟单位后缀 (ms, s, m, h, d),例如 30s 或 1m。
ha_redis_address
应连接到的 Redis 服务器地址。
注意
有关 Redis 的更多信息,请参阅使用 Redis 启用告警高可用性。
ha_redis_username
用于认证 Redis 服务器的用户名。
ha_redis_password
用于认证 Redis 服务器的密码。
ha_redis_db
Redis 数据库。默认值为 0
。
ha_redis_prefix
在 Redis 服务器上创建的每个键或频道的前缀,作为告警 HA 的一部分。
ha_redis_peer_name
用作标识符的集群对等节点名称。如果未提供,则生成一个随机名称。
ha_redis_max_conns
同时连接到 Redis 的最大连接数。
ha_listen_address
监听 IP 地址和端口,用于接收其他 Grafana 实例的统一告警消息。该端口用于 TCP 和 UDP。假设其他 Grafana 实例也运行在同一端口。默认值为 0.0.0.0:9094
。
ha_advertise_address
明确的 IP 地址和端口,用于向其他 Grafana 实例广播。该端口用于 TCP 和 UDP。
ha_peers
形成 HA 集群的初始实例(格式为 <HOST>:<PORT>
)的逗号分隔列表。配置此设置将启用告警的高可用性模式。
ha_peer_timeout
等待实例通过 Alertmanager 发送通知的时间。在 HA 中,每个 Grafana 实例都被分配一个位置(例如 0
、1
)。然后,我们将此位置与超时时间相乘,以指示每个实例在发送通知前应等待多久,以考虑复制延迟。默认值为 15s
。
间隔字符串是一个可能带符号的十进制数字序列,后跟单位后缀 (ms, s, m, h, d),例如 30s 或 1m。
ha_label
标签是包含在每个数据包和流中的可选字符串。它唯一标识集群,并在存在多个集群的环境中发送 gossip 消息时防止交叉通信问题。
ha_gossip_interval
发送 gossip 消息的间隔。降低此值(更频繁)可以更快地在集群中传播 gossip 消息,但会增加带宽使用。默认值为 200ms
。
间隔字符串是一个可能带符号的十进制数字序列,后跟单位后缀 (ms, s, m, h, d),例如 30s 或 1m。
ha_reconnect_timeout
尝试重新连接丢失对等节点的时间长度。在 Kubernetes 集群中运行 Grafana 时,将此持续时间设置为小于 15m
。
字符串是一个可能带符号的十进制数字序列,后跟单位后缀 (ms, s, m, h, d),例如 30s
或 1m
。
ha_push_pull_interval
Gossip 全量状态同步的间隔。将此间隔设置得更短(更频繁)可以加快大型集群的收敛速度,但会增加带宽使用。默认值为 60s
。
间隔字符串是一个可能带符号的十进制数字序列,后跟单位后缀 (ms, s, m, h, d),例如 30s 或 1m。
execute_alerts
启用或禁用告警规则执行。默认值为 true
。告警 UI 仍然可见。
evaluation_timeout
设置从数据源获取数据时的告警评估超时时间。默认值为 30s
。
超时字符串是一个可能带符号的十进制数字序列,后跟单位后缀 (ms, s, m, h, d),例如 30s 或 1m。
max_attempts
设置 Grafana 在放弃评估之前尝试评估告警规则的最大次数。默认值为 3
。
min_interval
设置规则评估之间的最小强制间隔。默认值为 10s
,等于调度器间隔。如果规则小于此值或不是调度器间隔 (10s) 的倍数,则会进行调整。较高的值有助于资源管理,因为 Grafana 随着时间的推移会调度较少的评估。
间隔字符串是一个可能带符号的十进制数字序列,后跟单位后缀 (ms, s, m, h, d),例如 30s 或 1m。
注意
此设置优先于每个单独的规则频率。如果规则频率低于此值,则强制执行此值。
[unified_alerting.screenshots]
有关截图的更多信息,请参阅通知中的图片。
capture
在通知中启用截图。此选项需要远程 HTTP 图片渲染服务。有关更多信息,请参阅[渲染]
。
capture_timeout
捕获截图的超时时间。如果在超时时间内无法捕获截图,则发送不带截图的通知。最大持续时间为 30 秒。此超时时间应小于所有评估组的最小间隔,以避免对告警规则评估造成反压。
max_concurrent_screenshots
可以同时拍摄的最大截图数量。此选项与 concurrent_render_request_limit
不同,因为 max_concurrent_screenshots
设置了所有触发告警可以同时拍摄的并发截图数量,而 concurrent_render_request_limit
设置了所有 Grafana 服务总共的并发截图数量。
upload_external_image_storage
将截图上传到本地 Grafana 服务器或外部存储,如 Azure、S3 和 GCS。有关更多信息,请参阅[外部图片存储]
。如果此选项为 false,则截图将持久化到磁盘,最长保留 temp_data_lifetime
。
[unified_alerting.reserved_labels]
有关 Grafana 保留标签的更多信息,请参阅Grafana Alerting 中的标签。
disabled_labels
应禁用的 Grafana Alerting 引擎添加的保留标签的逗号分隔列表。
例如:disabled_labels=grafana_folder
[unified_alerting.state_history.annotations]
此部分控制当告警状态历史记录后端配置为注释时(参见设置 [unified_alerting.state_history].backend),评估告警规则时自动创建的注释的保留策略。
max_age
配置告警注释的存储时长。默认值为 0,表示永久保留。此设置应表示为持续时间。示例:6h(小时)、10d(天)、2w(周)、1M(月)。
max_annotations_to_keep
配置 Grafana 存储的最大告警注释数量。默认值为 0,表示保留所有告警注释。
[annotations]
cleanupjob_batchsize
配置注释清理作业的批量大小。此设置用于仪表盘、API 和告警注释。
tags_length
强制限制任何新引入注释的最大标签数量。此值可在 500 到 4096(含)之间。默认值为 500。设置为更高的值会影响性能,因此不推荐。
[annotations.dashboard]
仪表盘注释意味着注释与其创建所在的仪表盘相关联。
max_age
配置仪表盘注释的存储时长。默认值为 0,表示永久保留。此设置应表示为持续时间。示例:6h(小时)、10d(天)、2w(周)、1M(月)。
max_annotations_to_keep
配置 Grafana 存储的最大仪表盘注释数量。默认值为 0,表示保留所有仪表盘注释。
[annotations.api]
API 注释意味着注释是使用 API 创建的,与任何仪表盘没有关联。
max_age
配置 Grafana 存储 API 注释的时长。默认值为 0,表示永久保留。此设置应表示为持续时间。示例:6h(小时)、10d(天)、2w(周)、1M(月)。
max_annotations_to_keep
配置 Grafana 保留的最大 API 注释数量。默认值为 0,表示保留所有 API 注释。
[explore]
有关此功能的更多信息,请参阅探索。
enabled
启用或禁用探索部分。默认值为 enabled
。
defaultTimeOffset
在时间选择器上设置默认的“从现在开始”的时间偏移。默认值为 1 小时。此设置应表示为持续时间。示例:1h(小时)、1d(天)、1w(周)、1M(月)。
hide_logs_download
在探索中显示或隐藏下载日志按钮。默认值为 false
,因此按钮将可见。
[help]
配置帮助部分。
enabled
启用或禁用帮助部分。默认值为 enabled
。
[profile]
配置个人资料部分。
enabled
启用或禁用个人资料部分。默认值为 enabled
。
[news]
news_feed_enabled
启用新闻源部分。默认值为 true
。
[query]
concurrent_query_limit
设置在混合数据源面板中可以同时执行的查询数量。默认值为 CPU 数量。
[query_history]
配置探索中的查询历史记录。
enabled
启用或禁用查询历史记录。默认值为 enabled
。
[short_links]
配置短链接功能的设置。
expire_time
从未访问过的短链接被视为过期或陈旧,并作为清理被删除。设置过期时间(天)。默认值为 7
天。最大值为 365
天。设置超过最大值将使用值 365
。设置为 0
表示短链接大约每 10 分钟清理一次。负值(如 -1
)禁用过期。
注意
没有过期时间的短链接会增加数据库大小且无法删除。
[metrics]
有关详细说明,请参阅内部 Grafana 指标。
enabled
启用指标报告。默认为 true。可通过 HTTP API <URL>/metrics
访问。
interval_seconds
将指标发送到外部 TSDB 时的刷新/写入间隔。默认为 10
。
disable_total_stats
如果设置为 true
,则禁用总计统计生成(stat_totals_*
指标)。默认值为 false
。
total_stats_collector_interval_seconds
设置总计统计收集器间隔。默认值为 1800 秒(30 分钟)。
basic_auth_username and basic_auth_password
如果两者都已设置,则访问指标端点需要基本认证。
[metrics.environment_info]
为 grafana_environment_info
指标添加维度,可以暴露更多关于 Grafana 实例的信息。
; exampleLabel1 = exampleValue1
; exampleLabel2 = exampleValue2
[metrics.graphite]
如果您想将内部 Grafana 指标发送到 Graphite,请使用这些选项。
address
通过设置地址启用。格式为 <主机名或 IP>
:端口。
prefix
Graphite 指标前缀。默认为 prod.grafana.%(instance_name)s.
。
[grafana_net]
请参阅[grafana_com]
配置,因为这是首选的配置名称。[grafana_net]
配置仍然接受并解析为 [grafana_com]
配置。
[grafana_com]
url
默认值为 https://grafana.org.cn。Grafana Cloud 的默认认证身份提供者。
[tracing.jaeger]
[已弃用 - 请改用 tracing.opentelemetry.jaeger
或 tracing.opentelemetry.otlp
]
在 Grafana 中配置 Jaeger 客户端进行分布式跟踪。
您还可以使用标准的 JAEGER_*
环境变量来配置 Jaeger。有关完整列表,请参阅通过环境变量进行跟踪配置中的表格。环境变量会覆盖此处提供的任何设置。
address
报告跨度(span)的主机:端口目的地。(例如:localhost:6831
)
可以通过环境变量 JAEGER_AGENT_HOST
和 JAEGER_AGENT_PORT
设置。
always_included_tag
在所有新跨度中包含的标签的逗号分隔列表,例如 tag1:value1,tag2:value2
。
可以通过环境变量 JAEGER_TAGS
设置(环境变量中使用 =
而不是 :
)。
sampler_type
默认值为 const
。
指定采样器的类型:const
、probabilistic
、ratelimiting
或 remote
。
有关不同跟踪类型的详细信息,请参阅https://jaeger.golang.ac.cn/docs/1.16/sampling/#client-sampling-configuration。
可以通过环境变量 JAEGER_SAMPLER_TYPE
设置。
要覆盖此设置,请在 tracing.opentelemetry
部分输入 sampler_type
。
sampler_param
默认值为 1
。
这是采样器配置参数。根据 sampler_type
的值,它可以是 0
、1
或介于两者之间的十进制值。
- 对于
const
采样器,0
或1
分别表示始终false
/true
- 对于
probabilistic
采样器,概率在0
和1.0
之间 - 对于
rateLimiting
采样器,表示每秒的跨度数量 - 对于
remote
采样器,参数与probabilistic
相同,表示在收到远程实际采样率之前的初始采样率。
可以通过环境变量 JAEGER_SAMPLER_PARAM
设置。
在 tracing.opentelemetry
部分设置 sampler_param
会覆盖此设置。
sampling_server_url
sampling_server_url
是提供采样策略的采样管理器 URL。
在 tracing.opentelemetry
部分设置 sampling_server_url
会覆盖此设置。
zipkin_propagation
默认值为 false
。
控制是否使用 Zipkin 跨度传播格式(带有 x-b3-
HTTP 头)。默认情况下使用 Jaeger 格式。
可以通过环境变量及其值 JAEGER_PROPAGATION=b3
设置。
disable_shared_zipkin_spans
默认值为 false
。
将此设置为 true
会关闭共享 RPC 跨度。在基础设施的其他地方使用 Zipkin 时,保持此设置可用是最常见的设置。
[tracing.opentelemetry]
配置 OpenTelemetry 提供者之间共享的通用参数。
custom_attributes
在所有新跨度中包含的属性的逗号分隔列表,例如 key1:value1,key2:value2
。
可以通过环境变量 OTEL_RESOURCE_ATTRIBUTES
设置或覆盖(环境变量中使用 =
而不是 :
)。可以使用属性或环境变量 OTEL_SERVICE_NAME
设置或覆盖服务名称。
sampler_type
默认值为 const
。
指定采样器的类型:const
、probabilistic
、ratelimiting
或 remote
。
sampler_param
默认值为 1
。
根据 sampler_type
的值,采样器配置参数可以是 0
、1
或介于 0
和 1
之间的任何十进制值。
- 对于
const
采样器,使用0
表示从不采样,使用1
表示始终采样 - 对于
probabilistic
采样器,您可以使用0.0
到1.0
之间的十进制值 - 对于
rateLimiting
采样器,输入每秒的跨度数量 - 对于
remote
采样器,使用一个介于0.0
和1.0
之间的十进制值,来指定在收到采样服务器的第一次更新之前使用的初始采样率。
sampling_server_url
当 sampler_type
为 remote
时,此选项指定采样服务器的 URL。所有追踪提供程序都可以使用此选项。
使用支持 Jaeger 远程采样 API 的采样服务器,例如 jaeger-agent
、jaeger-collector
、opentelemetry-collector-contrib
或 Grafana Alloy。
[tracing.opentelemetry.jaeger]
使用 Jaeger 客户端配置 Grafana 以进行分布式追踪。
address
用于报告 span 的 <HOST>:<PORT>
目标地址。例如,localhost:14268/api/traces
。
propagation
propagation
指定文本映射传播格式。支持的值包括 jaeger
和 w3c
。在值之间添加逗号 (,
) 以指定多种格式(例如,"jaeger,w3c"
)。默认值为 w3c
。
[tracing.opentelemetry.otlp]
使用 OTLP 客户端配置 Grafana 以进行分布式追踪。
address
用于报告 span 的 <HOST>:<PORT>
目标地址。例如,localhost:4317
。
propagation
propagation
指定文本映射传播格式。支持的值包括 jaeger
和 w3c
。在值之间添加逗号 (,
) 以指定多种格式(例如,"jaeger,w3c"
)。默认值为 w3c
。
insecure
切换不安全通信设置,默认为 true
。当设置为 false
时,OTLP 客户端将使用带有默认系统证书池的 TLS 凭据进行通信。
[external_image_storage]
这些选项控制如何将图像设为公开,以便可以在 Slack 或电子邮件等服务上共享。
provider
选项包括 s3
、webdav
、gcs
、azure_blob
、local
)。如果留空,Grafana 将忽略上传操作。
[external_image_storage.s3]
endpoint
可选的端点 URL(主机名或完全限定 URI),用于覆盖默认生成的 S3 端点。如果您想保留默认设置,请将其留空。如果指定了端点,则仍必须提供 region
值。
path_style_access
将其设置为 true 可强制在 S3 请求中使用路径样式地址,即使用 http://s3.amazonaws.com/<BUCKET>/<KEY>
,而不是默认的虚拟主机桶地址(如果可能的话使用 http://<BUCKET>.s3.amazonaws.com/<KEY>
)。
注意
此选项特定于 Amazon S3 服务。
bucket_url
(为了向后兼容,仅在未配置存储桶或区域时有效)S3 的存储桶 URL。AWS 区域可以在 URL 中指定,或者默认为“us-east-1”,例如:
bucket
S3 的存储桶名称。例如,grafana.snapshot
。
region
S3 的区域名称。例如,us-east-1
或 cn-north-1
。
path
存储桶内的可选额外路径,对于应用过期策略很有用。
access_key
访问密钥,例如 AAAAAAAAAAAAAAAAAAAA。
访问密钥需要对 S3 存储桶具有“s3:PutObject”和“s3:PutObjectAcl”操作的权限。
secret_key
秘密密钥,例如 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA。
[external_image_storage.webdav]
url
Grafana 发送带有图像的 PUT 请求的 URL。
username
基本身份验证用户名。
password
基本身份验证密码。
public_url
可选 URL,用于在通知中发送给用户。如果字符串包含序列 {{file}}
,则会替换为上传的文件名。否则,文件名将附加到 URL 的路径部分,保持任何查询字符串不变。
[external_image_storage.gcs]
key_file
可选的 JSON 密钥文件路径,与 Google 服务帐号关联以进行身份验证和授权。如果未提供值,它会尝试使用应用程序默认凭据。服务帐号密钥可以在https://console.developers.google.com/permissions/serviceaccounts 创建和下载。
服务帐号应具有“Storage Object Writer”角色。存储桶的访问控制模型需要是“设置对象级和存储桶级权限”。当未启用签名 URL 时,Grafana 会将图像设置为公开可读。
bucket
Google Cloud Storage 上的存储桶名称。
path
存储桶内的可选额外路径。
enable_signed_urls
如果设置为 true,Grafana 会为上传到 Google Cloud Storage 的图像创建签名 URL。
signed_url_expiration
设置签名 URL 的过期时间,默认为七天。
[external_image_storage.azure_blob]
account_name
存储帐户名称。
account_key
存储帐户密钥。
container_name
用于存储带有随机名称的“Blob”图像的容器名称。需要预先创建 blob 容器。仅支持公共容器。
sas_token_expiration_days
SAS 令牌的有效天数。如果指定,SAS 令牌将附加到图像 URL。允许在私有容器中存储图像。
[external_image_storage.local]
此选项无需任何配置。
[rendering]
配置远程 HTTP 图像渲染服务的选项,例如使用https://github.com/grafana/grafana-image-renderer。
renderer_token
身份验证令牌将发送到渲染器并由其验证。渲染器会拒绝任何没有与渲染器上配置的身份验证令牌匹配的请求。
server_url
远程 HTTP 图像渲染服务的 URL,例如 https://:8081/render
,Grafana 可以使用它通过对外部服务进行 HTTP 请求来将面板和仪表板渲染为 PNG 图像。
callback_url
如果远程 HTTP 图像渲染服务运行在与 Grafana 服务器不同的服务器上,您可能需要将其配置为 Grafana 可访问的 URL,例如http://grafana.domain/。
callback_url
也可以配置为支持作为插件运行的图像渲染器使用 SSL / HTTPS。例如 https://:3000/。
concurrent_render_request_limit
并发渲染请求限制影响何时使用 /render HTTP 端点。同时渲染许多图像可能会使服务器过载,此设置可以通过仅允许一定数量的并发请求来提供保护。默认值为 30
。
default_image_width
配置渲染图像的宽度。默认宽度为 1000
。
default_image_height
配置渲染图像的高度。默认高度为 500
。
default_image_scale
配置渲染图像的比例。默认比例为 1
。
[panels]
enable_alpha
如果您想测试尚未准备好普遍使用的 Alpha 面板,请将其设置为 true
。默认值为 false
。
disable_sanitize_html
注意
此配置在 Grafana Cloud 实例中不可用。
如果设置为 true,Grafana 允许文本面板中的 script 标签。不推荐,因为它会启用 XSS 漏洞。默认值为 false
。
[plugins]
enable_alpha
如果您想测试尚未准备好普遍使用的 Alpha 插件,请将其设置为 true
。默认值为 false
。
allow_loading_unsigned_plugins
输入以逗号分隔的插件标识符列表,以标识即使未签名也要加载的插件。签名被修改的插件永远不会加载。
我们不建议使用此选项。更多信息请参阅插件签名。
plugin_admin_enabled
仅对 Grafana 管理员可用,启用直接从 Grafana UI 安装、卸载和更新插件。默认设置为 true
。将其设置为 false
会隐藏控件。
更多信息请参阅插件目录。
plugin_admin_external_manage_enabled
如果您想启用插件的外部管理,请将其设置为 true
。默认值为 false
。此选项仅适用于 Grafana Cloud 用户。
plugin_catalog_url
企业插件的自定义安装/了解更多 URL。默认为https://grafana.org.cn/grafana/plugins/。
plugin_catalog_hidden_plugins
输入以逗号分隔的插件标识符列表,以在插件目录中隐藏这些插件。
public_key_retrieval_disabled
禁用用于验证插件签名的公钥下载。默认值为 false
。如果禁用,则使用硬编码的公钥。
public_key_retrieval_on_startup
强制在启动时下载用于验证插件签名的公钥。默认值为 false
。如果禁用,公钥每 10 天检索一次。需要将 public_key_retrieval_disabled
设置为 false
才能生效。
disable_plugins
输入以逗号分隔的插件标识符列表,以避免加载这些插件(包括核心插件)。这些插件将在目录中被隐藏。
preinstall
输入以逗号分隔的插件标识符列表,以在启动时安装插件,使用 Grafana 目录作为源。预安装的插件不能从 Grafana 用户界面卸载;必须先将其从该列表中移除。
要将插件固定到特定版本,请使用格式 plugin_id@version
,例如 grafana-piechart-panel@1.6.0
。如果未指定版本,则安装最新版本。启动时 Grafana 插件目录中有新版本可用时,插件将自动更新到最新版本(新主版本除外)。
要使用自定义 URL 下载插件,请使用格式 plugin_id@version@url
,例如 grafana-piechart-panel@1.6.0@https://example.com/grafana-piechart-panel-1.6.0.zip
。
默认情况下,Grafana 会在启动时安装一些建议的插件。请参阅默认配置文件以获取该插件列表。
preinstall_async
默认情况下,插件会作为后台进程异步预安装。这意味着 Grafana 启动速度更快,但插件可能无法立即使用。如果需要安装插件进行 provisioning,请将此选项设置为 false
。这将导致 Grafana 在插件安装完成之前等待启动,如果插件无法安装则会失败。
preinstall_disabled
此选项禁用所有预安装的插件。默认值为 false
。要禁用特定插件的预安装,请使用 disable_plugins
选项。
[live]
max_connections
max_connections
选项指定每个 Grafana 服务器实例到 Grafana Live WebSocket 端点的最大连接数。默认值为 100
。
如果您指定的值高于默认值,请参阅Grafana Live 配置文档,因为这可能需要进行一些操作系统和基础设施调优。
0 禁用 Grafana Live,-1 表示连接数不受限制。
allowed_origins
allowed_origins
选项是一个以逗号分隔的列表,列出了 Grafana Live 接受的额外来源(WebSocket 连接建立期间 HTTP Upgrade 请求的 Origin
头)。
如果未设置(默认),则来源会与root_url 进行匹配,这对于大多数场景应该足够了。
来源模式支持通配符 "*"。
例如
[live]
allowed_origins = "https://*.example.com"
ha_engine
实验性
Grafana Live 的高可用性 (HA) 引擎名称。默认情况下未设置。唯一可能的值是 redis
。
更多信息请参阅配置 Grafana Live HA 设置。
ha_engine_address
实验性
选定的高可用性 (HA) Live 引擎的地址字符串。对于 Redis,它是 host:port
字符串。示例
[live]
ha_engine = redis
ha_engine_address: redis-headless.grafana.svc.cluster.local:6379
ha_engine_password: $__file{/your/redis/password/secret/mount}
[plugin.plugin_id]
此部分可用于配置插件特定的设置。将 plugin_id
属性替换为 plugin.json
中存在的插件 ID。
此部分描述的属性适用于所有插件,但必须为每个插件单独设置。
tracing
如果为 true
,则将追踪上下文传播到插件后端并启用追踪(如果后端支持)。
as_external
如果已安装,则加载核心插件的外部版本。
实验性。需要启用功能开关 externalCorePlugins
。
[plugin.grafana-image-renderer]
更多信息请参阅图像渲染。
rendering_timezone
指示无头浏览器实例在 Grafana 未提供时使用默认时区,例如渲染警报面板图像时。支持的时区 ID 列表请参阅 ICU metaZones.txt
文件。如果未设置,则回退到 TZ 环境变量。
rendering_language
指示无头浏览器实例在 Grafana 未提供时使用默认语言,例如渲染警报面板图像时。请参阅 HTTP 头 Accept-Language 以了解如何格式化此值,例如“fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5”。
rendering_viewport_device_scale_factor
指示无头浏览器实例在 Grafana 未提供时使用默认设备比例因子,例如渲染警报面板图像时。默认值为 1
。使用更高的值会生成更详细的图像(更高的 DPI),但需要更多磁盘空间来存储图像。
rendering_ignore_https_errors
指示无头浏览器实例在导航过程中是否忽略 HTTPS 错误。默认情况下不忽略 HTTPS 错误。由于存在安全风险,我们不建议您忽略 HTTPS 错误。
rendering_verbose_logging
指示无头浏览器实例在渲染图像时是否捕获和记录详细信息。默认值为 false
,仅捕获和记录错误消息。
启用后,也会捕获和记录调试消息。
要将详细信息包含在 Grafana 服务器日志中,您必须将渲染日志级别调整为 debug,配置 [log].filter = rendering:debug。
rendering_dumpio
指示无头浏览器实例是否将其调试和错误消息输出到远程渲染服务的运行进程中。默认值为 false
。
在故障排除时,将此设置为 true
可能会很有用。
rendering_timing_metrics
注意
从
grafana-image-renderer
v3.9.0+ 开始可用
指示无头浏览器实例是否记录每个渲染步骤持续时间的指标。默认值为 false
。
在优化渲染模式设置以提高插件性能或进行故障排除时,将其设置为 true
可能会很有用。
rendering_args
传递给无头浏览器实例的额外参数。默认值为 --no-sandbox,--disable-gpu
。Chromium 标志列表可在 (https://peter.sh/experiments/chromium-command-line-switches/) 找到。多个参数用逗号分隔。
rendering_chrome_bin
您可以将插件配置为使用不同的浏览器二进制文件,而不是预打包的 Chromium 版本。
请注意,不建议这样做。如果安装的 Chrome 或 Chromium 版本与插件不兼容,可能会遇到问题。
rendering_mode
指示如何创建无头浏览器实例。默认值为 default
,并在每次请求时创建新的浏览器实例。
clustered
模式确保最多只能并发执行一定数量的浏览器或隐身页面。
reusable
模式使用一个浏览器实例并在每次请求时创建新的隐身页面。
rendering_clustering_mode
当 rendering_mode = clustered
时,您可以指示可以并发执行多少个浏览器或隐身页面。默认值为 browser
,并使用浏览器实例进行集群。
context
模式使用隐身页面进行集群。
rendering_clustering_max_concurrency
当 rendering_mode = clustered
时,您可以定义可以并发执行的最大浏览器实例数或隐身页面数。默认值为 5
。
rendering_clustering_timeout
注意
在
grafana-image-renderer
v3.3.0 及更高版本中可用。
当 rendering_mode = clustered
时,您可以指定渲染请求在超时之前可以花费的时间。默认值为 30
秒。
rendering_viewport_max_width
限制可请求的最大视图端口宽度。
rendering_viewport_max_height
限制可请求的最大视图端口高度。
rendering_viewport_max_device_scale_factor
限制可请求的最大视图端口设备比例因子。
grpc_host
更改 gRPC 服务器的监听主机。默认主机为 127.0.0.1
。
grpc_port
更改 gRPC 服务器的监听端口。默认端口为 0
,并使用未被占用的端口。
[enterprise]
更多关于 Grafana Enterprise 的信息,请参阅Grafana Enterprise。
[feature_toggles]
enable
要启用的功能键,以空格分隔。
FEATURE_TOGGLE_NAME = false
一些稳定版功能的功能开关默认是开启的。使用此设置可以禁用默认开启的功能开关,名称为 FEATURE_TOGGLE_NAME,例如 exploreMixedDatasource = false
。
[feature_management]
本节中的选项配置实验性功能开关管理页面功能,该功能通过 featureToggleAdminPage
功能开关启用。Grafana Labs 提供尽力而为的支持,在功能正式发布之前可能会发生重大更改。
更多信息请参阅配置功能开关。
allow_editing
允许您在功能管理页面中切换功能开关的状态。默认值为 false
。
update_webhook
设置管理功能开关更新的控制器的 URL。如果未设置,功能管理页面中的功能开关将是只读的。
注意
功能开关更新的 API 尚未定义。
hidden_toggles
在功能管理页面中隐藏其他特定功能开关。默认情况下,处于 unknown
、experimental
和 private preview
阶段的功能开关在 UI 中是隐藏的。使用此选项可以隐藏处于 public preview
、general availability
和 deprecated
阶段的功能开关。
read_only_toggles
用于在功能管理页面中禁用其他特定功能开关的更新。默认情况下,功能开关只能在处于 general availability
和 deprecated
阶段时进行更新。使用此选项可以禁用这些阶段中功能开关的更新。
[date_formats]
本节控制用于时间范围、图表和日期输入框的系统级默认日期格式。
格式模式使用Moment.js 格式标记。
full_date
时间范围选择器和其他渲染完整日期的位置使用的完整日期格式。
intervals
这些间隔格式用于图表中,仅显示部分日期或时间。例如,如果 Y 轴刻度标签之间只有分钟,则使用 interval_minute
格式。
Defaults
interval_second = HH:mm:ss
interval_minute = HH:mm
interval_hour = MM/DD HH:mm
interval_day = MM/DD
interval_month = YYYY-MM
interval_year = YYYY
use_browser_locale
将此设置为 true
可让日期格式根据您的浏览器位置自动派生。默认为 false
。这是一项实验性功能。
default_timezone
用作用户偏好的默认时区。可以是表示浏览器本地时区的 browser
,也可以是来自 IANA 时区数据库的时区名称,例如 UTC
或 Europe/Amsterdam
。
default_week_start
设置默认的周开始日,有效值为:saturday
、sunday
、monday
或 browser
(使用浏览器语言环境定义一周的第一天)。默认值为 browser
。
[expressions]
enabled
将此设置为 false
以禁用表达式并在 Grafana UI 中隐藏它们。默认值为 true
。
sql_expression_cell_limit
设置可以传递给 SQL 表达式的最大单元格数。默认值为 100000
。
[geomap]
本节控制 Geomap 插件的默认设置。
default_baselayer_config
用于定义默认底图的 JSON 配置。有四种底图选项可供选择:carto
、esriXYZTiles
、xyzTiles
、standard
。例如,将 cartoDB light 设置为默认底图:
default_baselayer_config = `{
"type": "xyz",
"config": {
"attribution": "Open street map",
"url": "https://tile.openstreetmap.org/{z}/{x}/{y}.png"
}
}`
enable_custom_baselayers
将此设置为 false
以禁用加载其他自定义底图并在 Grafana UI 中隐藏它们。默认值为 true
。
[rbac]
更多信息请参阅基于角色的访问控制。
[navigation.app_sections]
将应用程序插件(通过其 id 引用),包括其所有页面,移动到特定的导航部分。格式:<pluginId> = <sectionId> <sortWeight>
[navigation.app_standalone_pages]
将单个应用程序插件页面(通过其 path
字段引用)移动到特定的导航部分。格式:<pageUrl> = <sectionId> <sortWeight>
[public_dashboards]
本节配置共享仪表板功能。
enabled
将此设置为 false
可禁用共享仪表板功能。这将阻止用户创建新的共享仪表板并禁用现有仪表板。