我如何启用远程jmx与zookeeper zkServer.cmd中的端口

s2j5cfk0  于 2022-12-09  发布在  Apache
关注(0)|答案(4)|浏览(220)

这里是我的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
xurqigkl

xurqigkl1#

skServer.sh脚本将运行zkEnv.sh脚本,该脚本将依次查找脚本**'../conf/zookeeper-env.sh'**
conf文件夹中创建名为zookeeper-env.sh的文件
将此粘贴到文件中并重新启动Zookeeper:

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

vjhs03f72#

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

hostname -i
# or find ip
ip a

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

-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.port=8989
-Djava.rmi.server.hostname=my.remoteconsole.org

有关java docshttp://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html)中可用选项的更多详细信息。

nle07wnf

nle07wnf3#

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

46qrfjad

46qrfjad4#

除了上面Marcell du Plessis的回答之外,如果你把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

相关问题