手动注册代理

代理注册是手动从 NOM UI 获取令牌信息以允许代理与 NOM 服务器通信的过程。

此步骤可以通过使用自动注册代理来省略,如自动注册代理中所述。

注册代理

在安装代理之前,需要将其注册到 NOM 服务器以提供服务器通信配置。

  1. 单击右上角的设置图标,它会将您重定向到全局设置。

    agents settings icon
  2. 单击代理,您将看到所有已注册代理的列表,以及它们上次联系时间和版本。

    agents
  3. 单击注册新代理按钮,输入新代理的名称和描述,然后单击注册按钮。

    agent new

  4. 代理将被创建,并且随机生成的代理凭据将显示在屏幕上。

    agent credentials

    凭据和其他关键代理配置值将以环境变量声明的形式显示。您可以将它们复制到主机上以方便代理配置。

  5. 捕获凭据后,单击确认复选框和完成按钮。新创建的代理将显示在代理列表中。

作为服务运行

以服务模式运行代理意味着代理进程在后台运行并监控实例。代理生命周期由操作系统服务管理器处理。最佳实践是以服务模式运行代理。

Linux (systemd)

服务安装

agent service install

设置参数

运行以下命令以编辑服务

systemctl edit neo4j-ops-manager-agent.service

通过设置 Environment 或 EnvironmentFile 选项来设置环境变量。例如,使用 Environment 选项,覆盖文件可能如下所示

[Service]
Environment="CONFIG_SERVER_ADDRESS=<server grpc address>"
Environment="CONFIG_TOKEN_URL=<server http login url>"
Environment="CONFIG_TOKEN_CLIENT_ID=<client id>"
Environment="CONFIG_TOKEN_CLIENT_SECRET=<client secret>"
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>"

请参阅完整的选项列表此处

启动和停止

要启动服务

systemctl start neo4j-ops-manager-agent.service

要停止服务

systemctl stop neo4j-ops-manager-agent.service

日志可通过 journalctl 获取,方法是

journalctl -u neo4j-ops-manager-agent

Windows

服务安装

agent service install

设置参数

  • 打开注册表编辑器并导航到HKLM\SYSTEM\CurrentControlSet\Services\neo4j-ops-manager-agent

  • 创建一个名为Environment的类型为REG_MULTI_SZ的键,并在单独的行上添加环境变量,例如

    CONFIG_SERVER_ADDRESS=<server grpc address>
    CONFIG_TOKEN_URL=<server http login url>
    CONFIG_TOKEN_CLIENT_ID=<client id>
    CONFIG_TOKEN_CLIENT_SECRET=<client secret>
    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>

请参阅完整的选项列表此处

启动和停止

要启动服务

agent service start

要卸载服务

agent service uninstall

作为控制台应用程序运行

在启动代理之前,应将代理的所有配置值设置为环境变量。

agent console

验证代理设置

确保代理已联系 NOM 服务器,处于联机状态,并正确报告 DBMS(s)。

  1. 返回到全局设置中的代理列表。

    agents
  2. 标识新创建的代理。

  3. 检查上次联系时间是否有值。

    • 如果代理从未联系过 NOM 服务器,请返回到代理运行的位置并检查日志。可能是服务器地址配置不正确,或者 TLS 证书未正确指定。

  4. 验证代理当前状态是否为联机

    • 如果代理当前未联机,请转到其运行位置并检查日志。

  5. 将鼠标悬停在新添加的代理上,然后从右侧菜单中选择“查看配置”以显示代理配置。检查配置是否符合预期。

  6. 导航到主页(如果此代理是第一个管理 DBMS 中实例的代理,则 DBMS 可能需要几分钟才能显示)。

  7. 选择警报选项卡,并确保新代理管理的任何 DBMS 都没有警报。

代理配置参考

此处的表格列出了要设置的配置键和值。

服务器通信配置(手动注册代理)

需要设置以下环境变量以允许代理与 NOM Server 通信。从注册步骤中代理凭据对话框中复制前四个。

变量 描述 示例

CONFIG_SERVER_ADDRESS

服务器 GRPC 地址

server:9090

CONFIG_TOKEN_URL

服务器令牌 URL

https://server:8080/api/login/agent

CONFIG_TOKEN_CLIENT_ID

代理的客户端 ID

` 3ff98478-d6d2-4e1b-b816-e758c835f076`

CONFIG_TOKEN_CLIENT_SECRET

代理的客户端密钥

secret

CONFIG_TLS_TRUSTED_CERTS

PEM 编码的受信任 CA 列表 ()

/path/to/a/pem/file

由于代理-服务器通信需要加密,因此您需要配置代理,使其信任服务器的证书。包含受信任证书列表(PEM 编码)的文件可以通过CONFIG_TLS_TRUSTED_CERTS环境变量指定。大多数操作系统默认使用系统范围的受信任证书,但在 Windows 上并非如此。因此,您必须在 Windows 上设置此环境变量。

代理日志记录配置

以下环境变量指定代理的日志配置

变量 描述 示例

CONFIG_LOG_LEVEL

日志级别 (debug,info,warn,error)

info

CONFIG_LOG_FILE

日志文件路径

/var/log/nom-agent/log.txt

受监控实例配置

需要设置以下环境变量以允许代理访问实例。

如果同一个代理监控多个 DBMS,请重复并枚举每个 DBMS 的配置,将下面的数字1替换为23,依此类推,以表示每个实例。例如,将第一个 DBMS 命名为CONFIG_INSTANCE_1_NAME,第二个命名为CONFIG_INSTANCE_2_NAME,依此类推。

变量 描述 示例

CONFIG_INSTANCE_1_NAME

第一个实例的名称

my-instance-1

CONFIG_INSTANCE_1_BOLT_URI

第一个实例的 Bolt URI,使用 bolt 或 bolt+s 协议

bolt://localhost:7687 或 bolt+s://localhost:7687 或 bolt+ssc://localhost:7687,具体取决于本地数据库的设置

CONFIG_INSTANCE_1_BOLT_USERNAME

第一个实例的 Bolt 用户名

neo4j

CONFIG_INSTANCE_1_BOLT_PASSWORD

第一个实例的 Bolt 密码

password

您为CONFIG_INSTANCE_n_NAME指定的实例名称将用于在 NOM 中标识您的实例。因此,在整个集群中指定唯一的名称非常重要。

查询日志收集配置

变量 描述 示例

CONFIG_INSTANCE_1_QUERY_LOG_PORT

代理连接到 Neo4j log4j 附加程序的端口。如果没有设置,则查询日志收集功能将被视为已禁用。

9500

CONFIG_INSTANCE_1_LOG_CONFIG_PATH

实例log4j 配置文件的路径。如果设置,则会自动追加适当的日志附加程序(包括上面指定的端口)。

/var/lib/neo4j/conf/server-logs.xml

CONFIG_INSTANCE_1_QUERY_LOG_MIN_DURATION

要记录的查询的最小持续时间(毫秒)(可选)

100

CONFIG_INSTANCE_1_QUERY_LOG_MIN_DURATION_FILTER_ERRORS

启用过滤器以过滤掉低于最小持续时间(毫秒)的错误(可选)

true

CONFIG_INSTANCE_1_QUERY_LOG_DISABLE_OBFUSCATION

禁用查询中的字符串文字混淆(可选)

true

CONFIG_INSTANCE_1_QUERY_LOG_INCLUDE_AGENT

收集并显示来自 NOM 代理的查询(可选)

true

代理应该只监控本地实例,不应该配置为连接到远程实例。

参考 **Neo4j 实例需求** 以确保所有实例都满足 NOM 管理的需求。