ようへいの日々精進XP

よかろうもん

EC2 インスタンス上に Cassandra クラスタを構成する〜 jolokia で JMX から Cassandra の情報を取得する(1)〜

はじめに

  • Cassandra の監視どうしましょ?という話から JMX で色々と情報を抜けるらしいですよと自分で振って自分で調べてみた

参考


どうするのか?

jolokia とは

  • JolokiaJMX で抜ける情報を JSON で返してくれるエージェント
  • -javaagent に指定してアプリケーションに簡単に組み込めるとのこと
  • JSON で値が取れるということは色々と出来るってことですな

Jolokia のインストール

インストールと言っても難しいことはなく jar ファイルをダウンロードしてくるだけなので、今回は Cassandra をインストールしたディレクトリ以下、/usr/local/cassandra/lib 以下に置く。

wget -q http://labs.consol.de/maven/repository/org/jolokia/jolokia-jvm/1.1.5/jolokia-jvm-1.1.5-agent.jar
sudo cp jolokia-jvm-1.1.5-agent.jar /usr/local/cassandra/lib/

cassandra-env.sh への追記

/usr/local/cassandra/conf/cassandra-env.sh の末尾に以下を追記する。

JVM_OPTS="$JVM_OPTS -javaagent:/usr/local/cassandra/lib/jolokia-jvm-1.1.5-agent.jar=port=8778,host=127.0.0.1"

cassandra の再起動

sudo /etc/init.d/cassandra start

試す

HeapMemoryUsage を取得

以下のようなクエリを投げる。

curl -s http://127.0.0.1:8778/jolokia/read/java.lang:type=Memory/HeapMemoryUsage/ | jq .

以下のようなレスポンスが返ってくる。

{
  "value": {
    "used": 74277304,
    "init": 311427072,
    "committed": 303693824,
    "max": 304742400
  },
  "request": {
    "type": "read",
    "attribute": "HeapMemoryUsage",
    "mbean": "java.lang:type=Memory"
  },
  "status": 200,
  "timestamp": 1393863552
}

今日はここまで

  • おやすみなさい