跳转至
开发版采用单机部署,无需产品 License 文件。需要多机部署或大规模性能测试? 了解企业版

悦数图管理配置

本文介绍悦数图管理的配置。

Note

如果悦数图管理启动后修改了配置文件,需要重启悦数图管理以使更改生效。

默认配置文件

配置文件位置取决于安装方式:

  • TAR 包:解压目录下的etc/config.yaml。
  • RPM 或 DEB 包:/etc/nebula-studio/config.yaml。
  • Docker Compose:默认使用镜像内的配置,无需准备配置文件。如需自定义配置,请按安装悦数图管理中的“自定义配置”步骤,将config-release.yaml挂载到容器内的/app/etc/config-release.yaml。修改已挂载的文件后,在部署目录运行docker compose -f studio-compose.yaml restart studio。

RPM 和 DEB 包的其他文件位置如下,请参见 Linux 安装包说明:

内容 路径
程序文件 /usr/lib/nebula-studio
可选环境文件 /etc/nebula-studio/studio.env
SQLite 数据库 /var/lib/nebula-studio/studio.db
应用日志 /var/log/nebula-studio

以下示例展示配置项。RPM 和 DEB 包请以安装后的/etc/nebula-studio/config.yaml为准,尤其不要将示例中的相对路径./data/studio.db直接覆盖包内的 SQLite 路径。

Name: studio-api
Host: 0.0.0.0
Port: 7001
Timeout: 30000
DefaultHost: '' # 可选,登录页面显示的默认数据库地址,例如 "graph0"
DefaultPort: '' # 可选,登录页面显示的默认数据库端口,例如 "9669"
Log:
  Mode: file
  Level: info
  KeepDays: 7
Assets:
  Gzip: true
Auth:
  TokenName: 'studio_token'
  TokenSecret: '${STUDIO_TOKEN_SECRET}'
  TokenMaxAge: 86400
  EncryptPassphrase: '${STUDIO_ENCRYPT_PASSPHRASE}'

# SSO 配置(可选)
SSO:
  Oauth2:
    Enable: false # 设置为 true 以启用 OAuth2 单点登录
    ServerName: '' # OAuth2 服务端名称,必须与数据库中配置的服务端名称一致
    AuthURL: '' # OAuth2 授权地址
    AccessTokenURL: '' # 换取 OAuth2 Token 的地址
    ClientID: '' # OAuth2 客户端 ID
    ClientSecret: '' # OAuth2 客户端密钥
    RedirectURL: '' # 外部可访问的图管理回调地址
    UserInfoURL: '' # OIDC userinfo 接口地址
    Scope: 'openid profile email' # 请求的 OAuth2 Scope
    UsernameField: '' # 可选,留空时使用内置的用户名字段查找顺序

Database:
  Enable: true
  # 数据库类型:mysql、sqlite3
  Dialect: sqlite3
  AutoMigrate: true
  Host: 127.0.0.1 # 数据库主机地址
  Port: 3306 # 数据库端口
  Username: '' # 仅 MySQL 需要配置
  Password: '' # 仅 MySQL 需要配置,通过部署配置注入
  Name: studio # 数据库名称
  # Silent(1)、Error(2)、Warn(3)、Info(4)
  LogLevel: 4
  SqliteFilePath: './data/studio.db' # 仅 sqlite3 需要配置
Nebula:
  ClientMaxNum: 200 # 可同时连接的不同用户的最大数量
  ClientPoolMaxWait: 10 # 等待客户端连接池的最长时间;单位:秒
  ClientPoolConnsMaxOpen: 100 # 单个连接池中可创建的最大连接数
  ClientPoolConnsMinOpen: 1 # 单个连接池中可创建的最小连接数
  ClientMaxIdleConns: 5 # 单个连接池中的最大空闲连接数
  ClientExpiredDuration: 14400 # 单个客户端的过期时长,系统每 24 小时检查一次;单位:分钟
  ClientRequestTimeout: 10 # 客户端连接超时时间,默认 10 秒;单位:秒

认证密钥

配置示例支持通过环境变量STUDIO_TOKEN_SECRET和STUDIO_ENCRYPT_PASSPHRASE注入认证密钥。这些变量名由图管理识别,值需根据部署环境设置;默认部署可以不设置。

未配置时,服务会生成随机值。使用随机值时,重启服务会使已有会话失效,用户需要重新登录。生产环境应为部署配置稳定的密钥,并在重启后保持不变。不同部署应使用各自的密钥。

STUDIO_ENCRYPT_PASSPHRASE设置后必须为 16、24 或 32 字节。

配置项

