Skip to content

配置管理

EMQX Neuron 支持通过命令行环境变量配置文件的方式,对 EMQX Neuron 的配置参数进行修改,可以提供更加灵活的启动和运行方式。 如果同时配置了命令行环境变量配置文件,三者的优先级关系为:命令行 > 环境变量 > 配置文件

命令行

EMQX Neuron 的命令行位于 /bin/neuronex,它提供了以下的常用选项:

run 命令

run 命令用于在控制台上运行 EMQX Neuron。该命令将 EMQX Neuron 作为一个进程启动,并在终端中显示其输出。

shell
-c, --config 配置文件路径, 默认为 "etc/neuronex.yaml"
-k, --disable_kuiper 选择是否停用 eKuiper, 默认为 false, 即启用

例如:

sh
./bin/neuronex run -c etc/neuronex.yaml -k true

该命令将 EMQX Neuron 作为进程启动,并在终端中显示其输出, EMQX Neuron 不会启动 eKuiper

start 命令

start 命令用于在守护进程模式下启动 EMQX Neuron,该命令将 EMQX Neuron 作为守护进程启动并在后台运行。

stop 命令

stop 命令用于停止运行 EMQX Neuron。该命令将杀死 EMQX Neuron 进程。

sh
./bin/neuronex stop

install 命令

install 命令用于在 /etc/systemd/system path 中注册 EMQX Neuron 服务配置文件。

sh
./bin/neuronex install

uninstall 命令

uninstall 命令用于在 /etc/systemd/system path 中取消注册 EMQX Neuron 服务配置文件。

sh
./bin/neuronex uninstall

reset-password 命令

reset-password 命令用于将默认用户 admin 的密码修改为默认密码 0000。

sh
./bin/neuronex reset-password

环境变量

EMQX Neuron 支持在启动过程中读取环境变量来配置启动参数,目前支持的环境变量如下:

配置名配置作用
NEURONEX_DISABLE_AUTH设置为 1,EMQX Neuron 关闭 Token 鉴权认证;设置为0,EMQX Neuron 开启 Token 鉴权认证
NEURONEX__SERVER__ADMIN__PASSWORD修改 admin 用户默认密码
NEURONEX__SERVER__VIEWER__USERNAME新添加 viewer 用户的用户名
NEURONEX__SERVER__VIEWER__PASSWORD新添加 viewer 用户的密码
NEURONEX__LOG__MODE设置为 console, EMQX Neuron 会把日志打印到标准输出
KUIPER__BASIC__CONSOLELOG设置为 true, ekuiper 会把日志打印到标准输出
NEURON__LOG__MODE设置为 console, Neuron 会把日志打印到标准输出

环境变量映射为配置文件

EMQX Neuron 支持通过环境变量覆盖配置文件中的配置,当通过环境变量修改配置时,环境变量需要按照规定的格式设置。映射关系如下:

NEURONEX__SERVER__DISABLEAUTH => server.disableAuth in etc/neuronex.yaml
NEURONEX__LOG__MODE => log.mode in etc/neuronex.yaml

环境变量之间用“__”分隔,分隔后第一部分的内容匹配配置文件的文件名,其余内容匹配不同级别的配置项。

EMQX Neuron 支持通过环境变量配置数据处理模块 eKuiper 的 yaml 配置文件,详细配置项请参考eKuiper 配置。 eKuiper配置文件与环境变量映射关系和 EMQX Neuron 相同,如下:

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

举例,如要调大调用外部算法函数的超时时间(默认为5s),可以设置如下环境变量KUIPER__PORTABLE__RECVTIMEOUT => recvTimeout in etc/kuiper.yaml

# Docker 部署方式
docker run -d --name neuronex -p 8085:8085 -e KUIPER__PORTABLE__RECVTIMEOUT=20s neuronex/neuronex:latest

配置文件

EMQX Neuron 提供 YAML 格式文件,位于/opt/neuronex/etc/neuronex.yaml,用于配置与 EMQX Neuron 相关的参数。

server

server 部分定义了 EMQX Neuron 服务器的端口号。

  • port:EMQX Neuron 服务器的端口号,默认值为 8085。
  • disableAuth:EMQX Neuron 是否关闭 Token 认证。
  • disableKuiper:EMQX Neuron 是否停用 eKuiper
  • tls: 开启 TLS 认证
    • certFile: 开启 TLS 认证后,证书文件位置
    • keyFile: 开启 TLS 认证后,密钥文件位置
  • admin: 管理员账号
    • password: 管理员账户密码
  • viewer: 添加查看者账号
    • username: 查看者账号用户名
    • password: 查看者账号密码

neuron

neuron 部分定义 Neuron 的版本号和反向代理配置。

  • version:Neuron 的版本号。
  • reverseProxies:Neuron 的反向代理配置列表。
    • location: Neuron 的路径: Neuron 的路径。
    • proxyPath :Neuron 后端服务器的路径。

