第 25 章 监视服务器
注意 | |
许多监视器特性只在Neo4j服务器高级版和企业版才可以使用。 |
为了能获取Neo4j数据库的健康状况,可以采用不同级别的监控等级。这些功能一般都是通过 JMX呈现出来。
25.1. 调整远程JMX访问Neo4j的服务器
默认情况下,Neo4j高级版和企业版都不允许远程的JMX连接,因为在 conf/neo4j-wrapper.conf配置文件中的相关配置是被注释掉了的。为了启用该功能, 你必须去掉配置 com.sun.management.jmxremote前面的 #。
当被注释掉时,默认值允许以某种角色远程JMX连接的,查看 conf/jmx.password, conf/jmx.access和 conf/wrapper.conf文件了解细节。
确保 conf/jmx.password文件有正确的文件权限。文件的所有者必须是运行服务的用户,而且只能对该用户只读。在Unix系统中,权限码应该是: 0600。
在Windows中,按照 http://docs.oracle.com/javase/6/docs/technotes/guides/management/security-windows.html设置正确的权限。如果你以本地系统账户允许服务,文件的所有者和访问者必须是SYSTEM。
使用这个配置,使用 <IP-OF-SERVER>:3637,用户名: monitor,密码: Neo4j,你应该能连接到Neo4j服务端的JMX监控上面。
特别注意你可能必须升级 conf/jmx.password和 conf/jmx.access文件的权限或者拥有者,查看 conf/wrapper.conf文件了解细节。
警告 | |
为了最大的安全性,请至少调整在文件 conf/jmx.password中的密码设置。 |
要获取更多细节,请查看: http://download.oracle.com/javase/6/docs/technotes/guides/management/agent.html
25.2. 如何使用JMX和JConsole连接到一个Neo4j实例
首先,启动你的嵌入数据库或者Neo4j服务端,使用:
1 | $NEO4j_HOME/bin/neo4jstart |
现在启动JConsole:
1 | $JAVA_HOME/bin/jconsole |
连接到你的Neo4j数据库实例的进程:
图 25.1. 连接JConsole到Neo4j的Java进程
现在,与通过JVM暴露的MBeans无关,你将在MBeans选项卡处看到一个 org.neo4j部分。使用它,你可以访问所有Neo4j的监控信息。
为了打开JMX的远程监控访问,请查看第 25.1 节 “调整远程JMX访问Neo4j的服务器”和 the JMX documention。当使用Neo4j嵌入模式时,确保传递 com.sun.management.jmxremote.port=portNum或者其他配置作为JVM参数给你的允许的JAVA进程。
图 25.2. Neo4j MBeans 浏览
25.3. 如何编程连接到JMX监视器
为了可编程连接到Neo4j JMX 服务端,在Neo4j 管理组件中有一些方法可以帮助你找到最常用的监控属性。范例请查看:第 4.8 节 “读取一个管理配置属性”。
一旦你获取了这些信息,你可以使用它,把参数值暴露给 SNMP或者其他监控系统的实例使用。
部分 V. 工具集
工具集部分描述了可以使用的Neo4j工具以及如何使用它们。