JBoss AS web services - Curso JBoss JB366 Día 4

44
19 Octubre 2009 Curso JBoss César Pajares – ECM /CMS Manager [email protected] JBoss AS Deployment, Seguridad - Monitorización JBoss Professional Open Source 1

description

JBoss AS web services - Curso JBoss JB366 Día 4 Seguridad y Monitorización

Transcript of JBoss AS web services - Curso JBoss JB366 Día 4

  • 1. JBoss Professional Open Source JBoss AS Deployment, Seguridad - Monitorizacin Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 2. Jboss AS 5.1.0 Instalacin Running as a Service under Microsoft Windows Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 3. Jboss AS 5.1.0 Instalacin Antigua instalacin: Problemas con Java.lang.OutofMemoryError Podemos configurar que el servidor se ejecute como un servicio bajo Microsoft Windows, y configurarlo para que se inicie automticamente si se desea. Paso 1.- Download the JavaService 2.0.10 package from http://forge.objectweb.org/projects/javaservice/. Paso 2.- Descomprimimos el paquete y utilizamos el archivo JBossInstall.bat para instalar el servicio de JBoss. Debemos establecer el JAVA_HOME y variables de entorno JBOSS_HOME para apuntar a la JDK y JBoss, como directorios antes de ejecutar JBossInstall.bat. Paso 3.- Run JBossInstall.bat con la siguiente sintaxis: JBossInstall.bat [-auto | -manual] Csar Pajares ECM /CMS Manager [email protected] Cualquier servicio del que dependa Jboss AS Ej: mysql 19 Octubre 2009 Curso JBoss JB366
  • 4. Jboss AS 5.1.0 Instalacin Instalacin actual: JBossNative Windows En algunas versiones es necesario descargar Jboss Native de la siguiente direccin: http://labs.jboss.com/jbossweb/downloads/ Paso 1.- Instalacin: descomprimimos e utilizamos el archivo service.bat C:> cd c:jboss-4.2.0bin C:> service.bat install Paso 3.- Revisamos en Panel de Control Herramientas administrativas Servicios, si ha instalado correctamente el servicio de arranque de JBoss Podemos ejecutar en consola lo siguiente: C:> net start JBAS50SVC C:> net stop JBAS50SVC http://www.jboss.org/community/wiki/RunJBossAsAServiceOnWindows Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 5. Jboss AS 5.1.0 Instalacin Otra Opcin: RunJBossAsAServiceOnWindows Use the JavaServiceWrapper by Tanuki Note: Users keep editing this page, saying that the JavaServiceWrapper is not recommended. This is not true. They are confused between the JavaService and the JavaServiceWrapper. They are two completely different products. JavaService is not recommended(for the below reasons), but JavaServiceWrapper is recommended. The majority of JBoss users are using the JavaServiceWrapper as their way of making jboss run as a service. You can use Java Service Wrapper : http://wrapper.tanukisoftware.org/doc/english/integrate-simple-win.html and manage it by JMX : http://wrapper.tanukisoftware.org/doc/english/jmx.htmljboss Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 6. Jboss AS 5.1.0 Instalacin Otra Opcin: RunJBossAsAServiceOnWindows Use the JavaServiceWrapper by Tanuki Unzip the wrapper zip file, and do the following: copy WRAPPER_HOMEbinWrapper.exe %JBOSS_HOME%binWrapper.exe copy WRAPPER_HOMElibWrapper.DLL %JBOSS_HOME%libWrapper.DLL copy WRAPPER_HOMElibwrapper.jar %JBOSS_HOME%libwrapper.jar mkdir %JBOSS_HOME%serverYOURCONFIGwrapper Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 7. Jboss AS 5.1.0 Instalacin Otra Opcin: RunJBossAsAServiceOnWindows Use the JavaServiceWrapper by Tanuki Create wrapper.conf file inside %JBOSS_HOME%serverYOURCONFIGwrapper with the below contents: Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 8. Jboss AS 5.1.0 Instalacin Otra Opcin: RunJBossAsAServiceOnWindows Use the JavaServiceWrapper by Tanuki Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 9. Jboss AS 5.1.0 Instalacin Configurar BBDD alternativa con JBoss AS Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 10. Jboss AS 5.1.0 Instalacin Configurar BBDD alternativa con JBoss AS Hemos estado usando la fuente de datos predeterminada JBossAS en nuestras aplicaciones. Esta fuente de datos est configurada para utilizar la instancia de base de datos integrada Hypersonic Esta fuente de datos est enlazada al nombre JNDI java: / DefaultDS y a su descriptor que se denomina hsqldb-ds.xml en el directorio deploy Vamos a utilizar MySQL como BBDD por defecto de JBoss AS Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 11. Jboss AS 5.1.0 Instalacin Deployment Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 12. Jboss AS 5.1.0 Instalacin Configurar ECLIPSE con JBoss AS Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 13. Jboss AS 5.1.0 Instalacin Getting Started Deployment La Implementacin de aplicaciones de JBoss AS es muy fcil Slo tenemos que copiar la aplicacin en el directorio JBOSS_HOME / server / default / deploy/ JBoss AS busca constantemente el directorio de despliegue para recoger las nuevas aplicaciones o la modificacin de las aplicaciones existentes Podemos disponer de un HOT DEPLOY de una aplicacin sobre la marcha, mientras que JBoss AS sigue funcionando Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 14. Jboss AS 5.1.0 Instalacin Getting Started Deployment Se pueden implementar diferentes tipos de aplicaciones empresariales en JBoss AS El archivo WAR Contiene las clases de servlets, pginas, las bibliotecas, y los descriptores de despliegue, tales como web.xml, faces-config.xml, etc, y jboss-web.xml. El archivo EAR Que normalmente contiene un archivo WAR para el mdulo web, archivos JAR para los mdulos EJB, as como los descriptores de despliegue, tales como aplicacion.xml y jboss-app.xml etc El archivo SAR Son paquetes de un servicio de JBoss en un archivo JAR. Es utilizado principalmente por los servicios internos de JBoss. El *-ds.xml define las conexiones a bases de datos externas. La fuente de datos pueden ser reutilizadas por todas las aplicaciones y servicios de JBoss AS a travs del JNDI interno. Podemos desplegar archivos XML con las definiciones de servicios MBean. Si tenemos los archivos JAR adecuados disponibles en el despliegue o directorios lib, los MBeans especificados en los archivos XML se iniciarn. Esta es la manera de cmo iniciar muchos JBoss como servicios internos, como las colas JMS. Tambin podemos implementar archivos JAR que contienen EJBs o otros objetos de servicios, directamente en JBoss AS. Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 15. Jboss AS 5.1.0 Instalacin Getting Started Deployment Los paquetes de despliegue WAR, EAR, y SAR, en realidad son archivos JAR con archivos XML que describen la implementacin y despliegue en directorios como META-INF y WEB-INF. JBoss AS permite desplegar estos archivos como directorios en lugar de archivos JAR. Que le permite realizar cambios en las pginas web, etc sobre la marcha sin volver a desplegar toda la aplicacin. Si no necesitamos volver a implementar el directorio sin reiniciar el servidor, slo podemos tocar los descriptores de despliegue (por ejemplo, el WEB-INF/web.xml en una WAR y la META-INF/application.xml en un EAR) para actualizar sus marcas de tiempo. Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 16. Jboss AS 5.1.0 Instalacin Getting Started Hot-deployment of services in JBoss Echemos un vistazo a un ejemplo prctico de despliegue en caliente de los servicios en JBoss. Con e Servidor Jboss arrancado, vemos el directorio server/production/deploy Copiamos en otra ubicacin el fichero mailservice.xml y miramos que aparece en la consola 13:10:05,235 INFO [MailService] Mail service 'java:/Mail' removed from JNDI Volvemos a copiar el fichero dentro del directorio 13:58:54,331 INFO [MailService] Mail Service bound to java:/Mail Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 17. Jboss AS 5.1.0 Instalacin JBoss deployment directory configuration Configuring JBoss deploy directory in 4.x releases or earlier The configuration file which we need to modify is server/xxxx/conf/jbossservice.xml Open it and move almost at the end of the file. There you'll find the following attribute: Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 18. Jboss AS 5.1.0 Instalacin JBoss deployment directory configuration Configuring JBoss deploy directory in 5.0 release JBoss 5.x doesn't use any more jboss-service.xml for configuring the deployment directory. Instead, you have to manipulate the server/xxx/conf/bootstrap/profilerepository.xml file. Search for the SerializableDeploymentRepositoryFactory (about at the beginning of the file). There, if you want to add for example the "deployments" beneath the JBoss Home, simply add another element in the array: Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 19. Jboss AS 5.1.0 Instalacin JBoss deployment directory configuration Configuring JBoss deployment directory in release 5.1 Just while I was completing this article I've found out in JBoss wiki that in release 5.1 the configuration as changed again (!!!), so when using JBoss 5.1 your configuration file will be server/xxxx/conf/bootstrap/profile.xml. Find the Bean named BootstrapProfileFactory and add your deploy folder to the list element: Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 20. Jboss AS 5.1.0 Instalacin La API JMX Monitorizacin de JBoss Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 21. Jboss AS 5.1.0 Instalacin La API JMX y Monitorizacin de JBoss Vamos a hacer una breve introduccin a JMX y de cmo podemos acceder a las caractersticas de JBoss gracias a los MBeans que implementan esta API. Asimismo veremos tres herramientas de monitorizacin del servidor. Contenidos: La API JMX y Monitorizacin de JBoss Introduccin a JMX Arquitectura de JMX Monitorizacin de JBoss Monitorizacin con JConsole Monitorizacin con MC4j Management Console for Java Monitorizacin con ManageEngine Applications Manager 8 Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 22. Jboss AS 5.1.0 Instalacin La API JMX y Monitorizacin de JBoss Introduccin a JMX La Java Management eXtensions (JMX) API es un estndar de Sun para la gestin y monitorizacin remota de recursos java como: Aplicaciones y dispositivos Servidores y servicios JVM Nos permite entre otras cosas consultar o cambiar una determinada configuracin, conocer estadsticas y comportamiento de una aplicacin, conocer cambios de estado (y notificarlo, iniciar acciones, etc), crear nuestros manejadores de recursos y publicarlos en una API, interoperar con otras tecnologas... JMX se integr pronto en la J2EE y ms tarde en la JSE, concretamente desde la JDK 5. Su jerarqua de subpaquetes se encuentran bajo javax.management, y esta es su API pblica. Asimismo existe una API privada bajo com.sun.jmx, a la que slo debera tener acceso las propias libreras de la JDK, puesto que esta implementacin puede evolucionar y ser cambiada en futuras versiones. A partir de la JDK 5.0 se incluye Jconsole para monitorizar la JVM y aplicaciones que implementen JMX. Es un ejecutable con interfaz grfica que se encuentra en la carpeta bin de la instalacin de la distribucion de Sun JDK. Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 23. Jboss AS 5.1.0 Instalacin La API JMX y Monitorizacin de JBoss Introduccin a JMX Arquitectura basada en 3 capas: Capa de aplicacin (o nivel de instrumentacin), la capa de ms bajo nivel donde residen los componentes (MBean) que facilitan la informacin necesaria para la gestin de una aplicacin. Estos componentes son desarrollados segn las necesidades de gestin especficas de cada parte de una aplicacin. Nivel de agente: facilita una interfaz para el manejo de los MBean del nivel de instrumentacin. Nivel de Adaptadores: uno o ms conectores (o adaptadores de protocolo) que proporcionan acceso desde los sistemas de monitorizacin remotos Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 24. Jboss AS 5.1.0 Instalacin La API JMX y Monitorizacin de JBoss Monitorizacin de JBoss JBoss implementa JMX en su microkernel. El propio servidor dispone de un una consola JMX accesible por la URL http://localhost:8080/jmx-console que muestra los MBeans pblicos accesibles por ella o programticamente por cdigo Java.: Algunas acciones tiles: Mostrar el rbol JNDI Forzar un volcado de memoria Mostrar el uso del pool de memoria Gestionar el escner de despliegues Redesplegar una aplicacin Acceder a la base de datos Hypersonic Detener JBoss Conocer estado de los EJB desplegados e instanciados ... y mucho ms Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 25. Jboss AS 5.1.0 Instalacin La API JMX y Monitorizacin de JBoss Monitorizacin con JConsole Jconsole (www.servletsuite.com) usa el JMX de JBoss para monitorizar el servidor: estado, logs, despliegues, uploads y visor de los MBeans: Para poder trabajar con JConsole debemos seguir los siguientes pasos: Descargar jconsole.war desde http://www.servletsuite.com/jm x/jconsole.htm Copiar jconsole.war en la carpeta deploy del servidor utilizado, para su despliegue (habitualmente en /jboss5.1.0.GA/server/default/deploy/) Con JBoss en ejecucin, acceder a http://localhost:8080/jconsole Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 26. Jboss AS 5.1.0 Instalacin La API JMX y Monitorizacin de JBoss Monitorizacin con MC4j Management Console for Java El MC4j Management Console for Java (open source) es una aplicacin standalone basada en java diseada para monitorizar mltiples servidores y visualizar sus los MBeans, en su caso. Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 27. Jboss AS 5.1.0 Instalacin La API JMX y Monitorizacin de JBoss Monitorizacin con MC4j Management Console for Java Para instalar la ltima versin: Descargar la versin apropiada a nuestro sistema operativo desde http://www.mc4j.org/confluence/display/MC4J/Download y descomprimir Descargar la librera log4j de http://logging.apache.org/log4j/1.2/, descomprimir y localizar el log4j-1.2.*.jar Renombrar a log4j-1.2.8.jar Sustituir el existente en mc4j/mc4j/modules/ext por el renombrado anterior Finalmente cargamos la aplicacin con el ejecutable situado en C:Archivos de programaMC4J Console 1.2b9 Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 28. Jboss AS 5.1.0 Instalacin La API JMX y Monitorizacin de JBoss Monitorizacin con MC4j Management Console for Java Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 29. Jboss AS 5.1.0 Instalacin La API JMX y Monitorizacin de JBoss Monitorizacin con ManageEngine Applications Manager 8 ManageEngine Applications Manager es un potente monitor comercial con una versin libre (limitacin: mximo 5 monitores) aplicable a servidores, BBDD, aplicaciones, websites, ERP, transacciones y mucho ms. Ha sido diseada con una interfaz muy completa y ofrece mltiples estadsticas, que pueden asociarse acciones al seguimiento de recursos, como alarmas y notificaciones por correo electrnico. Permite la monitorizacin de recursos remotos (los anteriores monitores se limitaban al servidor local) y la monitorizacin de MBeans de JMX. Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 30. Jboss AS 5.1.0 Instalacin La API JMX y Monitorizacin de JBoss Monitorizacin con ManageEngine Applications Manager 8 Descarga: http://manageengine.adventnet.com/products/applications_manager/download.html y ejecutamos el instalable Instalacin: Descargar log4j de http://logging.apache.org/log4j/1.2/, descomprimir y localizar el log4j-1.2.*.jar Renombrar a log4j.jar Sustituir el existente en AdventNet/ME/AppManager8/working/classes/ por el renombrado anterior Ejecucin: startApplicationsManager en AdventNet/ME/AppManager8 Jboss ha de poder aceptar conexiones remotas (e.g. iniciar el servidor con run -b 0.0.0.0 o la IP que deseemos que tenga acceso) Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 31. Jboss AS 5.1.0 Instalacin La API JMX y Monitorizacin de JBoss Monitorizacin con ManageEngine Applications Manager 8 ManageEngine se habr levantado en nuestro sistema como un servidor de monitorizacin, por lo tanto su consola de configuracin ser accesible va web. Por eso navegamos a la URL http://localhost:9090/ y en la pantalla de navegacin nos autenticamos con login admin y password admin. Vamos a configurar ahora un monitor para nuestro JBoss. Primero pulsamos en la pestaa Monitors | New Monitor y en la columna Application Servers pulsamos sobre JBoss: Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 32. Jboss AS 5.1.0 Instalacin La API JMX y Monitorizacin de JBoss Monitorizacin con ManageEngine Applications Manager 8 Seleccionamos como tipo de monitor JBoss Server Una vez conectado en nuevo monitor a JBoss, se muestra un resumen de monitores: Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 33. Jboss AS 5.1.0 Instalacin La API JMX y Monitorizacin de JBoss Monitorizacin con ManageEngine Applications Manager 8 Conclusiones Podemos quedarnos con estos puntos fundamentales: La API JMX permite acceder a informacin publicada por una aplicacin Las unidades que publican esa informacin son los Mbeans JBoss implementa multitud de Mbeans Existen herramientas para usar la JMX de JBoss y monitorizar su estado Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366
  • 34. Jboss AS 5.1.0 Instalacin JBoss ON es la versin certificada y testeada que ofrece RedHat de Jopr. 34
  • 35. Jboss AS 5.1.0 Instalacin 35
  • 36. Jboss AS 5.1.0 Instalacin 36
  • 37. Jboss AS 5.1.0 Instalacin Seleccin de la Base de datos 37
  • 38. Jboss AS 5.1.0 Instalacin 38
  • 39. Jboss AS 5.1.0 Instalacin 39
  • 40. Jboss AS 5.1.0 Instalacin Instalacin de jopr La ltima versin Jopr 2.3.1 permite instalarse utilizando una base de datos embebida (h2) sin necesidad de instalar PosgreSQL y/o Oracle. Para instalar el lado del servidor, se han de efectuar los siguientes pasos: 1.Descargar el proyecto jopr 2.3.1 de aqu . 2.Descomprimir el fichero: unzip jopr-server-2.3.1.zip 3.Configurar las variables de entorno RHQ_SERVER_HOME (ej: /usr/java/jopr-server-2.2.1) y RHQ_SERVER_JAVA_EXE_FILE_PATH (ej: /usr/java/jdk1.6.0_13/bin/java) directamente del fichero ./bin/rhq-server.sh. 4.Arrancar el servidor con la sentencia ./bin/rhq-server.sh start 5.Para iniciar la instalacin, acceder va web a http://:7080. En caso de no querer utilizar una base de datos externa (PosgreSQL u Oracle), marcar la opcin Embedded Database. Posteriormente, se ha de instalar el agente en cada uno de los servidores a monitorizar: 1.Desde el equipo a monitorizar, descargar el fichero jar: wget http://:7080/agentupdate/download 2.Instalar el agente con java -jar install 3.Ejecutar el agente con rhq-agent.sh Tambin comentaremos que JON es la versin certificada y testeada que ofrece RedHat de Jopr. 40
  • 41. Jboss AS 5.1.0 Instalacin 41
  • 42. Jboss AS 5.1.0 Instalacin 42
  • 43. Jboss AS 5.1.0 Instalacin 1.Go to the Jopr - Releases page and download the Jopr distribution. 2.Unzip the distribution in a suitable place (i.e. in a directory not too deeply nested and with no spaces or non-ASCII characters in its name) 3.Install a database like PostgreSQL (version 8.2.4 +, please choose C locale for initdb), create a database instance called 'rhq' in it and a user 'rhqadmin' that owns this 'rhq' database. create user rhqadmin password 'rhqadmin'; create database rhq owner rhqadmin; 4.Eventually set RHQ_SERVER_JAVA_HOME or RHQ_SERVER_JAVA_EXE_FILE_PATH env variables appropriately. This is needed if your JAVA_HOME does not point to a java installation that is valid with Jopr (e.g. java 1.4); Jopr requires java5+. 5.cd into the jopr-server-*/ directory and start the Server: bin/rhq-server.sh console 6.After a few seconds, the messages on the console will stop. When this happens, point your browser to http://localhost:7080/ and run the installer. 7.When this is done and you can log in (default user / pass are: rhqadmin/rhqadmin), it is time to start the Agent. Start a second shell for this. 8.Unpackage the Agent into a directory of your choosing: If you received the Agent as a .zip package, simply unzip it into your chosen directory If you received the Agent as a agent update binary .jar, copy it to your chosen directory and run "java -jar -install" NEW In Jopr 2.2: If you do not yet have an Agent distribution, but you have started your Jopr Server as described above, then you can pull down an Agent update binary .jar directly from the server and install it using these instructions: Point a browser to "http://:7080/agentupdate/download" and save the Agent binary update jar in a directory where you want to install the agent (the file you save should have a .jar extension; "" should be the hostname or IP address of the server that is running and "7080" is the port on which that the server is accepting HTTP requests) Run "java -jar --install" where "" is the name of the file you downloaded from the server 9.cd into the Agent directory (typically named "rhq-agent"). 10.Start the Agent by issuing: bin/rhq-agent.sh Answer the questions asked by the Agent. 11.Go back to the Server GUI and to its Dashboard. Watch resources show up in the upper right in the Autodiscovery portlet, and import them. 12.Done :-) For a more detailed installation document, you can go to the JBoss Operations Network documentation. 43
  • 44. Jboss AS 5.1.0 Instalacin GET JBOSS 5! http://www.jboss.org/jbossas/downloads Questions? Csar Pajares ECM /CMS Manager [email protected] 19 Octubre 2009 Curso JBoss JB366