Я пытаюсь узнать информацию 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. Может кто-нибудь, пожалуйста, помогите мне в этом.
Работает ли эта идея или есть другой лучший способ добиться этого?