跳到主要内容
版本:latest

配置

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

CnosDB 的配置文件为 TOML 格式。

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

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

cnosdb config > ./config.toml

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

cnosdb check server-config ./config.toml

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

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

cnosdb run --config ./cnosdb.conf

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

环境变量

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

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

CNOSDB_REPORTING_DISABLED=false

文件描述

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

全局配置

参数默认环境变量描述
node_id1001CNOSDB_GLOBAL_NODE_ID节点 ID
hostlocalhostCNOSDB_GLOBAL_HOST用来和其他节点通信。
cluster_namecluster_xxxCNOSDB_GLOBAL_CLUSTER_NAME集群名字
store_metricstrueCNOSDB_GLOBAL_STORE_METRICS是否统计此节点的使用情况并存储到usage_schema数据库。
pre_create_bucketfalseCNOSDB_GLOBAL_PRE_CREATE_BUCKET预创建 bucket

[deployment]

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

[meta]

参数默认环境变量说明
service_addr["127.0.0.1:8901"]CNOSDB_META_SERVICE_ADDR远程 meta 服务地址。
report_time_interval30sCNOSDB_META_REPORT_TIME_INTERVAL此节点上报心跳、磁盘余量等信息到 meta 服务的时间间隔,单位:秒。

[query]

参数默认环境变量描述
max_server_connections10240CNOSDB_QUERY_MAX_SERVER_CONNECTIONS最大并发连接请求数。
query_sql_limit16777216CNOSDB_QUERY_QUERY_SQL_LIMIT每个 SQL 查询请求的最大字节数,单位:Bytes
write_sql_limit167772160CNOSDB_QUERY_WRITE_SQL_LIMIT每个 Line Protocol 写入请求的最大字节数,单位:Bytes
auth_enabledfalseCNOSDB_QUERY_AUTH_ENABLED是否检查用户的权限。
read_timeout3000msCNOSDB_QUERY_READ_TIMEOUTquery 访问 tskv 的超时时间,单位:ms
write_timeout3000msCNOSDB_QUERY_WRITE_TIMEOUTtskv 写入数据时的超时时间,单位:ms
stream_trigger_cpu1CNOSDB_QUERY_STREAM_TRIGGER_CPU准备流计算任务的 CPU 数量
stream_executor_cpu2CNOSDB_QUERY_STREAM_EXECUTOR_CPU执行流计算任务的 CPU 数量
sql_record_timeout10sCNOSDB_QUERY_SQL_RECORD_TIMEOUTsql被记录到cluster_schema.sql_history表的最低执行时间

[storage]

参数默认环境变量描述
path/etc/cnosdb/cnosdb.confCNOSDB_STORAGE_PATH数据存储目录。
max_summary_size128MCNOSDB_STORAGE_MAX_SUMMARY_SIZE单个 Summary 日志的最大大小。
base_file_size16MCNOSDB_STORAGE_BASE_FILE_SIZE单个文件数据大小。
flush_req_channel_cap16CNOSDB_STORAGE_FLUSH_REQ_CHANNEL_CAP累积的 flush 任务上限。
max_cache_readers32CNOSDB_STORAGE_MAX_CACHE_READERS每个 vnode 中打开的文件句柄(用于查询)的最大计数。
max_level4CNOSDB_STORAGE_MAX_LEVELLSM 的最大层数,取值范围 0-4。
compact_trigger_file_num4CNOSDB_STORAGE_COMPACT_TRIGGER_FILE_NUM触发 compaction 所需的文件数量。
compact_trigger_cold_duration1hCNOSDB_STORAGE_COMPACT_TRIGGER_COLD_DURATION时间段内未操作,则触发 compaction。
max_compact_size2GCNOSDB_STORAGE_MAX_COMPACT_SIZEcompaction 最多选择的文件大小。
max_concurrent_compaction4CNOSDB_STORAGE_MAX_CONCURRENT_COMPACTION最多同时进行的 compaction 任务数量。
strict_writefalseCNOSDB_STORAGE_STRICT_WRITE是否开启严格写入。
reserve_space0CNOSDB_STORAGE_RESERVE_SPACE系统的保留空间大小。
copyinto_trigger_flush_size128MCNOSDB_STORAGE_COPYINTO_TRIGGER_FLUSH_SIZECOPY INTO导出时触发落盘的内存大小 。支持版本:>2.3.4.3
max_datablock_size100KBCNOSDB_STORAGE_MAX_DATABLOCK_SIZEcompaction时datablock的最大大小。
index_cache_capacity100000CNOSDB_STORAGE_INDEX_CACHE_CAPACITYindex缓存容量

[wal]

参数默认环境变量描述
path/var/lib/cnosdb/walCNOSDB_WAL_PATHWAL 存储目录。
wal_req_channel_cap64CNOSDB_WAL_WAL_REQ_CHANNEL_CAP累积的写 WAL 任务上限。
max_file_size1GCNOSDB_WAL_MAX_FILE_SIZE单个 WAL 的最大大小。
syncfalseCNOSDB_WAL_SYNC是否为每次写入进行同步。
compresszstdCNOSDB_WAL_COMPRESSwal压缩算法,支持:gzipbzipsnappyzlibzstd

[cache]

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

[log]

