Apache zookeeper 如何在zookeeper zkServer.cmd中启用带有端口的远程jmx

Apache zookeeper 如何在zookeeper zkServer.cmd中启用带有端口的远程jmx,apache-zookeeper,Apache Zookeeper,这里是我的zkServer.cmd文件: @echo off setlocal call "%~dp0zkEnv.cmd" set ZOOMAIN=org.apache.zookeeper.server.quorum.QuorumPeerMain echo on call %JAVA% "-Dzookeeper.log.dir=%ZOO_LOG_DIR%" "-Dzookeeper.root.logger=%ZOO_LOG4J_PROP%" -cp "%CLASSPATH%" %ZOO

这里是我的
zkServer.cmd
文件:

@echo off


setlocal
call "%~dp0zkEnv.cmd"

set ZOOMAIN=org.apache.zookeeper.server.quorum.QuorumPeerMain

echo on

call %JAVA% "-Dzookeeper.log.dir=%ZOO_LOG_DIR%" "-Dzookeeper.root.logger=%ZOO_LOG4J_PROP%" -cp "%CLASSPATH%" %ZOOMAIN% "%ZOOCFG%" %*

endlocal
首先获取主机名(或可访问的IP,如lan/public/NAT地址):

接下来向ZOOMAIN添加以下选项(假定主机名my.remoteconsole.org和所需端口8989)


有关()中可用选项的更多详细信息。

skServer.sh脚本将运行zkEnv.sh脚本,而zkEnv.sh脚本将依次查找脚本“”../conf/zookeer env.sh”

conf文件夹中创建一个名为zookeeper env.sh

将其粘贴到文件中并重新启动Zookeeper:

JMXLOCALONLY=false
JMXDISABLE=false
JMXPORT=4048
JMXAUTH=false
JMXSSL=false

在服务器启动中添加org.apache.zookeeper.server.quorum.QuorumPeerMain


类org.apache.zookeeper.server.quorum.QuorumPeerMain将启动一个JMX可管理的zookeeper服务器。此类在初始化期间注册适当的MBean,以支持JMX监视和实例管理。

除了上面的回答,如果您将zookeeper作为systemd服务运行,则可以在环境变量中指定JMX端口

[Unit]
Description=Apache Kakfa Zookeeper
Requires=network.target
After=network.target

[Service]
Type=simple
User=user
Group=users
ExecStart=/your-zookeeper-install-path/bin/zkServer.sh start
ExecStop=/your-zookeeper-install-path/bin/zkServer.sh stop
TimeoutStopSec=180
Restart=on-failure
Environment="JMX_PORT=9999"

[Install]
WantedBy=multi-user.target
Alias=zookeeper.service

非常感谢@Kwarunek。这只允许jmx进行本地监控。问题是关于远程监控。在您有访问权限之前,公开远程或本地的入口/出口端口。只需将JMXPORT添加到zookeeper-env.sh就足够了。其他是zkEnv.sh中的默认值。但是,如果要启用身份验证或ssl,则必须设置这些。
JMXLOCALONLY=false
JMXDISABLE=false
JMXPORT=4048
JMXAUTH=false
JMXSSL=false
[Unit]
Description=Apache Kakfa Zookeeper
Requires=network.target
After=network.target

[Service]
Type=simple
User=user
Group=users
ExecStart=/your-zookeeper-install-path/bin/zkServer.sh start
ExecStop=/your-zookeeper-install-path/bin/zkServer.sh stop
TimeoutStopSec=180
Restart=on-failure
Environment="JMX_PORT=9999"

[Install]
WantedBy=multi-user.target
Alias=zookeeper.service