Neo4j 实例要求

为了能够由 NOM 管理,Neo4j 实例**必须**运行 Neo4j 企业版 v4.4.2 或更高版本(包括所有 5.x 版本)。

查询日志收集

日志管理器仅与 Neo4j 5+ 版本兼容。

为了使查询日志收集功能正常工作,需要在neo4j.conf 文件中设置以下配置设置

  • db.logs.query.enabled 设置为 INFOVERBOSE

  • db.logs.query.threshold 未设置(默认为 0)或设置为合理的值。此设置充当任何已完成查询出现在日志中的执行时间下限。因此,如果此值设置得太高,您要监控的查询可能不会记录在日志中。将此值设置为零会记录每个查询。

  • db.logs.query.annotation_data_format 未设置或设置为 CYPHER(默认值)。其他格式会导致 NOM 中的查询日志条目部分或完全丢失。

  • db.logs.query.annotation_data_as_json_enabled 未设置或设置为 false(默认值)。true 会导致 NOM 中的查询日志条目部分或完全丢失。

查找服务器日志配置 (server-logs.xml) 的位置

服务器日志配置文件的位置在 neo4j.conf 中配置(请参阅有关运维手册 → server.logs.config 配置设置的文档)。

可以使用以下 Cypher 查询找出服务器日志配置的当前有效位置

./cypher-shell "CALL dbms.listConfig() YIELD name, value WHERE name='server.logs.config' RETURN value"

确保服务器日志配置存在,否则 NOM 代理将无法向其中添加查询日志收集配置。

指标收集

为了使指标收集功能正常工作,需要在neo4j.conf 文件中设置以下配置设置

对于 4.4.x 版本

  • metrics.prometheus.endpoint=127.0.0.1:2004

  • metrics.prometheus.enabled=true

  • metrics.enabled=true

  • metrics.filter=*

  • metrics.jmx.enabled=true

  • metrics.namespaces.enabled=true

对于 5.x 版本

  • server.metrics.prometheus.endpoint=127.0.0.1:2004

  • server.metrics.prometheus.enabled=true

  • server.metrics.enabled=true

  • server.metrics.filter=*

  • server.metrics.jmx.enabled=true

用户权限

代理使用配置的用户登录到 DBMS 以启用某些功能,例如查看关系和标签类型、管理权限和查看配置值。如果您不想使用内置的 admin 用户,可以使用以下命令创建具有完全功能所需最低权限集的角色:

此角色定义不能用于 Ops Manager 服务器连接到持久性数据库的用户,因为它权限不足。此 operator 角色仅应用于您要使用代理监控的 DBMS。

CREATE ROLE `operator`;

GRANT ACCESS ON DATABASE * TO `operator`;
GRANT MATCH {*} ON GRAPH * NODE * TO `operator`;
GRANT MATCH {*} ON GRAPH * RELATIONSHIP * TO `operator`;
GRANT SHOW CONSTRAINT ON DATABASE * TO `operator`;
GRANT SHOW INDEX ON DATABASE * TO `operator`;

GRANT EXECUTE PROCEDURE * ON DBMS TO `operator`;
GRANT EXECUTE ADMIN PROCEDURES ON DBMS TO `operator`;
GRANT SHOW SERVERS ON DBMS TO `operator`;

// Required for security manager:
GRANT USER MANAGEMENT ON DBMS TO `operator`;
GRANT ROLE MANAGEMENT ON DBMS TO `operator`;
GRANT PRIVILEGE MANAGEMENT ON DBMS TO `operator`;