JASMINe Monitoring pour Weblogic
Transcription
JASMINe Monitoring pour Weblogic
JASMINe Monitoring pour Weblogic HOWTO Table des matières 1. Introduction ............................................................................................................ 2. MBeanCmd standalone .......................................................................................... 2.1. Connexion IIOP ........................................................................................... 2.2. Connexion t3 ............................................................................................... 3. MBeanCmd embarqué dans JASMINe Monitoring .................................................... 4. Problèmes connus ................................................................................................. 1 1 1 2 2 3 1. Introduction Ce document va vous guider pour permettre la supervision d'un serveur Oracle Weblogic avec JASMINe Monitoring. Les deux modes de supervision offerts par JASMINe Monitoring sont abordés : • Le mode où les sondes (MBeanCmd) sont externes au serveur JASMINe Monitoring. • Le mode où les sondes sont embarqués dans le serveur JASMINe Monitoring. 2. MBeanCmd standalone Deux protocoles peuvent être utilisés pour que MBeanCmd puisse communiquer avec Weblogic, chacun ayant ses avantages et inconvénients : • IIOP • Avantage : Ne nécessite aucune classe propre à WebLogic. • Inconvénient : Uniquement pour superviser des attributs de type simple. • t3 • Avantage : t3 est LE protocole de WebLogic. • Inconvénient : Nécessite d'embarquer des bibliothèques WebLogic. 2.1. Connexion IIOP 1. Activer IIOP dans Weblogic : 1 JASMINe Monitoring pour Weblogic • Weblogic 9 : il faut l'activer explicitement • Weblogic 10 : activé par défaut. Configurer un login/password pour IIOP via la console Weblogic. 1 2. Renseigner le fichier jmxurls.properties avec le(s) serveur(s) à superviser. jasmine.jmx.url.wls10iiop=service:jmx:rmi:///jndi/iiop://[host]:7001/ weblogic.management.mbeanservers.runtime jasmine.jmx.user.wls10iiop=[login] jasmine.jmx.password.wls10iiop=[password] 3. Exécuter une commande MBeanCmd. > java -jar mbeancmd.jar stat -p 3 -target wls10iiop -name "com.bea:ServerRuntime=examplesServer,Name=examplesServer,Type=JRockitRuntime" -a TotalNumberOfThreads > 20/07/09 16:22:29 (I) Stat.process : Target wls10iiop - service:jmx:rmi:///jndi/iiop:// [host]:7001/weblogic.management.mbeanservers.runtime 20/07/09 16:22:29 (I) Stat.mbeanPoll : MBean discovery: succesful probe, wls10iiop date;time;sname;server;domain;mbean;TotalNumberOfThreads 2009/07/20 16:22:29;1248099749367;service:jmx:rmi:///jndi/iiop://[host]:7001/ weblogic.management.mbeanservers.runtime;unknown_server_name;unknown_domain; com.bea:ServerRuntime=examplesServer,Name=examplesServer,Type=JRockitRuntime;37 2.2. Connexion t3 1. Même avec le protocole t3, il faut activer IIOP dans WebLogic (cf. la 1ère étape de Section 2.1, « Connexion IIOP »). 2. Renseigner le fichier jmxurls.properties avec le(s) serveur(s) à superviser. jasmine.jmx.url.wls10t3=service:jmx:rmi:///jndi/iiop://[host]:7001/ weblogic.management.mbeanservers.runtime jasmine.jmx.user.wls10t3=[login] jasmine.jmx.password.wls10t3=[password] jasmine.jmx.protocol.providers.wls10t3=weblogic.management.remote 3. Inclure des classes Weblogic dans le classpath lors du lancement de la commande MBeanCmd. Pour cela, il faut récuperer les jar wljmxclient.jar et wlclient.jar, et les "passer" à la commande avec l'option : -Djasmine.jmx.xclasspath=$LIB_PATH/wljmxclient.jar;$LIB_PATH/wlclient.jar où $LIB_PATH est le répertoire contenant les librairies. 4. Lancer la commande MBeanCmd java -Djasmine.jmx.xclasspath=C:\lib1\wljmxclient.jar;C:\lib2\wlclient.jar -jar mbeancmd.jar ... cf. la 3ème étape de Section 2.1, « Connexion IIOP » en ajoutant l'option d'inclusion des librairies. 3. MBeanCmd embarqué dans JASMINe Monitoring 1. Configurer le serveur JASMINe Monitoring pour ($JASMINE_MONITORING/conf/carol.properties). le lancer en IIOP carol.protocols=iiop 2 JASMINe Monitoring pour Weblogic carol.iiop.url=iiop://localhost:1199 Il faut également modifier le fichier $JASMINE_MONITORING/conf/eventswitchconfig.xml. <property name="jndiProviderUrl" value="iiop://localhost:1199"/> 2. Définir le serveur Weblogic à superviser dans le fichier $JASMINE_MONITORING/conf/ jmxurls.properties. • Si Weblogic est configuré en t3 : jasmine.jmx.url.wlt3=service:jmx:t3://[host]:7001/jndi/ weblogic.management.mbeanservers.runtime jasmine.jmx.user.wlt3=weblogic jasmine.jmx.password.wlt3=weblogic • Si Weblogic est configuré en IIOP : jasmine.jmx.url.wls10iiop=service:jmx:rmi://[host]:7001/jndi/iiop://[host]:7001/ weblogic.management.mbeanservers.runtime jasmine.jmx.user.wlt3=weblogic jasmine.jmx.password.wlt3=weblogic 3. Créer le ressource adapteur (RA) pour la gestion du pool de connexion JMX. cd $JASMINE_MONITORING/JMX_connection_pool_adapter/bin generate-ra.sh -j service:jmx:t3://[host]:7001/jndi/ weblogic.management.mbeanservers.runtime -o $JASMINE_MONITORING/deploy/aa20_jmx_wlt3 4. Configurer la supervision du serveur Weblogic. Pour cela, ajouter des commandes MBeanCmd dans le fichier $JASMINE_MONITORING/conf/eventswitchconfig.xml. stat -name "com.bea:ServerRuntime=examplesServer,Name=examplesServer,Type=JRockitRuntime" -a TotalNumberOfThreads -jasmine "vm://MBeanCmd_dispatcher" -target wlt3 Note Il n'y a pas besoin d'inclure les bibliothèques Weblogic tant que l'on se contente de lire des attributs de type simple. C'est le cas pour la sonde, qui récupère essentiellement des entiers, des réels ou des chaînes. 4. Problèmes connus • Si on utilise JASMINe en JRMP, avec accès à WebLogic en t3 (ce qui requiert les classes WLS), il y a une interférence entre les classes WLS et JOnAS. Il faut alors utiliser JASMINe en IIOP. Problème : Cela court-circuite la sécurité WebLogic et on peut à se connecter sans passer de login/password. • sur une connexion JMX Remote, la méthode getAttribute(String att) fonctionne, mais pas la méthode getAtrributes(String[] atts), qui retourne une liste d'attributs. Elle lève une exception ArrayIndexOutOfBoundsException. Des problèmes de ce genre apparaissent avec JACORB 2.2.3 (version utilisée par JOnAS) mais semblent corrigés avec JACORB 2.3.1. • Lorsque JASMINe est configuré en IIOP, les événements JASMINe ne sont pas persistés dans la base, à chaque fois apparaît une trace: 2009-07-17 23:11:15,538 : WARNING : JasmineEventEJB3Wrapper.3 : JasmineEventEJB3Wrapper.saveJasmineEvent : EJBs are not ready ... the message is not persisted. Un coutournement consiste à démarrer un 2ème serveur en JRMP, contenant l'Eventswitch, et à configurer le routage pour que les sondes publient dans l'eventswitch du 2ème serveur. 3 JASMINe Monitoring pour Weblogic Dans ce cas, une collision de port pour l'agent de l'eventswitch doit être gérée. Pour cela, il faut modifier les fichiers $JASMINE_MONITORING/conf/eventswitch.xml. <mule-environment-properties ... serverUrl="tcp://localhost:60000"/> <mule-environment-properties ... serverUrl=""/> //(désactive l'écoute) 4