暴露指标
Neo4j 支持以下方式暴露数据以进行监控:
-
Neo4j Ops Manager — 一种基于 UI 的工具,使 DBA(或任何管理员)能够监控、管理和操作企业中的所有 Neo4j DBMS。
-
CSV 文件 — 从 CSV 文件检索指标。默认启用。
-
JMX MBeans — 通过 JMX MBeans 暴露指标。默认启用。
-
Graphite — 将指标发送到 Graphite 或任何基于 Graphite 协议的监控工具。默认禁用。
-
Prometheus — 发布指标作为 Prometheus 端点以供轮询。默认禁用。
Neo4j Ops Manager
Neo4j 指标数据可以通过 Neo4j Ops Manager (NOM) 查看。有关如何安装和设置 NOM 以与 Neo4j DBMS 一起使用的更多信息,请参阅Neo4j Ops Manager 文档。
CSV 文件
将指标导出到 CSV 文件。
在 neo4j.conf 中添加以下设置,以启用将指标导出到本地 .CSV 文件:
# Enable the CSV exporter. Default is true.
server.metrics.csv.enabled=true
# Directory path for output files.
# Default is the /metrics directory under NEO4J_HOME.
server.directories.metrics=/local/file/system/path
# How often to store data. Default is 30 seconds.
server.metrics.csv.interval=30s
# The maximum number of CSV files that will be saved. Default is 7.
server.metrics.csv.rotation.keep_number=7
# The file size at which the CSV files will auto-rotate. Default is 10.00MiB.
server.metrics.csv.rotation.size=10.00MiB
# Compresses the metric archive files. Default is NONE. Possible values are NONE, ZIP, and GZ.
server.metrics.csv.rotation.compression=ZIP
server.metrics.csv.rotation.compression
选择文件轮转后要使用的压缩方案。由于 CSV 文件具有高度可压缩性,建议启用文件压缩以节省磁盘空间。
JMX MBeans
从 Neo4j 4.2.2 版本开始,JMX 指标默认通过 JMX MBeans 暴露。
# Enable the JMX MBeans integration. Default is true.
server.metrics.jmx.enabled=true
有关访问和调整指标的更多信息,请参阅Java 参考指南 → JMX 指标。
Graphite
将指标发送到 Graphite 或任何基于 Graphite 协议的监控工具。
将以下设置添加到 neo4j.conf 以启用与 Graphite 的集成:
# Enable the Graphite integration. Default is false.
server.metrics.graphite.enabled=true
# The hostname or IP address of the Graphite server.
# A socket address in the format <hostname>, <hostname>:<port>, or :<port>.
# If missing, the port or hostname is acquired from server.default_listen_address.
# The default port number for Graphite is 2003.
server.metrics.graphite.server=localhost:2003
# How often to send data. Default is 30 seconds.
server.metrics.graphite.interval=30s
# Prefix for Neo4j metrics on Graphite server.
server.metrics.prefix=neo4j
启动 Neo4j 并通过网页浏览器连接到 Graphite 以监控您的 Neo4j 指标。
如果您将 Graphite 服务器配置为主机名或 DNS 条目,您应该注意 JVM 会将主机名解析为 IP 地址,并且出于安全原因,默认情况下会无限期地缓存结果。这由 JVM 安全属性中 |
Prometheus
发布指标作为 Prometheus 端点以供轮询。
将以下设置添加到 neo4j.conf 以启用 Prometheus 端点。
# Enable the Prometheus endpoint. Default is false.
server.metrics.prometheus.enabled=true
# The hostname and port to use as Prometheus endpoint.
# A socket address is in the format <hostname>, <hostname>:<port>, or :<port>.
# If missing, the port or hostname is acquired from server.default_listen_address.
# The default is localhost:2004.
server.metrics.prometheus.endpoint=localhost:2004
当 Neo4j 完全启动后,Prometheus 端点将在配置的地址上可用。
您绝不应将 Prometheus 端点直接暴露给互联网。如果安全性至关重要,您应该将 |
如果您可以在内部网络中发送未加密的指标,例如将 server.metrics.prometheus.endpoint=10.0.0.123:2004
,则同一子网掩码内的所有服务器都将能够访问它。
如果您指定了更宽松的设置,例如 server.metrics.prometheus.endpoint=0.0.0.0:2004
,则应设置防火墙规则以防止任何未经授权的访问。传输中的数据仍未加密,因此绝不应通过任何不安全的网络。
当 Neo4j 指标通过 Prometheus 暴露时,它们的名称会根据 Prometheus 命名约定进行转换。 遵循以下通用规则:
原始 Neo4j 指标名称可以在 Prometheus 输出中找到,请参阅以 有关更多信息,请参阅Prometheus 文档。 |