启用远程 JMX 后,Cassandra“nodetool status”失败并显示“Credentials required”

2024-01-03

我按照“启用 JMX 身份验证”的说明进行操作:

http://docs.datastax.com/en/cassandra/2.2/cassandra/configuration/secureJmxAuthentication.html http://docs.datastax.com/en/cassandra/2.2/cassandra/configuration/secureJmxAuthentication.html

但是我遇到了这个问题:

nodetool status -u cassandra -pw cassandra 
error: Authentication failed! Credentials required
-- StackTrace --
java.lang.SecurityException: Authentication failed! Credentials required
    at com.sun.jmx.remote.security.JMXPluggableAuthenticator.authenticationFailure(JMXPluggableAuthenticator.java:211)
    at com.sun.jmx.remote.security.JMXPluggableAuthenticator.authenticate(JMXPluggableAuthenticator.java:163)
    at sun.management.jmxremote.ConnectorBootstrap$AccessFileCheckerAuthenticator.authenticate(ConnectorBootstrap.java:219)
    at javax.management.remote.rmi.RMIServerImpl.doNewClient(RMIServerImpl.java:232)
    at javax.management.remote.rmi.RMIServerImpl.newClient(RMIServerImpl.java:199)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323)
    at sun.rmi.transport.Transport$1.run(Transport.java:200)
    at sun.rmi.transport.Transport$1.run(Transport.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$79(TCPTransport.java:683)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:276)
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:253)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:162)
    at javax.management.remote.rmi.RMIServerImpl_Stub.newClient(Unknown Source)
    at javax.management.remote.rmi.RMIConnector.getConnection(RMIConnector.java:2432)
    at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:308)
    at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:270)
    at org.apache.cassandra.tools.NodeProbe.connect(NodeProbe.java:183)
    at org.apache.cassandra.tools.NodeProbe.<init>(NodeProbe.java:150)
    at org.apache.cassandra.tools.NodeTool$NodeToolCmd.connect(NodeTool.java:297)
    at org.apache.cassandra.tools.NodeTool$NodeToolCmd.run(NodeTool.java:237)
    at org.apache.cassandra.tools.NodeTool.main(NodeTool.java:153)

我的配置是这样的:

/etc/cassandra/jmxremote.password
cassandra cassandra

/opt/jdk1.8.0_60/jre/lib/management/jmxremote.access
monitorRole   readonly
cassandra     readwrite
controlRole   readwrite \
          create javax.management.monitor.*,javax.management.timer.* \
          unregister

/etc/cassandra/cassandra-env.sh
LOCAL_JMX=no

if [ "$LOCAL_JMX" = "yes" ]; then
  JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.local.port=$JMX_PORT -XX:+DisableExplicitGC"
else
  JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT"
  JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT"
  JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=false"
  JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
  JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"

也许其他人也面临同样的问题?

卡桑德拉版本:2.2.1 JAVA版本:1.8.0_60


将命令放在末尾,将选项放在开头,如下所示:

nodetool -u cassandra -pw cassandra status

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

启用远程 JMX 后,Cassandra“nodetool status”失败并显示“Credentials required” 的相关文章

