配置 GreptimeDB
GreptimeDB 提供了层次化的配置能力,按照下列优先顺序来生效配置(每个项目都会覆盖下面的项目):
- Greptime 命令行选项
- 配置文件选项
- 环境变量
- 默认值
你只需要设置所需的配置项。 GreptimeDB 将为未配置的任何设置分配默认值。
如何设置配置项
Greptime 命令行选项
你可以使用命令行参数指定多个配置项。 例如,以配置的 HTTP 地址启动 GreptimeDB 的独立模式:
greptime standalone start --http-addr 127.0.0.1:4000
有关 Greptime 命令行支持的所有选项,请参阅 GreptimeDB 命令行界面。
配置文件选项
你可以在 TOML 文件中指定配置项。
例如,创建一个名为 standalone.example.toml
的配置文件,如下所示:
[storage]
type = "File"
data_home = "./greptimedb_data/"
然后使用命令行参数 -c [file_path]
指定配置文件。
greptime [standalone | frontend | datanode | metasrv] start -c config/standalone.example.toml
例如以 standalone 模式启动 GreptimeDB:
greptime standalone start -c standalone.example.toml
示例文件
以下是每个 GreptimeDB 组件的示例配置文件,包括所有可用配置项。 在实际场景中,你只需要配置所需的选项,不需要像示例文件中那样配置所有选项。
Helm 配置
当使用 Helm 在 Kubernetes 上部署 GreptimeDB 时,你可以直接在 Helm values.yaml
文件中做相应的设置。
请参阅 Helm 配置项文档了解所有 Helm 支持的配置项。
对于仅在本篇文档中可用的配置项,你可以通过注入 TOML 配置文件来设置配置。
环境变量
配置文件中的每个项目都可以映射到环境变量。
例如,使用环境变量设置数据节点的 data_home
配置项:
# ...
[storage]
data_home = "/data/greptimedb"
# ...
使用以下 shell 命令以以下格式设置环境变量:
export GREPTIMEDB_DATANODE__STORAGE__DATA_HOME=/data/greptimedb
环境变量规则
-
每个环境变量应具有组件前缀,例如:
GREPTIMEDB_FRONTEND
GREPTIMEDB_METASRV
GREPTIMEDB_DATANODE
GREPTIMEDB_STANDALONE
-
使用**双下划线
__
**作为分隔符。例如,数据结构storage.data_home
转换为STORAGE__DATA_HOME
。
环境变量还接受以逗号 ,
分隔的列表,例如:
GREPTIMEDB_METASRV__META_CLIENT__METASRV_ADDRS=127.0.0.1:3001,127.0.0.1:3002,127.0.0.1:3003
配置项
本节将介绍主要的配置项,请前往 GitHub 查看所有配置项。
协议选项
协议选项适用于 frontend
和 standalone
子命令,它指定了协议服务器地址和其他协议相关的选项。
HTTP 协议配置适用于所有 GreptimeDB 组件:frontend
、datanode
、flownode
和 metasrv
。
下面的示例配置包含了所有协议选项的默认值。
你可以在配置文件中更改这些值或禁用某些协议。
例如禁用 OpenTSDB 协议支持,可以将 enable
参数设置为 false
。
请注意,为了保障数据库的正常工作,无法禁用 HTTP 和 gRPC 协议。
[http]
addr = "127.0.0.1:4000"
timeout = "30s"
body_limit = "64MB"
[grpc]
bind_addr = "127.0.0.1:4001"
runtime_size = 8
[mysql]
enable = true
addr = "127.0.0.1:4002"
runtime_size = 2
[mysql.tls]
mode = "disable"
cert_path = ""
key_path = ""
[postgres]
enable = true
addr = "127.0.0.1:4003"
runtime_size = 2
[postgres.tls]
mode = "disable"
cert_path = ""
key_path = ""
[opentsdb]
enable = true
[influxdb]
enable = true
[prom_store]
enable = true
下表描述了每个选项的详细信息:
选项 |
---|