2016-08-15 4 views
0

수집 할 수있는 기존 설정/에이전트/코드가 있습니까? 은 JMX 데이터를 원격 서버로 쉽게 전달합니다 : 포트?JMX 데이터를 원격 서버 (JMX 전달자)에 보냅니다

java -DjmxForwardAddr=x.x.x.x -DjmxForwardPort=12345 ... ? 

컨텍스트 : 난 그냥 으로 데이터를 제공하는 기업 데이터 검색 /보고를 위해 인 Splunk를 사용하고, 어떻게 든 최대 JMX 리스너 (쉬운 부분) 및 설치 모든 JVM에 그것을 구성하고 싶습니다 JSON/XML/등을 Splunk로 변환.

나는 수천 개의 포트를 할당하고 관리하고 "폴링"하는 방식 대신푸시 방식을 찾고 있습니다.

우리는 많은 응용 프로그램을 보유하고 있으며이를 가능하게하는 시작을 조정하는 좋은 방법이 필요합니다.

자바와 JMX는 전문 지식이 많지 않으므로 잘못된 용어를 찾고/잘못된 질문을하고 있습니다. 나는 이것에 접근하는 어떤 더 좋은 방법에도 개방적이다.

편집 2016년 9월 1일 :이 작업을 수행하는 작은 믿을 수 아무것도 찾을 수 없었습니다

. 연구를 통해, 나는 또한 자바 에이전트로 실행되는이 접근 방식에 대해 우려를 갖게되었다. 오용은 부모 프로그램에 부정적인 영향을 미칠 수 있기 때문이다.

외부 접근 방식을 취하면 나는 jmxtrans이 청구서에 부합합니다. 다소 효과가 있었지만 Splunk의 출력을 정리하기 위해 사용자 지정 Output Writer를 작성해야했습니다.

현재 Splunk 제공 대상 solution을 사용하여 구성 가능한 대상 목록을 폴링하고 해당 데이터를 수집합니다. 언제든지 원하는 것을 얻을 수는 없습니다 (직접 작성하지 않는 한 ...)

답변

0

JMX API는 알림을 생성하는 MBeans를 만드는 방법을 제공합니다.

내가 zabbix와 유사한 문제에 직면 https://docs.oracle.com/javase/8/docs/api/javax/management/NotificationEmitter.htmlhttps://docs.oracle.com/javase/8/docs/api/javax/management/NotificationBroadcaster.html

+0

도움이 되긴하지만 이미 제작 된 것을 찾고있었습니다. –

+0

appdynamics와 같은 것을 의미합니까? –

+0

아마도, 나는 그것에 익숙하지 않지만. CA APM (wily/introscope)은 중앙 서버로 메트릭을 보내는이 기능을 가지고 있습니다. –

0

에서보세요. JMX 데이터를 엄청나게 많은 수의 포트를 열어 Java 애플리케이션에서 읽고 (당겨서) 사용했습니다. 여기서 문제는 프로덕션 환경에서 해당 포트가 방화벽 뒤에 있는지 여부입니다. 이를 해결하기 위해 Jolokia을 사용했습니다. Jolokia는 응용 프로그램과 함께 다른 응용 프로그램 (tomcat 등을 사용하는 경우)으로 실행됩니다. 또는 응용 프로그램이 일반 바닐라 Java 응용 프로그램 인 경우 클래스 경로의 jar로 사용할 수 있습니다 (즉, 기존 Java 응용 프로그램과 쉽게 통합 할 수 있습니다). HTTP (JSON)를 통해 JMX 데이터를 노출합니다. 따라서 Splunk에 HTTP를 통해 데이터를 읽을 수있는 플러그인이 있으면 잘 할 수 있습니다.

+0

제안 해 주셔서 감사합니다. 매우 편리합니다. 그것과 함께, 나는 또한 데이터를 얻기 위해 검색 시스템을 구현해야 할 것이다. 벤더가 제공 한 솔루션에 너무 만족스럽지 않을 경우 Jolokia를 향후 ​​연구 주제로 북마크했습니다. –

+0

zabbix의 경우 제 3 자 게이트웨이를 사용하여 해당 작업을 수행했습니다. https://bitbucket.org/ryanrupp/zabbix-java-gateway/wiki/Home. Splunk에 대해서도 비슷한 것이 있는지 확실하지 않습니다. –