
Agentenbasierter JMX-Zugriff über JSON/HTTP mit Massenanfragen, granularen Sicherheitsrichtlinien und Proxy-Modus für die Überwachung und Verwaltung von Remote-MBeanServern.

Jolokia ist ein neuer Ansatz, um JMX-MBeans remote zu erreichen. Er unterscheidet sich von JSR-160-Konnektoren dadurch, dass er ein agentenbasierter Ansatz ist, der JSON über HTTP für die Kommunikation auf eine REST-artige Weise verwendet.
Für verschiedene Umgebungen werden mehrere Agenten angeboten:
Der Agentenansatz hat mehrere Vorteile:
Firewall-freundlich
Da die gesamte Kommunikation über HTTP erfolgt, ist das Proxying durch Firewalls größtenteils kein Problem (im Gegensatz zur RMI-Kommunikation, die der Standardmodus für JSR-160 ist).
Polyglott
Auf der Client-Seite ist keine Java-Installation erforderlich. Z. B. bietet Jmx4Perl eine umfangreiche Perl-Client-Bibliothek und Perl-basierte Werkzeuge für den Zugriff auf die Agenten.
Einfaches Setup
Das Setup erfolgt durch eine einfache Agentenbereitstellung. Im Gegensatz dazu kann der Export von JMX über JSR-160 bemerkenswert kompliziert sein (siehe diese Blog-Beiträge zum Einrichten von Weblogic und JBoss für die native Remote-JMX-Freigabe).
Darüber hinaus bieten die Agenten zusätzliche Funktionen, die mit JSR-160-Konnektoren nicht verfügbar sind:
Bulk-Anfragen
Im Gegensatz zu JSR-160-Remoting kann Jolokia viele JMX-Anfragen mit einem einzigen Round-Trip verarbeiten. Eine einzelne HTTP-POST-Anfrage legt diese Anfragen in ihre JSON-Nutzlast, die auf der Agentenseite verarbeitet wird. Diese Bulk-Anfragen können die Leistung drastisch erhöhen, insbesondere für Monitoring-Lösungen. Das Nagios-Plugin check_jmx4perl verwendet Bulk-Anfragen für seine Multi-Check-Funktion.
Feingranulare Sicherheit
Zusätzlich zur Standard-HTTP-Sicherheit (SSL, HTTP-Authentifizierung) unterstützt Jolokia eine benutzerdefinierte Richtlinie mit feingranularen Einschränkungen, die auf mehreren Eigenschaften basiert, wie der IP-Adresse oder dem Subnetz des Clients sowie den MBean-Namen, -Attributen und -Operationen. Die Richtlinie ist in einem XML-Format definiert und unterstützt Erlauben/Verweigern-Abschnitte und Platzhalter.
Proxy-Modus
Jolokia kann in einem agentenlosen Modus betrieben werden, in dem die einzige Anforderung an die Zielplattform der standardmäßige JSR-160-Export ihres MBeanServers ist. Ein Proxy lauscht auf der Eingangsseite auf Jolokia-Anfragen über JSON/HTTP und leitet diese über entfernte JSR-160-JMX-Aufrufe an den Zielserver weiter. Bulk-Anfragen werden auf dem Proxy transparent in mehrere JSR-160-Anfragen aufgeteilt.
Weitere Informationen zu Jolokia finden Sie unter www.jolokia.org, einschließlich eines vollständigen Referenzhandbuchs.
Beiträge in Form von Pull Requests sind sehr willkommen. Ihre gesamte Arbeit muss ebenfalls unter der Apache Public License bereitgestellt werden. Bitte signieren Sie Ihre Arbeit, bevor Sie einen Pull Request erstellen. Das Sign-off ist eine einfache Zeile am Ende der Patch-Beschreibung, die bestätigt, dass Sie den Patch geschrieben haben oder anderweitig das Recht haben, ihn als Open-Source-Patch weiterzugeben. Die Regeln sind sehr einfach: Wenn Sie das Folgende bestätigen können (von 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.
Dann fügen Sie einfach eine Zeile zu jeder Git-Commit-Nachricht hinzu:
Signed-off-by: Max Morlock <[email protected]>
Verwenden Sie Ihren echten Namen (tut uns leid, keine Pseudonyme oder anonymen Beiträge.)
Wenn Sie Ihre Git-Konfigurationen user.name und user.email setzen, können Sie Ihren
Commit automatisch mit git commit -s signieren.
Wenn Sie Dokumentation korrigieren (Tippfehler, Formatierung, ...), müssen Sie kein Sign-off vornehmen. Es ist möglich, Ihre Commits nachträglich zu signieren, auch wenn Sie es beim ersten Mal vergessen haben.