
Accès JMX basé sur agent via JSON/HTTP avec requêtes en masse, politiques de sécurité granulaires et mode proxy pour la surveillance et la gestion à distance de MBeanServer.

Jolokia est une nouvelle façon d'accéder à distance aux MBeans JMX. Elle se distingue des connecteurs JSR-160 par son approche basée sur un agent qui utilise JSON sur HTTP pour sa communication, d'une manière proche du style REST.
Plusieurs agents sont fournis pour différents environnements :
L'approche agent présente plusieurs avantages :
Adapté aux pare-feux
Puisque toutes les communications passent par HTTP, le passage au travers des pare-feux devient généralement sans problème (contrairement à la communication RMI, qui est le mode par défaut pour JSR-160).
Polyglotte
Aucune installation Java n'est nécessaire côté client. Par exemple, fournit une riche bibliothèque cliente Perl et des outils basés sur Perl pour accéder aux agents.
Configuration simple
La configuration se fait par un simple déploiement d'agent. En comparaison, l'export JMX via JSR-160 peut être remarquablement compliqué (voir ces billets de blog pour configurer Weblogic et JBoss pour une exposition JMX native à distance).
De plus, les agents offrent des fonctionnalités supplémentaires non disponibles avec les connecteurs JSR-160 :
Requêtes groupées
Contrairement à la télécommande JSR-160, Jolokia peut traiter de nombreuses requêtes JMX en un seul aller-retour. Une seule requête HTTP POST place ces requêtes dans son payload JSON, qui est dispatché côté agent. Ces requêtes groupées peuvent augmenter considérablement les performances, en particulier pour les solutions de surveillance. Le plugin Nagios check_jmx4perl utilise les requêtes groupées pour sa fonctionnalité de vérification multiple.
Sécurité fine
En plus de la sécurité HTTP standard (SSL, authentification HTTP), Jolokia prend en charge une politique personnalisée avec des restrictions fines basées sur plusieurs propriétés comme l'adresse IP ou le sous-réseau du client, ainsi que les noms, attributs et opérations des MBeans. La politique est définie dans un format XML avec prise en charge des sections d'autorisation/refus et des caractères génériques.
Mode proxy
Jolokia peut fonctionner en mode sans agent où la seule exigence sur la plateforme cible est l'export standard JSR-160 de son MBeanServer. Un proxy écoute côté front pour les requêtes Jolokia via JSON/HTTP et les propage vers le serveur cible via des appels JMX distants via JSR-160. Les requêtes groupées sont dispatchées transparentement en plusieurs requêtes JSR-160 sur le proxy.
Encore plus d'informations sur Jolokia sont disponibles sur www.jolokia.org, y compris un manuel de référence complet.
Les contributions sous forme de pull requests sont vivement appréciées. Tout votre travail doit également être cédé sous la licence Apache Public License. Veuillez signer votre travail avant d'effectuer une pull request. La signature est une simple ligne à la fin de la description du patch, qui certifie que vous l'avez écrit ou que vous avez le droit de le transmettre en tant que patch open-source. Les règles sont très simples : si vous pouvez certifier ce qui suit (d'après 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.
Ensuite, ajoutez simplement une ligne à chaque message de commit git :
Signed-off-by: Max Morlock <[email protected]>
En utilisant votre vrai nom (désolé, pas de pseudonymes ni de contributions anonymes).
Si vous définissez vos configurations git user.name et user.email, vous pouvez signer votre commit automatiquement avec git commit -s.
Si vous corrigez de la documentation (fautes de frappe, mise en forme, ...), vous n'êtes pas obligé de signer. Il est également possible de signer vos commits rétrospectivement, aussi si vous l'avez oublié la première fois.