跳到主要内容
版本:latest

配置

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

CnosDB 的配置文件为 TOML 格式。

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

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

cnosdb run config > ./config.toml

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

cnosdb check server-config ./config.toml

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

如果用户未指定,则程序在 /etc/cnosdb/cnosdb.conf$HOME/cnosdb/cnosdb.conf位置先寻找配置,没有找到则使用默认配置

cnosdb --config ./cnosdb.conf

CnosDB 中的配置优先级为:指定参数 > 环境变量 > 指定配置文件 > /etc/cnosdb/cnosdb.conf > $HOME/cnosdb/cnosdb.conf > 默认配置

环境变量

配置文件中的所有设置都可以使用环境变量进行设置或覆盖。如果在文件和环境变量中同时存在,则环境变量将优先,并且配置文件中的值将被忽略。

要通过环境变量使这些配置设置可供 CnosDB 使用,它们必须采用以下格式:

CNOSDB_REPORTING_DISABLED=false

文件描述

本节介绍每个配置的配置方式以及用途。

全局配置

参数默认环境变量描述
reporting_disabledfalseCNOSDB_REPORTING_DISABLED是否关闭 CnosDB 自动上报遥测数据,主要跟踪 CnosDB 不同版本的使用率,这些数据有利于 CnosDB 的持续开发。每24小时上报一次数据,每条包含的字段为:实例运行时间、操作系统类型、数据库版本、实例运行的地理位置(只到省级或洲级)。
raft_logs_to_keep5000CNOSDB_RAFT_LOGS_TO_KEEPRaft 日志保留条数,且每隔这些次数写入做一次 snapshot
using_raft_replicationfalseCNOSDB_USING_RAFT_REPLICATION是否启用 Raft 复制算法
hostlocalhostCNOSDB_HOST用来和其他节点通信。
license_file/etc/cnosdb/license.jsonCNOSDB_LICENSE_FILE企业版配置,用于指定 License 文件位置。

[deployment]

参数默认环境变量说明
modequery_tskvCNOSDB_MODE部署模式,可选项为: tskv, query, query_tskv, singletontskv: 只部署 tskv 引擎,需要指定 Meta 服务地址。 query: 只部署 query 引擎,需要指定 meta 服务地址。 query_tskv: querytskv 引擎都部署,需要指定 meta 服务地址。 singleton: 部署单机版,无需指定 meta 服务地址。
cpu等同节点核心数CNOSDB_CPU节点运行所使用的 cpu 核数
memory等同节点CPU数CNOSDB_MEMORY节点运行所使用的最大内存,单位:(G)

[query]

参数默认环境变量描述
max_server_connections10240CNOSDB_MAX_SERVER_CONNECTIONS最大并发连接请求数。
query_sql_limit16777216CNOSDB_QUERY_SQL_LIMIT每个 SQL 查询请求的最大字节数,单位:Bytes
write_sql_limit167772160CNOSDB_WRITE_SQL_LIMIT每个 Line Protocol 写入请求的最大字节数,单位:Bytes
auth_enabledfalseCNOSDB_AUTH_ENABLED是否检查用户的权限。
read_timeout_ms3000CNOSDB_READ_TIMEOUT_MSquery 访问 tskv 的超时时间,单位:ms
write_timeout_ms3000CNOSDB_WRITE_TIMEOUT_MStskv 写入数据时的超时时间,单位:ms
stream_trigger_cpu1CNOSDB_STREAM_TRIGGER_CPU准备流计算任务的 CPU 数量
stream_executor_cpu2CNOSDB_STREAM_EXECUTOR_CPU执行流计算任务的 CPU 数量

[storage]

参数默认环境变量描述
path/etc/cnosdb/cnosdb.confCNOSDB_PATH数据存储目录。
max_summary_size128MCNOSDB_MAX_SUMMARY_SIZE单个 Summary 日志的最大大小。
base_file_size16MCNOSDB_BASE_FILE_SIZE单个文件数据大小。
flush_req_channel_cap16CNOSDB_FLUSH_REQ_CHANNEL_CAP累积的 flush 任务上限。
max_level4CNOSDB_MAX_LEVELLSM 的最大层数,取值范围 0-4。
compact_trigger_file_num4CNOSDB_COMPACT_TRIGGER_FILE_NUM触发 compaction 所需的文件数量。
compact_trigger_cold_duration1hCNOSDB_COMPACT_TRIGGER_COLD_DURATION时间段内未操作,则触发 compaction。
max_compact_size2GCNOSDB_MAX_COMPACT_SIZEcompaction 最多选择的文件大小。
max_concurrent_compaction4CNOSDB_MAX_CONCURRENT_COMPACTION最多同时进行的 compaction 任务数量。
strict_writefalseCNOSDB_STRICT_WRITE是否开启严格写入。
reserve_space0CNOSDB_RESERVE_SPACE系统的保留空间大小。
copyinto_trigger_flush_size128MCOPYINTO_TRIGGER_FLUSH_SIZECOPY INTO导出时触发落盘的内存大小 。支持版本:>2.3.4.3

