Cassandra JMX 监控配置

    xiaoxiao2026-05-03  4

    最近安装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

    转载请注明原文地址: https://ju.6miu.com/read-1309323.html
    最新回复(0)