0

JMX를 사용하는 모든 컴퓨터에서 Cassandra cfstats 정보를 얻으려고합니다. 이 작업은 OpsCenter를 사용하여 수행 할 수 있지만 사용하고 싶지는 않습니다. 나는 내 자신의 유틸리티를 만들기 시작했다. 당분간, 나의 자바 프로그램은 JMX에 연결하여 estimateKeys, No of SSTables ..와 같은 cfstats 정보를 가져온다.Cassandra JMX가 모든 노드를 연결해야합니다.

내 요구 사항은 java 항아리 파일이며 하나의 Cassandra 노드에서 실행되며 모든 기계에 연결하고 각 노드마다 해당 JMX를 사용하여 cfstats를 가져올 수 있어야합니다.

java 드라이버는 system.peers coumnFamily를 사용하여 클러스터의 모든 컴퓨터를 연결할 수 있으므로이 드라이버는 java 드라이버를 사용할 계획입니다. 일단 자바 드라이버가 머신에 연결되면 각각의 호스트 이름과 JMX 포트 (7199)를 사용하는 jmx : rmi 서비스를 구성 할 것입니다. 그러면이 정보를 사용하여 NodeProbe에 연결할 수 있습니다.

내 질문은 자바 드라이버를 사용하여 다른 노드에 연결 한 후 거기에 상태를 유지하고 서비스를 만든 후에 jmx : rmi url,이 URL이 현재 노드 JMX에 실제로 연결되고 cfstats 정보를 가져올 것인가입니다. 현재 노드에서. JMX 호스트 이름이므로 Cassandra-env.sh 파일에서 가져옵니다. 이걸 좀 도와 주실 래요?

이 아이디어가 효과가 있습니까 아니면이를 달성하는 다른 방법이 있습니까?

답변

1

JMX remotely을 사용하는 것이 가능하지만 가장 쉬운 방법은 아닙니다.

그러나 도구를 작성하는 경우 다른 연결을 확인하는 것이 좋습니다. 예 : 당신은 쉽게 HTTP로 JMX 호출을 변환 할 수 있습니다 Jolokia

+0

이 Deniszh에 시간 내 주셔서 감사합니다. 타당성을 점검하고 알려 드리겠습니다. –

+0

안녕하세요, 위의 질문에 대한 다른 아이디어가 있습니까? –

관련 문제