cassandra的nodetool工具使用jdk的jmx和cassandra节点通信。
nodetool是集群的重要管理工具。
在cassandra2.0版本中,nodetool默认是允许远程访问,其不需要密码的。
在cassandra2.1版本中,nodetool默认是只允许本机访问,很不方便,
如果远程访问功能打开,又不安全,防止别人乱操作,好方法就是加上访问权限控制。
第一步:打开远程访问权限
编辑conf/cassandra-env.sh文件。
找到:
LOCAL_JMX=yes 默认值监听localhost,只允许本机访问。
改为
LOCAL_JMX=no 表示远程也可以访问。
第二步:指定密码文件
同一文件,找到如下配置项:
JVM_OPTS=”$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true”
JVM_OPTS=”$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/home/cassandra/jmxremote.password”
第三步:创建密码文件
vi /home/cassandra/jmxremote.password
输入
myusername mypassword
注意:修改文件权限只能本用户访问:
chmod go-rwx /home/cassandra/jmxremote.password
否则启动的时候会报错
Error: Password file read access must be restricted: /home/cassandra/jmxremote.password
第四步:配置access文件
access权限控制权限,默认使用jdk目录下的:
$JAVA_HOME/jre/lib/management/jmxremote.access
写入myusername有读写权限
myusername readwrite
该文件也可以通过-Dcom.sun.management.jmxremote.access.file选项指定。
重启cassandra之后,你需要这样使用nodetool:
bin/nodetool -u myusername -pw mypassword status
除非注明,赵岩的博客文章均为原创,转载请以链接形式标明本文地址
本文地址:https://zhaoyanblog.com/archives/817.html
[root@Test ~]# nodetool -h 192.168.106.101 -u name -pw password status
nodetool: Failed to connect to ‘192.168.106.101:7199’ – NoSuchObjectException: ‘no such object in table’.
按照您提供的修改方式进行修改后,在cassandra3.7版本上出现了这样的错误,不知道您是否遇见过?
集群三个节点分别是100,101,102,上面这个是在 102 上访问 101
解决了已经,谢谢你的分享
请问怎么解决的?
Cassandra 配置/etc/hosts 把本机ip配进去