[wal]

参数默认环境变量描述
enabledtrueCNOSDB_ENABLED是否启用 WAL。
path/var/lib/cnosdb/walCNOSDB_PATHWAL 存储目录。
wal_req_channel_cap64CNOSDB_WAL_REQ_CHANNEL_CAP累积的写 WAL 任务上限。
max_file_size1GCNOSDB_MAX_FILE_SIZE单个 WAL 的最大大小。
flush_trigger_total_file_size2GCNOSDB_FLUSH_TRIGGER_TOTAL_FILE_SIZE所有 WAL 的大小达到该数值时,触发 flush。
syncfalseCNOSDB_SYNC是否为每次写入进行同步。
sync_interval0CNOSDB_SYNC_INTERVAL同步 WAL 的时间间隔,即不主动同步,单位:hmsmsusns

[cache]

参数默认环境变量描述
max_buffer_size128MCNOSDB_MAX_BUFFER_SIZE最大的活跃缓存大小。
max_immutable_number4CNOSDB_MAX_IMMUTABLE_NUMBER最大的非活跃缓存数量。
partition等同CPU数量CNOSDB_PARTITIONmemcache 缓存的分区数量,默认值等于 CPU 数量

[log]

参数默认环境变量描述
levelinfoCNOSDB_LEVEL日志等级(debug、info、error、warn)。
path/var/log/cnosdbCNOSDB_PATH日志存储目录。

[security]

参数默认环境变量描述
tls_configCNOSDB_TLS_CONFIGTLS 配置

[security.tls_config](可选)

参数默认环境变量描述
certificateCNOSDB_CERTIFICATETLS 服务的证书
private_keyCNOSDB_PRIVATE_KEYTLS 服务的私钥

[cluster]

参数默认环境变量描述
namecluster_xxxCNOSDB_NAME节点名称。
meta_service_addr127.0.0.1:8901CNOSDB_META_SERVICE_ADDR远程 meta 服务地址。
http_listen_port8902CNOSDB_HTTP_LISTEN_PORTHTTP 服务监听端口。
grpc_listen_port8903CNOSDB_GRPC_LISTEN_PORTGRPC 服务监听端口。
flight_rpc_listen_port8904CNOSDB_FLIGHT_RPC_LISTEN_PORTFlight RPC 服务监听端口。
tcp_listen_port8905CNOSDB_TCP_LISTEN_PORTTCP 服务监听端口。
vector_listen_port8906CNOSDB_VECTOR_LISTEN_PORT用于监听 Vector 写入的数据

[hintedoff]

参数默认环境变量描述
enabletrueCNOSDB_ENABLE是否开启 HIntedOff 服务。
path/var/lib/cnosdb/hhCNOSDB_PATHHintedOff 存储目录。
threads3CNOSDB_THREADS处理hinted handoff数据的并发数。

[heartbeat]

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

[node_basic]

参数默认环境变量描述
node_id1001CNOSDB_NODE_ID节点 ID。
cold_data_serverfalseCNOSDB_COLD_DATA_SERVER是否停止在此节点上创建 Vnode。
store_metricstrueCNOSDB_STORE_METRICS是否统计此节点的使用情况并存储到 usage_schema 数据库。

[trace]

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

[trace.log] (可选)

参数默认环境变量描述
pathCNOSDB_PATHtrace 日志文件路径

[trace.jaeger] (可选)

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

meta 文件描述

全局配置

参数默认环境变量描述
id1CNOSDB_IDmeta节点的id,要求集群内唯一
host127.0.0.1CNOSDB_HOST用于和其他节点通信的 host
port8901CNOSDB_PORT用于和其他节点通信的 port
data_path/var/lib/cnosdb/metaCNOSDB_DATA_PATHmeta数据的存储路径
grpc_enable_gzipfalseCNOSDB_GRPC_ENABLE_GZIPmeta服务的接口数据传输,是否启用压缩

[log]

参数默认环境变量描述
levelinfoCNOSDB_LEVEL日志等级(debug、info、error、warn)。
path/var/log/cnosdbCNOSDB_PATH日志存储目录。

[meta_init]

参数默认环境变量描述
cluster_namecluster_xxxCNOSDB_CLUSTER_NAME集群名字
admin_userrootCNOSDB_ADMIN_USER系统管理员用户名
system_tenantcnosdbCNOSDB_SYSTEM_TENANT系统默认租户名字
default_database["public","usage_schema"]CNOSDB_DEFAULT_DATABASE默认创建的数据库

[heartbeat]

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