跳到主要内容
版本:2.4.x

配置

本章节介绍设置 CnosDB 配置的方法。

CnosDB 的配置文件为 TOML 格式。

TOML 语法参考:https://toml.io

使用 cnosdb config 命令来创建默认的配置文件,如:

cnosdb config > ./cnosdb.conf

使用 cnosdb check server-config <path> 命令来检查配置文件是否合法,如:

cnosdb check server-config ./cnosdb.conf

使用 cnosdb 命令指定配置文件启动:

cnosdb run --config ./cnosdb.conf

文件描述

全局配置

参数默认描述
reporting_disabledfalse是否关闭 CnosDB 自动上报遥测数据,主要跟踪 CnosDB 不同版本的使用率,这些数据有利于 CnosDB 的持续开发。每24小时上报一次数据,每条包含的字段为: 实例运行时间、操作系统类型、数据库版本、实例运行的地理位置(只到省级或洲级)。
raft_logs_to_keep5000Raft 日志保留条数,且每隔这些次数写入做一次 snapshot。
using_raft_replicationfalse是否启用 Raft 复制算法
hostlocalhost用来和其他节点通信。

[deployment]

参数默认说明
modequery_tskv部署模式,可选项为: tskv, query, query_tskv, singletontskv: 只部署 tskv 引擎,需要指定 Meta 服务地址。 query: 只部署 query 引擎,需要指定 meta 服务地址。 query_tskv: querytskv 引擎都部署,需要指定 meta 服务地址。 singleton: 部署单机版,无需指定 meta 服务地址。
cpu10节点运行所使用的 cpu 核数
memory16节点运行所使用的最大内存,单位:(G)

[query]

参数默认描述
max_server_connections10240最大并发连接请求数。
query_sql_limit16777216每个 SQL 查询请求的最大字节数,单位:Bytes
write_sql_limit167772160每个 Line Protocol 写入请求的最大字节数,单位:Bytes
auth_enabledfalse是否检查用户的权限。
read_timeout_ms3000query 访问 tskv 的超时时间,单位:ms
write_timeout_ms3000tskv 写入数据时的超时时间,单位:ms.
stream_trigger_cpu1准备流计算任务的 CPU 数量
stream_executor_cpu2执行流计算任务的 CPU 数量

[storage]

参数默认描述
path/etc/cnosdb/cnosdb.conf数据存储目录。
max_summary_size128M单个 Summary 日志的最大大小。
base_file_size16M单个文件数据大小。
flush_req_channel_cap16累积的 flush 任务上限。
max_cached_readers32每个 vnode 中打开的文件句柄(用于查询)的最大计数。
max_level4LSM 的最大层数,取值范围 0-4。
compact_trigger_file_num4触发 compaction 所需的文件数量。
compact_trigger_cold_duration1h时间段内未操作,则触发 compaction。
max_compact_size2Gcompaction 最多选择的文件大小。
max_concurrent_compaction4最多同时进行的 compaction 任务数量。
strict_writefalse是否开启严格写入。

[wal]

参数默认描述
enabledtrue是否启用 WAL。
path/var/lib/cnosdb/walWAL 存储目录。
wal_req_channel_cap64累积的写 WAL 任务上限。
max_file_size1G单个 WAL 的最大大小。
flush_trigger_total_file_size2G所有 WAL 的大小达到该数值时,触发 flush。
syncfalse是否为每次写入进行同步。
sync_interval0同步 WAL 的时间间隔,即不主动同步,单位:hmsmsusns

[cache]

参数默认描述
max_buffer_size128M最大的活跃缓存大小。
max_immutable_number4最大的非活跃缓存数量。
partition等同CPU数量memcache 缓存的分区数量,默认值等于 CPU 数量

[log]

参数默认描述
levelinfo日志等级(debug、info、error、warn)。
path/var/log/cnosdb日志存储目录。
tokio_trace{ addr = "127.0.0.1:6669" }Tokio 跟踪,默认处于关闭状态。

[security]

参数默认描述
tls_configTLS 配置

[security.tls_config](可选)

参数默认描述
certificateTLS 服务的证书
private_keyTLS 服务的私钥

[cluster]

参数默认描述
namecluster_xxx节点名称。
meta_service_addr127.0.0.1:8901远程 meta 服务地址。
http_listen_port8902HTTP 服务监听端口。
grpc_listen_port8903GRPC 服务监听端口。
flight_rpc_listen_port8904Flight RPC 服务监听端口。
tcp_listen_port8905TCP 服务监听端口。
vector_listen_port8906用于监听 Vector 写入的数据

[hintedoff]

参数默认描述
enabletrue是否开启 HIntedOff 服务。
path/var/lib/cnosdb/hhHintedOff 存储目录。
threads3处理hinted handoff数据的并发数。

[heartbeat]

参数默认描述
report_time_interval_sec30此节点上报心跳、磁盘余量等信息到 meta 服务的时间间隔,单位:s

[node_basic]

参数默认描述
node_id1001节点 ID。
cold_data_serverfalse是否停止在此节点上创建 Vnode。
store_metricstrue是否统计此节点的使用情况并存储到 usage_schema 数据库。

[trace]

参数默认描述
auto_generate_spanfalse是否自动生成root span,当客户端未携带span context时有效

[trace.log] (可选)

参数默认描述
path/var/log/cnosdbtrace 日志文件路径

[trace.jaeger] (可选)

参数默认描述
jaeger_agent_endpointhttp://localhost:14268/api/tracesthe Jaeger agent endpoint。例如:http://localhost:14268/api/traces
max_concurrent_exports2trace 上报器的并行度。默认值为 2
max_queue_size4096span 缓冲区最大队列大小。如果队列已满,它会丢弃 span。

meta 文件描述

全局配置

参数默认描述
id1meta节点的id,要求集群内唯一
host127.0.0.1用于和其他节点通信的 host
port8901用于和其他节点通信的 port
data_path/var/lib/cnosdb/metameta数据的存储路径

[log]

参数默认描述
levelinfo日志等级(debug、info、error、warn)。
path/var/log/cnosdb日志存储目录。

[meta_init]

参数默认描述
cluster_namecluster_xxx集群名字
admin_userroot系统管理员用户名
system_tenantcnosdb系统默认租户名字
default_database["public","usage_schema"]默认创建的数据库

[heartbeat]

参数默认描述
heartbeat_recheck_interval300多久检查一次CnosDB节点的状态,单位:秒。
heartbeat_expired_interval300CnosDB节点多久未上报心跳认定异常,单位:秒。