Cassandra JMX 監控配置
阿新 • • 發佈:2019-01-10
最近安裝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
參考材料: