Cassandra JMX нужно подключить все ноды

Я пытаюсь узнать информацию Cassandra cfstats со всех машин, использующих JMX. Это можно сделать с помощью OpsCenter, но я не хочу его использовать. Я начал создавать свою собственную утилиту. На данный момент моя java-программа подключается к JMX и получает информацию cfstats, такую ​​как оценочные ключи, количество SSTables и т. д.

Мое требование: это файл java jar, который будет запускаться с одного узла Cassandra и должен иметь возможность подключаться ко всем машинам и получать cfstats, используя соответствующий JMX для каждого узла.

Я планирую использовать для этого java-драйвер, так как java-драйвер сможет подключать все машины в кластере с помощью system.peers coumnFamily. Как только драйвер java подключится к машинам, я сформирую сервис: jmx: rmi, используя соответствующее имя хоста и порт JMX (7199). Затем я смогу подключиться к NodeProbe, используя эту информацию.

Мой вопрос заключается в том, смогу ли я после подключения к другому узлу с помощью java-драйвера сохранить там состояние и после формирования URL-адреса service:jmx:rmi, действительно ли этот URL-адрес подключается к текущему узлу JMX и извлекает информацию cfstats из текущего узла . Потому что имя хоста JMX будет взято из файла Cassandra-env.sh. Может кто-нибудь, пожалуйста, помогите мне в этом.

Работает ли эта идея или есть другой лучший способ добиться этого?


person Madhu Mohan Kommu    schedule 07.08.2016    source источник


Ответы (1)


Можно использовать JMX удаленно, но это не самая простая задача сделать.

Но если вы пишете свой инструмент - возможно, стоит проверить другое подключение. Например. вы можете легко преобразовать вызовы JMX в HTTP, используя Jolokia

person deniszh    schedule 08.08.2016
comment
Спасибо за уделенное этому Денисжу время. Я проверю возможность и дам вам знать. - person Madhu Mohan Kommu; 09.08.2016
comment
Привет всем, Любые другие идеи по моим вопросам выше? - person Madhu Mohan Kommu; 09.08.2016