参数默认环境变量描述
levelinfoCNOSDB_LOG_LEVEL日志等级(debug、info、error、warn)。
path/var/log/cnosdbCNOSDB_LOG_PATH日志存储目录。
max_file_count无限制CNOSDB_LOG_MAX_FILE_COUNT最多保留日志文件数。
file_rotationdailyCNOSDB_LOG_FILE_ROTATION日志文件切分时间间隔(daily、hourly、minutely、never)。

[security.tls_config]

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

[service]

参数默认环境变量描述
http_listen_port8902CNOSDB_SERVICE_HTTP_LISTEN_PORTHTTP 服务监听端口。
grpc_listen_port8903CNOSDB_SERVICE_GRPC_LISTEN_PORTGRPC 服务监听端口。
grpc_enable_gzipfalseCNOSDB_SERVICE_GRPC_ENABLE_GZIPmeta服务的接口数据传输,是否启用压缩
flight_rpc_listen_port8904CNOSDB_SERVICE_FLIGHT_RPC_LISTEN_PORTFlight RPC 服务监听端口。
tcp_listen_port8905CNOSDB_SERVICE_TCP_LISTEN_PORTTCP 服务监听端口。
enable_reporttrueCNOSDB_SERVICE_ENABLE_REPORT是否开启 CnosDB 自动上报遥测数据,主要跟踪 CnosDB 不同版本的使用率,这些数据有利于 CnosDB 的持续开发。每24小时上报一次数据,每条包含的字段为:实例运行时间、操作系统类型、数据库版本、实例运行的地理位置(只到省级或洲级)。

[cluster]

参数默认环境变量描述
raft_logs_to_keep5000CNOSDB_CLUSTER_RAFT_LOGS_TO_KEEPRaft日志保留条数,且每隔这些次数写入做一次snapshot。
snapshot_holding_time3600sCNOSDB_CLUSTER_SNAPSHOT_HOLDING_TIMERaft快照保留时间。
trigger_snapshot_interval600sCNOSDB_CLUSTER_TRIGGER_SNAPSHOT_INTERVALRaft触发快照时间间隔。
lmdb_max_map_size1024000000BCNOSDB_CLUSTER_LMDB_MAX_MAP_SIZE用于配置存储Raft状态数据大小。
heartbeat_interval3000msCNOSDB_CLUSTER_HEARTBEAT_INTERVALRaft复制算法心跳间隔。
send_append_entries_timeout5000msCNOSDB_CLUSTER_SEND_APPEND_ENTRIES_TIMEOUTRaft节点间发送日志超时时间。
install_snapshot_timeout3600000msCNOSDB_CLUSTER_INSTALL_SNAPSHOT_TIMEOUTRaft节点之间复制快照超时时间。

[trace]

参数默认环境变量描述
auto_generate_spanfalseCNOSDB_TRACE_AUTO_GENERATE_SPAN是否自动生成root span,当客户端未携带span context时有效。
max_spans_per_traceCNOSDB_TRACE_MAX_SPANS_PER_TRACEtrace中span和event总数的软限制。
batch_report_interval500msCNOSDB_TRACE_BATCH_REPORT_INTERVAL两个batch report之间的时间间隔。
batch_report_max_spansCNOSDB_TRACE_BATCH_REPORT_MAX_SPANSbatch report中span最大数量的软限制。
otlp_endpointCNOSDB_TRACE_OTLP_ENDPOINTOTLP collector的GRPC地址。例如:http://localhost:4317。

meta 文件描述

全局配置

参数默认环境变量描述
id1CNOSDB_META_GLOBAL_NODE_IDmeta节点的id,要求集群内唯一
host127.0.0.1CNOSDB_META_GLOBAL_RAFT_NODE_HOST用于和其他节点通信的host
port8901CNOSDB_META_GLOBAL_LISTEN_PORT用于和其他节点通信的port
data_path/var/lib/cnosdb/metaCNOSDB_META_GLOBAL_DATA_PATHmeta数据的存储路径
cluster_namecluster_xxxCNOSDB_META_GLOBAL_CLUSTER_NAME集群名字
grpc_enable_gzipfalseCNOSDB_META_GLOBAL_GRPC_ENABLE_GZIPmeta服务的接口数据传输,是否启用压缩
lmdb_max_map_sizefalseCNOSDB_META_CLUSTER_LMDB_MAX_MAP_SIZElmdb存储引擎使用空间最大值,存储meta数据和raft相关状态
heartbeat_interval3000msCNOSDB_META_CLUSTER_HEARTBEAT_INTERVALRaft复制算法心跳间隔。
raft_logs_to_keep10000CNOSDB_META_CLUSTER_RAFT_LOGS_TO_KEEPRaft触发快照的日志数量。
install_snapshot_timeout3600000msCNOSDB_META_CLUSTER_INSTALL_SNAPSHOT_TIMEOUTRaft节点之间复制快照超时时间。
send_append_entries_timeout5000msCNOSDB_META_CLUSTER_SEND_APPEND_ENTRIES_TIMEOUTRaft节点间发送日志超时时间。
usage_schema_cache_size2097152CNOSDB_META_SYS_CONFIG_USAGE_SCHEMA_CACHE_SIZEusage_schema的最大内存缓存。
cluster_schema_cache_size2097152CNOSDB_META_SYS_CONFIG_CLUSTER_SCHEMA_CACHE_SIZEcluster_schema的最大内存缓存。
system_database_replica1CNOSDB_META_SYS_CONFIG_SYSTEM_DATABASE_REPLICA系统数据库的replica。

[log]

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

[heartbeat]

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