自动注册代理
代理自动注册省略了从 NOM UI 手动获取令牌信息,如 手动注册代理 中所述。相反,提供 NOM 服务器的最小配置以允许代理连接并自动注册。授权通过双向身份验证授予。
自动注册代理在自动化环境中很有用,例如 Neo4j 实例的 Kubernetes 集群,其中实例是动态创建和管理的。
作为服务运行
以服务模式运行代理意味着代理进程在后台运行并监控实例。代理生命周期由操作系统服务管理器处理。最佳实践是以服务模式运行代理。
Linux (systemd)
设置参数
运行以下命令以编辑服务
systemctl edit neo4j-ops-manager-agent.service
通过设置 Environment 或 EnvironmentFile 选项设置环境变量。例如,使用 Environment 选项,覆盖文件可能如下所示
[Service]
Environment="CONFIG_SERVER_GRPC_ADDRESS=<server grpc address>"
Environment="CONFIG_SERVER_HTTP_ADDRESS=<server http address>"
Environment="CONFIG_TLS_TRUSTED_CERTS=</path/to/trusted/certs/pem/file>"
Environment="CONFIG_LOG_FILE=</path/to/nom-agent/log.txt>"
Environment="CONFIG_INSTANCE_1_NAME=<instance name>"
Environment="CONFIG_INSTANCE_1_BOLT_URI=<bolt uri of the local instance>"
Environment="CONFIG_INSTANCE_1_BOLT_USERNAME=<local instance user name>"
Environment="CONFIG_INSTANCE_1_BOLT_PASSWORD=<local instance password>"
Environment="CONFIG_INSTANCE_1_QUERY_LOG_PORT=<an available port>"
Environment="CONFIG_INSTANCE_1_LOG_CONFIG_PATH=<path to server-logs.xml>"
Environment="CONFIG_TLS_CLIENT_CERT=<path to agent TLS cert>"
Environment="CONFIG_TLS_CLIENT_KEY=<path to agent TLS key>"
请参考选项的完整列表 此处。
Windows
设置参数
-
打开注册表编辑器并导航到
HKLM\SYSTEM\CurrentControlSet\Services\neo4j-ops-manager-agent
。 -
创建一个名为
Environment
的REG_MULTI_SZ
类型的键,并在每行添加您的环境变量,例如CONFIG_SERVER_GRPC_ADDRESS=<server grpc address> CONFIG_SERVER_HTTP_ADDRESS=<server http address> CONFIG_TLS_TRUSTED_CERTS=</path/to/the/trusted/certs/pem> CONFIG_LOG_FILE=</path/to/nom-agent/log.txt> CONFIG_INSTANCE_1_NAME=<instance name> CONFIG_INSTANCE_1_BOLT_URI=<bolt uri of the local instance> CONFIG_INSTANCE_1_BOLT_USERNAME=<local instance user name> CONFIG_INSTANCE_1_BOLT_PASSWORD=<local instance password> CONFIG_INSTANCE_1_QUERY_LOG_PORT=<an available port> CONFIG_INSTANCE_1_LOG_CONFIG_PATH=<path to server-logs.xml> CONFIG_TLS_CLIENT_CERT=<path to agent TLS cert> CONFIG_TLS_CLIENT_KEY=<path to agent TLS key>
请参考选项的完整列表 此处。
作为控制台应用程序运行
所有 配置 代理的值应在启动代理之前设置为环境变量。
agent console -s
or
agent console --self-register
验证代理设置
确保代理已联系 NOM 服务器、在线且正在正确报告 DBMS。
-
返回到全局设置中的代理列表。
-
在列表中找到自动注册的代理。
-
如果代理不在列表中,请返回到代理正在运行的位置并检查日志。可能是服务器地址配置错误或 TLS 证书未正确指定。
-
-
成功注册后,代理状态将变为
Offline
,直到代理接收令牌信息并重新连接到 NOM 服务器。 -
等待代理状态变为
Online
,这表示代理已成功重新连接到 NOM 服务器。这可能需要几分钟时间。 -
如果代理状态不是
Online
,请分别检查服务器日志和代理日志中的错误。 -
将鼠标悬停在新增的代理上,从右侧菜单中选择“查看配置”以显示代理配置。检查配置是否符合预期。
-
导航到主页(如果此代理是第一个管理 DBMS 中实例的代理,则 DBMS 可能需要几分钟才能出现)。
-
选择“警报”选项卡,确保没有针对新代理管理的任何 DBMS 的警报。
代理配置参考
注册配置
变量 | 描述 | 示例 |
---|---|---|
|
服务器 GRPC 地址 |
server:9090 |
|
服务器 HTTP 地址(**应包含协议方案**) |
https://server:8080 |
|
PEM 编码的受信任 CA 列表 () |
|
由于代理-服务器通信需要加密,因此您需要配置代理以使其信任服务器的证书。包含受信任证书列表(PEM 编码)的文件可以通过 |
可选配置,用于指定 代理配置文件 的位置
变量 | 描述 | 示例 | 默认 |
---|---|---|---|
|
Neo4j 实例主机上的持久性文件路径 |
"file://path/to/" |
如果设置了 |
代理配置位置必须是持久性类型。 |
可以使用这些配置参数可选地指定代理元数据
变量 | 描述 | 示例 |
---|---|---|
|
代理的可选名称,便于在自动注册的代理之间进行区分 |
home-db-agent |
|
代理的可选描述,便于在自动注册的代理之间进行区分 |
用于监控主数据库的代理 |
建议在将多个代理自动注册到类似主机上时设置代理名称和描述,因为这会导致 UI 中出现类似名称的代理,从而造成混淆。 |
双向身份验证的配置
NOM 服务器立即授权使用受信任证书注册的代理。
要启用双向身份验证,需要以下配置
变量 | 描述 | 示例 |
---|---|---|
|
用于双向 TLS 的 PEM 编码代理证书 |
|
|
用于双向 TLS 的 PEM 编码代理密钥 |
|
除了上述配置之外,NOM 服务器还需要配置为信任代理证书,如 此处 所述。 |
测试和演示环境中代理的自签名证书可以按照 此处 文档进行生成。一个未绑定到代理主机 IP 的代理证书可用于配置多个代理,这将减少需要维护的代理证书数量。 |
代理日志记录配置
以下环境变量指定代理的启动配置
变量 | 描述 | 示例 |
---|---|---|
|
日志级别(debug、info、warn、error) |
info |
|
日志文件的路径 |
|
监控实例配置
以下环境变量需要设置,以允许代理访问实例。
如果同一代理监控多个 DBMS,请重复并枚举每个 DBMS 的配置,将下面的数字 |
变量 | 描述 | 示例 |
---|---|---|
|
第一个实例的名称 |
my-instance-1 |
|
第一个实例的 Bolt URI,使用 bolt 或 bolt+s 协议 |
bolt://localhost:7687 或 bolt+s://localhost:7687 或 bolt+ssc://localhost:7687,取决于本地数据库的设置 |
|
第一个实例的 Bolt 用户名 |
neo4j |
|
第一个实例的 Bolt 密码 |
password |
您为 |
查询日志收集配置
变量 | 描述 | 示例 |
---|---|---|
|
代理连接到 Neo4j log4j 附加程序的端口。如果未设置,则查询日志收集功能将被视为已禁用。 |
9500 |
|
指向实例 log4j 配置文件 的路径。如果设置,则会自动附加相应的日志附加程序(包括上面指定的端口)。 |
/var/lib/neo4j/conf/server-logs.xml |
|
要记录的查询的最小持续时间(以毫秒为单位)(可选) |
100 |
|
启用低于最小持续时间(以毫秒为单位)的错误过滤器(可选) |
true |
|
禁用查询中的字符串文字混淆(可选) |
true |
|
收集并显示来自 NOM 代理的查询(可选) |
true |
代理应该只监控本地实例,并且不应该配置为连接到远程实例。 |
请参阅 Neo4j 实例要求,以确保所有实例都满足 NOM 管理要求。 |