下表描述了悦数图管理的配置项:

配置项 说明 默认值
Name 日志和跟踪器中显示的服务名称。 studio-api
Host 用于访问悦数图管理的监听地址。 0.0.0.0,表示监听所有网络接口。
Port 用于访问悦数图管理的端口。 7001
Timeout 处理请求的超时时间(毫秒)。 30000
DefaultHost 登录页面显示的默认悦数图数据库开发版地址,可选。例如graph0。 ""
DefaultPort 登录页面显示的默认悦数图数据库开发版端口,可选。例如9669。 ""
Log.Mode 日志输出模式。 file,表示日志输出到文件。TAR 包的日志位于解压目录的logs下,RPM 和 DEB 包的日志位于/var/log/nebula-studio。Docker Compose 默认未将日志目录挂载到宿主机;如需保留文件日志,请配置持久化存储。
Log.Level 日志级别。更多信息,请参见日志配置。 info,表示记录级别为info及更高级别的日志。
Log.KeepDays 日志保留天数。 7
Assets.Gzip 是否启用静态资源的 Gzip 压缩。 true
Auth.TokenName 用于登录的认证令牌的名称。 studio_token
Auth.TokenSecret 用于签名认证令牌的密钥。通过环境变量STUDIO_TOKEN_SECRET配置。 未设置时随机生成
Auth.EncryptPassphrase 用于加密认证信息的 AES 口令。通过环境变量STUDIO_ENCRYPT_PASSPHRASE配置;设置时必须为 16、24 或 32 字节。 未设置时随机生成
Auth.TokenMaxAge 认证令牌的有效期(秒)。 86400
Database.Enable 是否启用用于存储悦数图管理元数据的数据库。图探索依赖该数据库;关闭后,探索快照、设置等请求将失败,并返回studio database is disabled。 true
Database.Dialect 用于存储悦数图管理元数据的数据库类型。有效值为mysql和sqlite3 sqlite3
Database.AutoMigrate 是否自动迁移数据库模式。 true
Database.Host 数据库的主机地址。 127.0.0.1
Database.Port 数据库的端口号。 3306
Database.Username 数据库的用户名,仅 MySQL 需要配置。 ""
Database.Password 数据库用户的密码,仅 MySQL 需要配置,通过部署配置注入。 ""
Database.Name 数据库的名称。 studio
Database.LogLevel 数据库操作的日志级别。有效值为1(不记录日志)、2(只记录错误)、3(记录告警和错误)和4(记录信息消息、告警和错误)。 4
Database.SqliteFilePath SQLite 数据库的文件路径。此选项仅在Database.Dialect设置为sqlite3时生效。 TAR 包和 Docker 镜像为./data/studio.db;RPM 和 DEB 包位于/var/lib/nebula-studio/studio.db。
Nebula.ClientMaxNum 可同时连接到服务的最大用户数。 200
Nebula.ClientPoolMaxWait 等待客户端连接池的最长时间(秒)。 10
Nebula.ClientPoolConnsMaxOpen 单个连接池中可创建的最大连接数。 100
Nebula.ClientPoolConnsMinOpen 单个连接池中可创建的最小连接数。 1
Nebula.ClientMaxIdleConns 单个连接池中的最大空闲连接数。 5
Nebula.ClientExpiredDuration 空闲连接的过期时间(分钟)。如果客户端保持空闲状态的时间超过指定的持续时间,连接将自动终止。系统每24小时检查连接的过期状态。 14400
Nebula.ClientRequestTimeout 客户端连接的超时时间(秒)。 10
SSO.Oauth2.Enable 是否启用 OAuth2 单点登录。 false
SSO.Oauth2.ServerName OAuth2 服务端名称,必须与悦数图数据库开发版中配置的服务端名称一致。 ""
SSO.Oauth2.AuthURL OAuth2 授权地址。 ""
SSO.Oauth2.AccessTokenURL 换取 OAuth2 Token 的地址。 ""
SSO.Oauth2.ClientID OAuth2 客户端 ID。 ""
SSO.Oauth2.ClientSecret OAuth2 客户端密钥。 ""
SSO.Oauth2.RedirectURL OAuth2 授权后外部可访问的悦数图管理回调地址。 ""
SSO.Oauth2.UserInfoURL 用于获取用户名的 OIDC UserInfo 接口地址。 ""
SSO.Oauth2.Scope 请求的 OAuth2 Scope。 "openid profile email"
SSO.Oauth2.UsernameField 从 UserInfo 响应中提取用户名的字段。留空时,按以下内置顺序查找:preferred_username > username > login > email > sub。 ""