Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dynamic-changes-to-configs #2613

Merged
merged 6 commits into from
Feb 28, 2023
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -108,19 +108,32 @@ NebulaGraph 为每个服务都提供了两份初始配置文件`<service_name>.c

## 修改配置

默认情况下,所有 NebulaGraph 服务从配置文件获取配置。用户可以按照以下步骤修改配置并使其生效。
- 默认情况下,所有 NebulaGraph 服务从配置文件获取配置。用户可以按照以下步骤修改配置并使其生效。
abby-cyber marked this conversation as resolved.
Show resolved Hide resolved

* 针对使用源码、RPM/DEB、TAR 包安装的集群:
* 针对使用源码、RPM/DEB、TAR 包安装的集群:

1. 使用文本编辑器修改目标服务的配置文件并保存。
1. 使用文本编辑器修改目标服务的配置文件并保存。

2. 选择合适的时间重启**所有** NebulaGraph 服务使修改生效。
2. 选择合适的时间重启**所有** NebulaGraph 服务使修改生效。

* 针对使用 Docker Compose 安装的集群:

1. 在文件`<install_path>/nebula-docker-compose/docker-compose.yaml`中,修改服务配置。
2. 在目录`nebula-docker-compose`内执行命令`docker-compose up -d`重启涉及配置变化的服务。
* 针对使用 Docker Compose 安装的集群:

1. 在文件`<install_path>/nebula-docker-compose/docker-compose.yaml`中,修改服务配置。
2. 在目录`nebula-docker-compose`内执行命令`docker-compose up -d`重启涉及配置变化的服务。

* 针对使用 Kubectl 方式创建的集群:

具体操作,参见[自定义集群的配置参数](../../nebula-operator/8.custom-cluster-configurations/8.1.custom-conf-parameter.md)。

- 动态修改配置。用户可以通过`curl`命令动态修改 NebulaGraph 服务的配置。例如,修改 Storage 服务的`wal_ttl`参数为`600`,命令如下:

* 针对使用 Kubectl 方式创建的集群:
```bash
curl -X PUT -H "Content-Type: application/json" -d'{"wal_ttl":"600"}' -s "http://192.168.15.6:19779/flags"
```

具体操作,参见[自定义集群的配置参数](../../nebula-operator/8.custom-cluster-configurations/8.1.custom-conf-parameter.md)。
其中,`{"wal_ttl":"600"}`为待修改的配置参数及其值;`192.168.15.6:19779`为 Storage 服务的 IP 地址和端口号。

!!! caution

- 动态修改配置功能仅适用于原型验证和测试环境,不建议在生产环境中使用。因为当`local_config`值设置为`true`时,动态修改的配置不会持久化,重启服务后配置会恢复为初始配置。
- 仅支持动态修改**部分**配置参数,具体支持的参数列表,参见[动态修改配置参数](#动态修改配置参数)。
abby-cyber marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,25 @@ Meta 服务提供了两份初始配置文件`nebula-metad.conf.default`和`nebul

配置文件内没有设置某个参数表示参数使用的是默认值。文件内只预设了部分参数的值,而且两份初始配置文件内的参数值也略有不同,本文的预设值以`nebula-metad.conf.default`为准。

!!! caution

配置文件中的部分参数值可以在运行时动态修改。本文将这些参数标记为支持运行时动态修改,并当`local_config`值设置为`true`时重启服务后配置会恢复为初始配置。详情参见[修改配置](1.configurations.md)。

如需查看所有的参数及其当前值,参见[配置管理](1.configurations.md)。

## basics 配置

| 名称 | 预设值 | 说明 |
| :----------- | :----------------------- | :------------------|
| `daemonize` | `true` | 是否启动守护进程。 |
| `pid_file` | `pids/nebula-metad.pid` | 记录进程 ID 的文件。 |
| `timezone_name` | - | 指定 NebulaGraph 的时区。初始配置文件中未设置该参数,如需使用请手动添加。系统默认值为`UTC+00:00:00`。格式请参见 [Specifying the Time Zone with TZ](https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html "Click to view the timezone-related content in the GNU C Library manual")。例如,东八区的设置方式为`--timezone_name=UTC+08:00`。 |
| 名称 | 预设值 | 说明 |是否支持运行时动态修改|
| :----------- | :----------------------- | :------------------|:------------------|
| `daemonize` | `true` | 是否启动守护进程。 |不支持|
| `pid_file` | `pids/nebula-metad.pid` | 记录进程 ID 的文件。 |不支持|
| `timezone_name` | - | 指定 NebulaGraph 的时区。初始配置文件中未设置该参数,如需使用请手动添加。系统默认值为`UTC+00:00:00`。格式请参见 [Specifying the Time Zone with TZ](https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html "Click to view the timezone-related content in the GNU C Library manual")。例如,东八区的设置方式为`--timezone_name=UTC+08:00`。 |不支持|

{{ ent.ent_begin }}

