监控Cassandra性能的两种简单方法-jolokia和MX4J HTTP适配器

来源:互联网 发布:ei数据库检索入口 编辑:程序博客网 时间:2024/05/19 03:18

这段时间在做Cassandra数据库的监控系统,需要将cassandra的性能metric提取出来,找到一篇文章,分享一下。哈哈哈,翻译水平有限,欢迎指正。在linux下


有很多不同的方法来监控Cassandra 的性能metric。这些方法可以分为两种主要的技术类型:展示类和查询类(push and poll)。展示类技术就是把Cassandra内部的性能指标metric退给目标接收器/接收槽,而查询类技术的角色,就是可以通过这个技术(这个词好别扭)来访问查询Cassandra某个性能参数metric.


不翻译了。


总之,有两个方法,

1. 通过MX4J HTTP 适配器(java agent)

2. 通过Jolokia JVM Agent (java agent)

抱歉,并没能深入理解java agent,不解释了。


一. 通过MX4J HTTP 适配器

配置步骤如下:

1. 下载最新的MX4J binary(e.g. mx4j-3.0.2.tar.gz): 下载

2. 解压缩,吧mx4j-tools.jar 文件(在压缩包的 /lib/mx4j-tools.jar)复制到Cassandra的lib文件夹里(e.g. /usr/share/cassandra/lib)

3. 在Cassandra的配置文件cassandra-env.sh文件中,在最下方添加下列内容:

MX4J_ADDRESS="-Dmx4jaddress=<Cassandra Node IP>"   # e.g. localhost or 127.0.0.1MX4J_PORT="-Dmx4jport=<MX4J port>"                 # default port: 8081JVM_OPTS="$JVM_OPTS $MX4J_ADDRESS"JVM_OPTS="$JVM_OPTS $MX4J_PORT"

4. 重启cassandra服务: sudo service cassandra restart, 随后,可以在cassandra的system log( /var/log/cassandra/system.log )里找到如下信息:

INFO  [main] 2016-06-20 10:18:11,493 Mx4jTool.java:63 - mx4j successfully loaded
5. 打开浏览器,输入地址:localhost:8081,即可看到如下所示
cassandra_mx4j



二. 通过Jolokia JVM Agent 

配置步骤如下:

1. 下载jolokia 最新jar包(e.g. jolokia-jvm-1.3.6-agent.jar):下载
2. 复制下载好的文件到cassandra的lib文件夹里(e.g. /usr/share/cassandra/lib)

3. 在cassandra-env.sh(/etc/cassandra/)文件里加入下列内容:

# Jolokia javaagentJVM_OPTS="$JVM_OPTS -javaagent:$CASSANDRA_HOME/lib/jolokia-jvm-1.3.6-agent.jar"
注意:该agent默认监听8778端口,但也可以配置别的端口,在cassandra-env.sh文件最下方添加以下内容:

JVM_OPTS="$JVM_OPTS -javaagent:$CASSANDRA_HOME/lib/jolokia-jvm-1.3.6-agent.jar=port=<agent_port>,host=<node_ip>"(我用了这个,以防万一有像我那么傻的,<node_ip>的括号请去掉,就是说host=127.0.0.1)。
或者
JVM_OPTS="$JVM_OPTS -javaagent:$CASSANDRA_HOME/lib/jolokia-jvm-1.3.3-agent.jar=config=/path/to/config.properties
4.重启Cassandra的服务: sudo service cassandra restart

5.打开浏览器: 输入: localhost:8778/jolokia/read/org.apach.cassandra.internal:type=HintedHandoff/ActiveCount

cassandra_jolokia_rest

Jolokia agent提供Java REST API endpoint(终点),可以访问jmx, 地址栏的org.apache.cassandra...那些是MBean的名字,如果不熟悉JMX的,可以看看这个教程:

http://www.journaldev.com/1352/what-is-jmx-mbean-jconsole-tutorial


其他,如果想看cassandra 的各种metric,也可以通过jconsole,

在linux终端里直接输入jconsole,

然后输入localhost:7199, 7199是Cassandra metric 的端口。点Connect, 然后选择insecure connection。正常情况下可以连上的,但是今天我没连上,不知道为什么。



完毕。

原创粉丝点击