随机推荐

  • MongoError:连接未知

    我有一个 mongo 服务器在 localhost 27017 上运行 使用 mongo 控制台我可以在 mongodb 中插入数据 但是当我尝试使用 node js 连接它时 我收到上述错误 以下是使用的代码 var MongoClien
  • Anaconda 中的“基础”(最佳实践)的目的是什么?

    它说这是默认环境 但 不过 您不想将程序放入您的基本环境中 那么我到底应该用它做什么呢 我创建的其他环境是否继承自基础环境 基础环境在哪里conda本身被安装 最好使用Miniconda 并安装all将您想要的东西放入单独的环境中 其他环境
  • 如何让 Perl 正则表达式仅在 $1 < $2 时匹配?

    我无法完全开始工作的部分是条件 因为它总是失败 use Test More tests gt 2 my regex qr d d g1 lt g2 FAIL x like 23 36 regex should match unlike 36
  • 用户/角色管理系统的最佳设计? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 这是我多次遇到的软件设计问题 但从未找到理想的解决方案 我现在也再次处理它 许多应用程序需要某种形式的用户 角色管理 您有基本用户 这
  • Chrome 中的 SVG“使用”标签已损坏

    SAP AngularJS 和 Angular Route 具有由 svg sprite 制作的基于图标的导航 所以 我有这样的内联代码 div style height 1 width 1 div
  • `uint64_t` 有什么困难? (从“float”转换组装)

    我现在的情况是需要计算类似的东西size t s size t floorf f 也就是说 参数是浮点数 但它有一个整数值 假设floorf f 足够小 可以准确表示 在优化这个的过程中 我发现了一些有趣的事情 以下是一些转换自float到
  • 如何在 Maple 中加载包?

    我想使用一个名为 ESC 椭圆面计算器的包 可以用Maple上传 创建者的指示是 使用字符编码 ISO 8859 1 ISO Latin 1 另存为文本文件 并使用 读取 命令在 Maple 中加载 我在上传到 Maple 并使用此编码保存
  • Android开发:如何以位图形式打开.dcm文件?

    我目前正在尝试制作一个 android dicom 应用程序 以下代码以 通常 图像格式从 res drawable 打开图片 但不适用于 dcm public class BitmapView extends View public Bi
  • 如何将西里尔字母音译为拉丁文本

    我有一种方法可以将任何拉丁文本 例如英语 法语 德语 波兰语 转换为其 slug 形式 e g Alpha Bravo Charlie gt alpha bravo charlie 但它不适用于西里尔文文本 例如俄语 所以我想做的是将西里尔
  • Java库为Postgres COPY编写二进制格式?

    有没有人遇到过 Java 库 或只是一些代码 来编写binaryPostgres 使用的格式复制命令 http www postgresql org docs 9 2 interactive sql copy html AEN66736 它
  • 在keras中模型预测后如何恢复原始值?

    这是一个更概念性的问题 但我必须承认我已经处理它有一段时间了 假设您想使用 keras 等来训练神经网络 NN 由于建议您在训练之前对数据进行标准化或标准化 因此 例如 通过标准化 x new x old mean standarddev
  • ISO 国家/货币数据

    All 我们的应用程序需要有关 ISO 国家和货币的数据 其中数据必须是最新的 我们确实从 ISO 本身购买了国家 货币数据 但是我们仍然需要对数据执行大量手动操作 以及编写我们自己的工具来读取数据并将其处理到我们的数据库中 我们是否会以错
  • 资产目录错误:CUICatalog:找不到名称的再现

    突然之间 虽然我没有发生明显的变化 但我现在从资产目录中的图像中收到以下错误 2013 10 30 14 44 46 629 MyApp 38590 a0b CUICatalog Can t find rendition for name
  • 句柄、指针和引用之间有什么区别

    句柄与指向对象的指针有何不同 为什么我们不能拥有对引用的引用 句柄通常是一个opaque对一个对象的引用 句柄的类型与引用的元素无关 例如 考虑由返回的文件描述符open 系统调用 类型是int但它代表打开文件表中的一个条目 表中实际存储的
  • 如何访问 webrick 提供的 .rhtml 页面的 html 请求参数?

    我正在使用 webrick 内置的 ruby 网络服务器 来提供 rhtml 文件 嵌入 ruby 代码的 html 就像 jsp 它工作正常 但我不知道如何访问参数 例如 http localhost mypage rhtml foo b
  • 在 Visual Studio 2013 中生成单元测试报告

    我在 Visual Studio 2013 的 C 项目中有一组单元测试 有没有办法从单元测试结果生成报告 我需要一份报告作为测试运行时间和结果的证据 我不是指在线 CI 服务器报告 而是指本地文件报告 VS2013有什么好的插件吗 我调查
  • 在 cygwin 上安装 Poppler

    我刚刚下载了 Poppler 0 16 5 但我对如何在 cygwin 上安装这个包一无所知 谁能告诉我安装 poppler 的正确命令是什么 实际上 Cygwin 1 7 17 1 中有一个 poppler 包 Run setup exe
  • 如何使 Pygame 零窗口全屏?

    我正在使用易于使用的 Python 库 pgzero 它使用pygame内部 用于游戏编程 如何让游戏窗口全屏显示 import pgzrun TITLE Hello World WIDTH 800 HEIGHT 600 pgzrun go
  • MassTransit 与非 .NET 服务的互操作性

    我一直在使用 MassTransit 并且非常喜欢它 但是 默认情况下 它使用 MassTransit 特有的一些 JSON 包装所有 RabbitMQ 有效负载 消息 这使得与非 NET 服务交换消息变得困难 我知道 JSON 可以用任何
  • 启用远程 JMX 后,Cassandra“nodetool status”失败并显示“Credentials required”

    我按照 启用 JMX 身份验证 的说明进行操作 http docs datastax com en cassandra 2 2 cassandra configuration secureJmxAuthentication html htt