| 名称 | 预设值 | 说明 |
| :----------- | :----------------------- | :------------------|
|`license_path`|`share/resources/nebula.license`|企业版 License 路径。企业版需要用户[设置 License](../../4.deployment-and-installation/deploy-license.md) 才可以正常启动并使用企业版功能。仅企业版 NebulaGraph 需要设置本参数,其他周边工具如何设置 License,请参见相应周边工具的部署文档。|
| 名称 | 预设值 | 说明 |是否支持运行时动态修改|
| :----------- | :----------------------- | :------------------|:------------------|
|`license_path`|`share/resources/nebula.license`|企业版 License 路径。企业版需要用户[设置 License](../../4.deployment-and-installation/deploy-license.md) 才可以正常启动并使用企业版功能。仅企业版 NebulaGraph 需要设置本参数,其他周边工具如何设置 License,请参见相应周边工具的部署文档。|不支持|

{{ ent.ent_end }}

Expand All @@ -40,52 +44,52 @@ Meta 服务提供了两份初始配置文件`nebula-metad.conf.default`和`nebul

## logging 配置

| 名称 | 预设值 | 说明 |
| :------------- | :------------------------ | :------------------------------------------------ |
| `log_dir` | `logs` | 存放 Meta 服务日志的目录,建议和数据保存在不同硬盘。 |
| `minloglevel` | `0` | 最小日志级别,即记录此级别或更高级别的日志。可选值为`0`(INFO)、`1`(WARNING)、`2`(ERROR)、`3`(FATAL)。建议在调试时设置为`0`,生产环境中设置为`1`。如果设置为`4`,NebulaGraph 不会记录任何日志。 |
| `v` | `0` | VLOG 日志详细级别,即记录小于或等于此级别的所有 VLOG 消息。可选值为`0`、`1`、`2`、`3`、`4`、`5`。glog 提供的 VLOG 宏允许用户定义自己的数字日志记录级别,并用参数`v`控制记录哪些详细消息。详情参见 [Verbose Logging](https://github.com/google/glog#verbose-logging)。 |
| `logbufsecs` | `0` | 缓冲日志的最大时间,超时后输出到日志文件。`0`表示实时输出。单位:秒。 |
|`redirect_stdout`|`true` |是否将标准输出和标准错误重定向到单独的输出文件。 |
|`stdout_log_file` |`metad-stdout.log` | 标准输出日志文件名称。 |
|`stderr_log_file` |`metad-stderr.log` | 标准错误日志文件名称。 |
|`stderrthreshold` | `3` | 要复制到标准错误中的最小日志级别(`minloglevel`)。 |
| `timestamp_in_logfile_name` | `true` | 日志文件名称中是否包含时间戳。`true`表示包含,`false`表示不包含。 |
| 名称 | 预设值 | 说明 |是否支持运行时动态修改|
| :------------- | :------------------------ | :------------------------------------------------ |:------------------|
| `log_dir` | `logs` | 存放 Meta 服务日志的目录,建议和数据保存在不同硬盘。 |不支持|
| `minloglevel` | `0` | 最小日志级别,即记录此级别或更高级别的日志。可选值为`0`(INFO)、`1`(WARNING)、`2`(ERROR)、`3`(FATAL)。建议在调试时设置为`0`,生产环境中设置为`1`。如果设置为`4`,NebulaGraph 不会记录任何日志。 |支持|
| `v` | `0` | VLOG 日志详细级别,即记录小于或等于此级别的所有 VLOG 消息。可选值为`0`、`1`、`2`、`3`、`4`、`5`。glog 提供的 VLOG 宏允许用户定义自己的数字日志记录级别,并用参数`v`控制记录哪些详细消息。详情参见 [Verbose Logging](https://github.com/google/glog#verbose-logging)。 |支持|
| `logbufsecs` | `0` | 缓冲日志的最大时间,超时后输出到日志文件。`0`表示实时输出。单位:秒。 |不支持|
|`redirect_stdout`|`true` |是否将标准输出和标准错误重定向到单独的输出文件。 |不支持|
|`stdout_log_file` |`metad-stdout.log` | 标准输出日志文件名称。 |不支持|
|`stderr_log_file` |`metad-stderr.log` | 标准错误日志文件名称。 |不支持|
|`stderrthreshold` | `3` | 要复制到标准错误中的最小日志级别(`minloglevel`)。 |不支持|
| `timestamp_in_logfile_name` | `true` | 日志文件名称中是否包含时间戳。`true`表示包含,`false`表示不包含。 |不支持|

## networking 配置

| 名称 | 预设值 | 说明 |
| :----------------------- | :---------------- | :---------------------------------------------------- |
| `meta_server_addrs` | `127.0.0.1:9559` | 全部 Meta 服务的 IP 地址和端口。多个 Meta 服务用英文逗号(,)分隔。 |
|`local_ip` | `127.0.0.1` | Meta 服务的本地 IP 地址。本地 IP 地址用于识别 nebula-metad 进程,如果是分布式集群或需要远程访问,请修改为对应地址。|
| `port` | `9559` | Meta 服务的 RPC 守护进程监听端口。Meta 服务对外端口为`9559`,对内端口为`对外端口+1`,即`9560`,NebulaGraph 使用内部端口进行多副本间的交互。 |
| `ws_ip` | `0.0.0.0` | HTTP 服务的 IP 地址。 |
| `ws_http_port` | `19559` | HTTP 服务的端口。 |
|`ws_storage_http_port`|`19779`| HTTP 协议监听 Storage 服务的端口,需要和 Storage 服务配置文件中的`ws_http_port`保持一致。仅存算合并版 NebulaGraph 需要设置本参数。|
|`heartbeat_interval_secs` | `10` | 默认心跳间隔。请确保所有服务的`heartbeat_interval_secs`取值相同,否则会导致系统无法正常工作。单位:秒。 |
| 名称 | 预设值 | 说明 |是否支持运行时动态修改|
| :----------------------- | :---------------- | :---------------------------- |:------------------|
| `meta_server_addrs` | `127.0.0.1:9559` | 全部 Meta 服务的 IP 地址和端口。多个 Meta 服务用英文逗号(,)分隔。 |不支持|
|`local_ip` | `127.0.0.1` | Meta 服务的本地 IP 地址。本地 IP 地址用于识别 nebula-metad 进程,如果是分布式集群或需要远程访问,请修改为对应地址。|不支持|
| `port` | `9559` | Meta 服务的 RPC 守护进程监听端口。Meta 服务对外端口为`9559`,对内端口为`对外端口+1`,即`9560`,NebulaGraph 使用内部端口进行多副本间的交互。 |不支持|
| `ws_ip` | `0.0.0.0` | HTTP 服务的 IP 地址。 |不支持|
| `ws_http_port` | `19559` | HTTP 服务的端口。 |不支持|
|`ws_storage_http_port`|`19779`| HTTP 协议监听 Storage 服务的端口,需要和 Storage 服务配置文件中的`ws_http_port`保持一致。仅存算合并版 NebulaGraph 需要设置本参数。|不支持|
|`heartbeat_interval_secs` | `10` | 默认心跳间隔。请确保所有服务的`heartbeat_interval_secs`取值相同,否则会导致系统无法正常工作。单位:秒。 |支持|

!!! caution

必须在配置文件中使用真实的 IP 地址。否则某些情况下`127.0.0.1/0.0.0.0`无法正确解析。

## storage 配置

| 名称 | 预设值 | 说明 |
| :------------------- | :------------------------ | :------------------------------------------ |
|`data_path`|`data/meta`|meta 数据存储路径。|
| 名称 | 预设值 | 说明 |是否支持运行时动态修改|
| :------------------- | :------------------------ | :------------------------------------------ |:------------------|
|`data_path`|`data/meta`|meta 数据存储路径。|不支持|

## misc 配置

| 名称 | 预设值 | 说明 |
| :------------------------- | :-------- | :------------------------ |
|`default_parts_num` | `100` | 创建图空间时的默认分片数量。 |
|`default_replica_factor` | `1` | 创建图空间时的默认副本数量。 |
| 名称 | 预设值 | 说明 |是否支持运行时动态修改|
| :------------------------- | :-------- | :------------------------ |:------------------|
|`default_parts_num` | `100` | 创建图空间时的默认分片数量。 |不支持|
|`default_replica_factor` | `1` | 创建图空间时的默认副本数量。 |不支持|

## rocksdb options 配置

| 名称 | 预设值 | 说明 |
| :------------------- | :------------------------ | :------------------------------------------ |
|`rocksdb_wal_sync` |`true` |是否同步 RocksDB 的 WAL 日志。|
| 名称 | 预设值 | 说明 |是否支持运行时动态修改|
| :------------------- | :------------------------ | :------------------------------------------ |:------------------|
|`rocksdb_wal_sync` |`true` |是否同步 RocksDB 的 WAL 日志。|不支持|


{{ ent.ent_begin }}
Expand All @@ -95,11 +99,11 @@ Meta 服务提供了两份初始配置文件`nebula-metad.conf.default`和`nebul

仅企业版支持黑匣子功能配置。

| 名称 | 预设值 | 说明 |
| :------------------- | :------------------------ | :------------------------------------------ |
|`ng_black_box_switch` |`true` |是否开启黑匣子功能。|
|`ng_black_box_home` |`black_box` |存储黑匣子数据的目录名称。|
|`ng_black_box_dump_period_seconds` |`5` |黑匣子采集指标的时间间隔。单位:秒。|
|`ng_black_box_file_lifetime_seconds` |`1800` |采集指标后生成文件的保存时间。单位:秒|
| 名称 | 预设值 | 说明 |是否支持运行时动态修改|
| :------------------- | :------------------------ | :--------------------------- |:------------------|
|`ng_black_box_switch` |`true` |是否开启黑匣子功能。|不支持|
|`ng_black_box_home` |`black_box` |存储黑匣子数据的目录名称。|不支持|
|`ng_black_box_dump_period_seconds` |`5` |黑匣子采集指标的时间间隔。单位:秒。|不支持|
|`ng_black_box_file_lifetime_seconds` |`1800` |采集指标后生成文件的保存时间。单位:秒|支持|

{{ ent.ent_end }}
Loading