
에이전트 기반 JMX 접근 (JSON/HTTP를 통한, 대량 요청, 세분화된 보안 정책, 원격 MBeanServer 모니터링 및 관리를 위한 프록시 모드 포함)

Jolokia는 JMX MBean에 원격으로 액세스하는 새로운 방법입니다. JSR-160 커넥터와 달리 에이전트 기반 접근 방식을 사용하며, REST 스타일로 HTTP를 통해 JSON을 사용하여 통신합니다.
다양한 환경을 위해 여러 에이전트가 제공됩니다:
에이전트 방식은 여러 장점이 있습니다:
방화벽 친화적
모든 통신이 HTTP를 통해 이루어지므로 방화벽을 통한 프록시 문제가 거의 발생하지 않습니다(RMI 통신과는 대조적이며, RMI는 JSR-160의 기본 모드입니다).
다중 언어 지원
클라이언트 측에 Java 설치가 필요하지 않습니다. 예를 들어 Jmx4Perl은 풍부한 Perl 클라이언트 라이브러리와 에이전트에 액세스하기 위한 Perl 기반 도구를 제공합니다.
간편한 설정
설정은 간단한 에이전트 배포로 완료됩니다. 반면 JSR-160을 통해 JMX를 내보내는 것은 현저히 복잡할 수 있습니다(네이티브 원격 JMX 노출 설정을 위한 Weblogic 및 JBoss 설정 관련 블로그 게시물 참조).
또한 에이전트는 JSR-160 커넥터로는 사용할 수 없는 추가 기능을 제공합니다:
대량 요청
JSR-160 원격과 달리 Jolokia는 단일 왕복으로 여러 JMX 요청을 처리할 수 있습니다. 단일 HTTP POST 요청이 이러한 요청을 JSON 페이로드에 담아 에이전트 측에서 처리합니다. 이러한 대량 요청은 특히 모니터링 솔루션에서 성능을 크게 향상시킬 수 있습니다. Nagios 플러그인 check_jmx4perl은 다중 검사 기능을 위해 대량 요청을 사용합니다.
세분화된 보안
표준 HTTP 보안(SSL, HTTP 인증) 외에도 Jolokia는 클라이언트 IP 주소 또는 서브넷, MBean 이름, 속성 및 작업과 같은 여러 속성을 기반으로 세분화된 제한 사항이 있는 사용자 정의 정책을 지원합니다. 이 정책은 허용/거부 섹션과 와일드카드를 지원하는 XML 형식으로 정의됩니다.
프록시 모드
Jolokia는 에이전트 없는 모드로 작동할 수 있으며, 대상 플랫폼에 대한 유일한 요구 사항은 MBeanServer의 표준 JSR-160 내보내기입니다. 프록시는 전면에서 JSON/HTTP를 통해 Jolokia 요청을 수신하고 이를 원격 JSR-160 JMX 호출을 통해 대상 서버에 전파합니다. 대량 요청은 프록시에서 투명하게 여러 JSR-160 요청으로 분배됩니다.
Jolokia에 대한 더 많은 정보는 www.jolokia.org에서 확인할 수 있으며, 완전한 참조 매뉴얼도 제공됩니다.
풀 리퀘스트 형태의 기여는 매우 환영합니다. 모든 작업은 Apache Public License 하에 기부되어야 합니다. 풀 리퀘스트를 보내기 전에 작업에 서명해 주시기 바랍니다. 서명은 패치 설명 끝에 간단한 한 줄을 추가하는 것으로, 해당 패치를 직접 작성했거나 오픈 소스 패치로 전달할 권리가 있음을 인증합니다. 규칙은 매우 간단합니다. 아래 내용을 인증할 수 있다면(출처: developercertificate.org):
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
660 York Street, Suite 102,
San Francisco, CA 94110 USA
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
그런 다음 각 git 커밋 메시지에 다음과 같은 줄을 추가합니다:
Signed-off-by: Max Morlock <[email protected]>
실명을 사용하세요(가명이나 익명 기여는 불가능합니다).
git 설정에서 user.name과 user.email을 구성했다면 git commit -s로 커밋에 자동으로 서명할 수 있습니다.
문서 수정(오타, 형식 등)의 경우 서명이 필요하지 않습니다. 실수로 첫 번째 서명을 잊었다면 사후에라도 커밋에 서명할 수 있습니다.