Cassandra JMX 监控配置,cassandrajmx
最近安装cassandra到产品服务器,很多东西要求就严格了很多,比如perf中使用的JMX,以前是只要知道ip就能访问,但是产品服务器就不行了,这样存在安全隐患,nodetool -h host 可以添加和删除节点。所以今天要讲的东西就是cassandra jmx的授权和访问控制。
这里讲的是第一种,最常用的使用密码和访问控制文件方式,其他方式后面有时间再跟进。
1 修改$CASSANDRA_HOME/conf/cassandra-env.sh 文件
- 设置你的服务器(需要监控的机器)IP
JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=172.29.1.18"
- cassandra默认是启用本地无需授权方式访问,这里我们需要远程监控就需要改变下方式:修改LOCAL_JMX为no
LOCAL_JMX=no
2 设置JMX中authentication需要用到的文件
## Basic file based authn & authz
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.access.file=/etc/cassandra/jmxremote.access"
- 创建文件 /etc/cassandra/jmxremote.password,添加角色和密码:(这里的cassandra是用户名,密码是后面的cassandra,可以改为你自己的)
monitorRole QED
controlRole R&D
cassandra cassandra
- 修改jmxremote.password访问权限:(cassandra:cassandra 只是个例子,填入你自己的启动cassandra的用户和用户组)
chown cassandra:cassandra /etc/cassandra/jmxremote.password
chmod 400 /etc/cassandra/jmxremote.password
- 创建文件 /etc/cassandra/jmxremote.access, 添加角色权限控制:
monitorRole readonly
cassandra readwrite
controlRole readwrite \
create javax.management.monitor.*,javax.management.timer.* \
unregister
说明:
readonly 是智能读取MBean中的只读属性。
readwrite 是可以使用MBean进行程序的参数修改和控制程序行为。
3 启动cassandra, 使用nodetool访问:
nodetool status -u cassandra -pw cassandra
参考材料:
1 Cassandra Wiki JMX security
2 Monitoring and Management using JMX
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。