eKuiper

ekuiper 部分定义了 eKuiper 的版本号和反向代理配置。

  • version:eKuiper 的版本号。
  • reverseProxies :eKuiper 的反向代理配置列表。
    • location:eKuiper 的路径: eKuiper 的路径。
    • proxyPath :eKuiper 后端服务器的路径。
    • location: ekuiper ws服务路径。
    • proxyPath: ekuiper ws服务路径。

log

日志 "部分定义了 EMQX Neuron 服务器的日志配置。

  • mode :日志输出模式,选项为 console(输出到控制台)和 file(输出到文件)。
  • level:日志级别,选项包括 debug,info,warn,error ,fatal。
  • file:日志文件路径。
  • maxSize:日志文件轮换前的最大容量(以 MB 为单位)。
  • maxAge: 根据文件名中编码的时间戳保留旧日志文件的最长天数。
  • maxBackups: 保留的旧日志文件的最大数量。
  • syslogForward:日志远程转发配置。
    • enable:是否启用日志远程转发。
    • priority:选项包括 emerg,alert,crit,err,warning,notice,info,debug。
    • network:现在只支持 udp4
    • remoteAddr: 记录远程转发地址。
    • tag:记录远程转发标签。

official

  • offcial 部分定义生态 license 官网服务器信息。
    • url:生态 license 官网服务器地址。

默认配置如下

yaml
server:
  port: 8085
  disableAuth: false
  disableKuiper: false
  # tls:
  #   certFile: "etc/certs/neuronex.crt"
  #   keyFile: "etc/certs/neuronex.key"
#  admin:
#    password: "0000"
#  viewer:
#    username: "test"
#    password: "0000"

neuron:
  reverseProxies:
    - location: /api/neuron
      proxyPath: http://127.0.0.1:7000/api/v2

ekuiper:
  reverseProxies:
    - location: /api/ekuiper
      proxyPath: http://127.0.0.1:9081
    - location: /ws/ekuiper
      proxyPath: ws://127.0.0.1:10081

log:
  mode: file
  level: error
  file: log/neuronex.log
  maxSize: 20  # maximum size in megabytes of the log file before it gets rotated
  maxBackups: 5 # MaxBackups is the maximum number of old log files to retain
  syslog:
    enable: false
    # fatal/error/warning/notice/info/debug
    priority: "info"
    # now only support udp4
    network: "udp4"
    remoteAddr: ""
    # syslog protocol tag field, used for syslog server to identify which neuronex client send the syslog message
    tag: "neuronex"

official:
  url: https://neuronex-licenses.emqx.com

HTTPS 功能使用

EMQX Neuron现已支持HTTPS功能,提供了更安全的通信方式。此功能允许用户通过加密连接访问dashboard和API,增强了数据传输的安全性和隐私保护。EMQX Neuron 使用相同的端口(8085)同时支持HTTP和HTTPS。

开启 HTTPS 功能

在配置文件中取消注释以下字段,并在对应目录放入您的证书和私钥。

yaml
tls:
  certFile: "etc/certs/neuronex.crt"
  keyFile: "etc/certs/neuronex.key"

访问方式

客户端配置

  • 方式一:如使用自签名证书,将证书文件(neuronex.crt)添加到客户端的信任存储中
  • 方式二:客户端禁用证书验证

JWT Token 认证公钥

默认情况下 EMQX Neuron 对外暴露的 REST API 需要 JWT Token 认证, EMQX Neuron 支持用户将认证公钥放置在 EMQX Neuron 安装目录下的 etc 文件夹下,以实现 JWT Token 认证。

如果 EMQX Neuron 采用 Docker 部署的方式,则需要将本地目录映射进容器内 EMQX Neuron 的 etc 目录。注意首次映射时本地目录不能为空, 必须具有 neuronex.yaml 配置文件以及公钥文件。

在 EMQX Neuron 软件升级或者迁移时,需要考虑到 etc 目录的备份和恢复。

Dump文件

EMQX Neuron 默认安装启动后,发生 Crash 不生成 dump 文件。如需 dump 文件进行故障排查。需要生成dump文件的话,需要执行以下命令后开启dump文件存储。

shell
#!/bin/sh

set -e

core_pattern_path="/proc/sys/kernel/core_pattern"
target_pattern="/tmp/core-%e-%s"
sudo echo $target_pattern | sudo tee $core_pattern_path

core_pid_path="/proc/sys/kernel/core_uses_pid"
target_pid="0"
sudo echo $target_pid | sudo tee $core_pid_path

core_pattern=$(cat $core_pattern_path)
core_pid=$(cat $core_pid_path)

if [ "$core_pattern" = "$target_pattern" ] && [ "$core_pid" = "$target_pid" ];then
  echo "setting success"
else
  echo "setting failed"
fi