So-net無料ブログ作成

インフラエンジニアのためのCassandra情報 監視その2 [Cassandra]

Nagiosを使ってCassandraのノードを監視してみましょう。
CactiのようにノードのJMXの値を詳細に監視することは出来ませんが、各ノードが
動いているかどうかを確認するだけであれば、ここで紹介する方法が簡単です。
NagiosでCassandraノードの状態を確認するには、やはりJMXを使用します。
Nagiosサーバ側から、Cassandra各ノードのJMXに接続、JMXメトリックスから
「LiveNodes」アトリビュートを取得してノードのアドレスが含まれていれば、ノードは
活性状態であると判断できます。
Cassandraノードである「hogehost」から「LiveNodes」アトリビュートを取得する例:
String user = "cassandra";	// ノードOSに登録されているユーザ
String pass = "";
String hostname = "hogehost";	// Cassandraノードのアドレス
String JMXURL = "service:jmx:rmi:///jndi/rmi://" + hostname + ":8080/jmxrmi";
Map hm = new HashMap();
hm.put(JMXConnector.CREDENTIALS, new String[]{user, pass});
JMXConnector connector = JMXConnectorFactory.connect(new JMXServiceURL(JMXURL), hm);
MBeanServerConnection connection = connector.getMBeanServerConnection();

ObjectName on = new ObjectName("org.apache.cassandra.service:type=StorageService");
System.out.println(connection.getAttribute(on, "LiveNodes"));
connector.close();

Nagiosで試すことが出来るサンプルは以下から取得してください。

https://github.com/so-net-developer/Cassandra/tree/master/nagios/

Nagiosの設定は以下のようになります。
/etc/nagios/commands.cfg
define command {
        command_name    check_cassandra_node
        command_line    $USER1$/check_cassandra_node.sh $HOSTADDRESS$
        }


/etc/nagios/services.cfg
define service {
        use             generic-service
        host_name       hogehost
        service_description     cassandra-JMX
        contact_groups                  admins
        check_command   check_cassandra_node
        }


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。