配置
eKuiper 的配置是基于 yaml 文件,允许通过更新文件、环境变量和 REST API 进行配置。
配置范围
eKuiper 的配置包括
etc/kuiper.yaml
:全局配置文件。对其进行修改需要重新启动 eKuiper 实例。请参考基本配置文件了解详情。etc/sources/${source_name}.yaml
:每个源的配置文件,用于定义默认属性(MQTT源除外,其配置文件为etc/mqtt_source.yaml
)。详情请参考每个源的文档。例如,MQTT 源和 Neuron 源涵盖的配置项目。etc/connections/connection.yaml
:共享连接配置文件。
配置方法
用户可以通过3种方法设置配置,按优先级排序。
- 管理控制台/REST API
- 环境变量
- etc 文件夹中的 Yaml 文件
yaml 文件通常被用来设置默认配置。在裸机上部署时,用户可以很容易地访问文件系统,因此通常通过配置修改配置文件来更改配置。
当在 docker 或 k8s 中部署时,操作文件就不容易了,少量的配置可以通过环境变量来设置或覆盖。而在运行时,终端用户将使用管理控制台来动态地改变配置。eKuiper 管理控制台中的"配置"页面可以帮助用户直观地修改配置。
环境变量的语法
从环境变量到配置 yaml 文件之间有一个映射。当通过环境变量修改配置时,环境变量需要按照规定的格式来设置,例如。
text
KUIPER__BASIC__DEBUG => basic.debug in etc/kuiper.yaml
MQTT_SOURCE__DEMO_CONF__QOS => demo_conf.qos in etc/mqtt_source.yaml
EDGEX__DEFAULT__PORT => default.port in etc/sources/edgex.yaml
CONNECTION__EDGEX__REDISMSGBUS__PORT => edgex.redismsgbus.port int etc/connections/connection.yaml
环境变量用__
分隔,分隔后的第一部分内容与配置文件的文件名匹配,其余内容与不同级别的配置项匹配。文件名可以是 etc
文件夹中的 KUIPER
和 MQTT_SOURCE
;或 etc/connection
文件夹中的 CONNECTION
。其余情况,映射文件应在 etc/sources
文件夹下。
命令行参数
eKuiper 支持从命令行参数的方式传入配置,如下:
配置名 | 类型 | 配置作用 |
---|---|---|
loadFileType | string | 设置加载文件的方式,支持 "relative" 与 "absolute" 两种方式 |
etc | string | 设置 etc 目录的绝对路径,只有当 loadFileType 是 "absolute" 时有效 |
data | string | 设置 data 目录的绝对路径,只有当 loadFileType 是 "absolute" 时有效 |
log | string | 设置 log 目录的绝对路径,只有当 loadFileType 是 "absolute" 时有效 |
plugins | string | 设置 plugins 目录的绝对路径,只有当 loadFileType 是 "absolute" 时有效 |
举例如下:
sh
./bin/kuiperd -loadFileType absolute -etc /etc/kuiper