Administración de Jboss - Cursos del Gul Administrando Jboss Javier Turégano Molina Cursos GUL Universidad Carlos III 01 Feb 2010.

1 Administración de Jboss - Cursos del Gul Administrando ...
Author: Susana Castellanos Molina
0 downloads 0 Views

1 Administración de Jboss - Cursos del Gul Administrando Jboss Javier Turégano Molina Cursos GUL Universidad Carlos III 01 Feb 2010

2 Administración de Jboss - Cursos del Gul Índice ● Introducción ● Presentando Jboss ● Primera toma de contacto ● Desplegando aplicaciones ● Gestionando nuestro servidor ● Ajuste de rendimiento ● Clustering ● Seguridad ● Dudas

3 Administración de Jboss - Cursos del Gul Introducción

4 Administración de Jboss - Cursos del Gul Presentando Jboss

5 Administración de Jboss - Cursos del Gul ¿Qué es Jboss? Servidor de aplicaciones JAVA programado en JAVA. ● Licencia: GPL/LGPL ● Confiable a nivel de empresa ● Altamente Modular ● Línea de Comandos + XML ● Cumple los estandares

6 Administración de Jboss - Cursos del Gul Requisitos Requisitos Hardware 512 MB RAM 100 MB hard disk space 400 MHz CPU JDKs soportadas Sun JDK 1.6 OpenJDK 1.6 IBM JDK 1.6 Sistema Operativo Cualquiera capaz de ejecutar una JDK: Linux y UNIX así cómo Windows.

7 Administración de Jboss - Cursos del Gul Características ● Clustering ● Failover (including sessions) ● Load balancing ● Distributed caching (using JBoss Cache, a standalone product) ● Distributed deployment (farming) ● Deployment API ● Management API ● Aspect-Oriented Programming (AOP) support ● JSP/Servlet 2.1/2.5 (Tomcat) ● JavaServer Faces 1.2 (Mojarra) ● Enterprise Java Beans versions 3 and 2.1 ● JNDI (Java Naming and Directory Interface) ● Hibernate-integration (for persistence programming; JPA)

8 Administración de Jboss - Cursos del Gul Características ● JDBC ● JTA (Java Transaction API) ● Support for Java EE-Web Services like JAX-WS ● SAAJ (SOAP with Attachments API for Java) ● JMS (Java Message Service) integration ● JavaMail ● RMI-IIOP (JacORB, alias Java and CORBA) ● JAAS (Java Authentication and Authorization Service) ● JCA (Java Connector Architecture)-integration ● JACC (Java Authorization Contract for Containers)-integration ● Java Management Extensions

9 Administración de Jboss - Cursos del Gul Comparativa servidores de aplicaciones ¿Es Tomcat un servidor de aplicaciones? Podemos ver una comparativa de Servidores de Aplicaciones en: http://en.wikipedia.org/wiki/Comparison_of_applic ation_servers

10 Administración de Jboss - Cursos del Gul Versiones de Jboss

11 Administración de Jboss - Cursos del Gul Primera toma de contacto

12 Administración de Jboss - Cursos del Gul Instalando la máquina virtual Java En primer lugar debemos de instalar la máquina virtual JAVA: Desde la web del proveedor. Usando paquetes de nuestra distribución.

13 Administración de Jboss - Cursos del Gul Instalando Jboss ● Descargamos Jboss ● Lo descomprimimos: tar zxvf jboss-xxxx.tar.gz ● Lo arrancamos: cd jboss-xxxx/bin./run.sh ¡¡¡ ROCK and ROLL !!!

14 Administración de Jboss - Cursos del Gul Accediendo a nuestro jboss

15 Administración de Jboss - Cursos del Gul Escuchando en red Por defecto Jboss sólo escucha en localhost, pero podemos modificarlo:./run.sh -b 0.0.0.0

16 Administración de Jboss - Cursos del Gul Estructura de directorios jboss/ /bin /client /docs /lib /server

17 Administración de Jboss - Cursos del Gul Tipos de configuraciones Distintos tipos de configuraciones predefinidas: jboss/server/ /all /default /minimal /production Seleccionamos la que queremos arrancar:./run.sh -c default

18 Administración de Jboss - Cursos del Gul Directorios en cada configuración jboss/server/default/ /conf /data /deploy /lib /log /tmp /work /jboss/server/all /deploy-hasingleton /farm

19 Administración de Jboss - Cursos del Gul Componentes bsh-deployer.xml cache-invalidation-service.xml client-deployer-service.xml ear-deployer.xml ejb3.deployer ejb3-interceptors-aop.xml ejb-deployer.xml hsqldb-ds.xml http-invoker.sar jboss-aop-jdk50.deployer jboss-bean.deployer jboss-ha-local-jdbc.rar jboss-ha-xa-jdbc.rar jbossjca-service.xml jboss-local-jdbc.rar jboss-web.deployer jbossws.sar jboss-xa-jdbc.rar jms jmx-console.war jmx-invoker-service.xml jsr88-service.xml mail-ra.rar mail-service.xml management monitoring-service.xml properties-service.xml quartz-ra.rar schedule-manager-service.xml scheduler-service.xml sqlexception-service.xml uuid-key-generator.sar jboss/server/default/deploy

20 Administración de Jboss - Cursos del Gul Desplegando aplicaciones

21 Administración de Jboss - Cursos del Gul Tipos de aplicaciones - myapp.jar - myapp.war - myapp.ear - myapp-ds.xml Modos de despliegue: Comprimido Desplegado

22 Administración de Jboss - Cursos del Gul Configuración de aplicaciones myapp.war/ /WEB-INF web.xml jboss-web.xml myapp.ear /META-INF application.xml

23 Administración de Jboss - Cursos del Gul Gestión de clases en Jboss ¿Por qué tenemos que tener cuidado con la gestión de clases en Jboss? ¿Cómo se comporta por defecto el cargador de clases? ¿Podemos modificar ese comportamiento?

24 Administración de Jboss - Cursos del Gul Desplegando Ejemplo: HUDSON - http://hudson-ci.org/http://hudson-ci.org/ mkdir /opt/hudson export HUDSON_HOME=/opt/hudson cp hudson.war jobss/server/default/deploy Iniciamos servidor de aplicaciones.

25 Administración de Jboss - Cursos del Gul Accediendo http://localhost:8080/hudson

26 Administración de Jboss - Cursos del Gul Accediendo a bases de datos Depende de cada aplicación pero es posible que necesitemos añadir uno de estos dos: ● Driver JDBC de la BD. ● Un data source con la conexión.

27 Administración de Jboss - Cursos del Gul Gestionando nuestro servidor

28 Administración de Jboss - Cursos del Gul Logs ¿Dónde están los logs en jboss? Configuración principal de log4j en: /server/default/conf/jboss-log4j.xml

29 Administración de Jboss - Cursos del Gul Reducir el nivel de log /server/default/conf/jboss-log4j.xml

30 Administración de Jboss - Cursos del Gul Logs estilo Apache jboss/server/all/deploy/jboss- web.deployer/server.xml

31 Administración de Jboss - Cursos del Gul Herramientas de administración A través de web: ● jmx-console ● web-console En el escritorio: ● jconsole En línea de comando: ● jps + jmap ● twiddle Plataformas de administración: ● Jboss-on ● RHQ/jopr

32 Administración de Jboss - Cursos del Gul jmx-console

33 Administración de Jboss - Cursos del Gul web-console

34 Administración de Jboss - Cursos del Gul jconsole

35 Administración de Jboss - Cursos del Gul jconsole Para usarlo activamos la depuración remota en /jboss/bin/run.conf JAVA_OPTS=” $JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8004 - Dcom.sun.management.jmxremote.authenticate=false - Dcom.sun.management.jmxremote.ssl=false"

36 Administración de Jboss - Cursos del Gul Línea de comandos También disponemos de herramientas útiles en línea de comandos: - jps - jmap - twiddle jboss/bin/twiddle.sh -s 127.0.0.1:1099 invoke jboss.system:type=ServerInfo listThreadCpuUtilization

37 Administración de Jboss - Cursos del Gul Ajuste de rendimiento

38 Administración de Jboss - Cursos del Gul Gestión de memoria

39 Administración de Jboss - Cursos del Gul Configurando la memoria Límite de memoria con 32 bits: ~ 2Gb Configuración en jboss/bin/run.conf -Xms1000m -Xmx3000m -XX:PermSize=256m -XX:MaxPermSize=384m

40 Administración de Jboss - Cursos del Gul Recolección de basura Tipos de recolecciones: GC Full-GC Política por defecto: STOP THE WORLD!!!!

41 Administración de Jboss - Cursos del Gul Recolección de basura Depurando el recolector de basura: -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails Configuraciones alternativas del Garbace Colector: Recolector paralelo: +UseParallelGC

42 Administración de Jboss - Cursos del Gul Conector nativo Podemos mejorar el rendimiento como servidor web usando el conector nativo: http://labs.jboss.com/jbossweb/downloads/jboss-native.html Evita cuelgues en la versión open source entre Apache y Jboss.

43 Administración de Jboss - Cursos del Gul Otros parámetros a tener en cuenta ● Eliminar servicios innecesarios ● Reducir nivel de log ● Precompilar los JSPs ● Delegar el contenido estático (apache, ngynx) ● Desactivar hot-deploy en producción ● Tuning del sistema operativo ● Tuning acceso a Bases de Datos ● Tuning acceso a la red

44 Administración de Jboss - Cursos del Gul Clustering

45 Administración de Jboss - Cursos del Gul Balanceo de carga con Apache Apache mod_jk Jboss Cluster HTTP HTTPS AJP

46 Administración de Jboss - Cursos del Gul Configuración de Apache Balanceamos a través del módulo mod_jk de Apache: apt-get install libapache2-mod-jk

47 Administración de Jboss - Cursos del Gul Worker.properties /etc/libapache2-mod-jk/workers.properties workers.tomcat_home=/opt/jboss workers.java_home=/usr/lib/jvm/java-1.5.0-sun ps=/ worker.list=node1,node2,lb node1.ajp13_worker.port=8009 node1.ajp13_worker.host=node1.mydomain.con node1r.ajp13_worker.type=ajp13 node1.ajp13_worker.lbfactor=1 node2.ajp13_worker.port=8009 node2.ajp13_worker.host=node2.mydomain.con node2r.ajp13_worker.type=ajp13 node2.ajp13_worker.lbfactor=1 worker.loadbalancer.type=lb worker.loadbalancer.balance_workers=node1,node2 worker.loadbalancer.sticky_session=0

48 Administración de Jboss - Cursos del Gul Virtual Host /etc/apache2/sites-available/site.mydomain.com JkWorkersFile /etc/libapache2-mod-jk/workers.properties JkShmFile /var/log/apache2/jk.shm ServerName site.mydomain.com CustomLog /var/log/apache2/site.mydomain.com.access.log combined ErrorLog /var/log/apache2/site.mydomain.com.error.log DocumentRoot /var/www/ JkMount /app-solo-nodo1 node1 JKMount /* lb JKMount /images lb

49 Administración de Jboss - Cursos del Gul Jboss Cluster Nos permite compartir sesiones entre distinos nodos de Jboss. Utiliza comunicación multicast basada en JGroups. Para activarlo debemos arrancar así:./run.sh -c all -b 192.168.1.1 -g MiCluster - Djgroups.bind_addr=192.168.1.1

50 Administración de Jboss - Cursos del Gul Configuración de las aplicaciones Requisito: No tener objetos no serializables en sesión Activación: En el web.xml de la aplicación añadimos la siguiente opción:

51 Administración de Jboss - Cursos del Gul Sticky Sessions En caso de no poder realizar la compartición de sesiones aún podremos recurrir a las sesiones pegajosas. En Apache en /etc/libapache2-mod-jk/workers.properties... worker.loadbalancer.sticky_session=1...

52 Administración de Jboss - Cursos del Gul Sticky Sessions En cada uno de los Jboss ● En jboss/server/all/deploy/jboss-web.deployer/server.xml... ● En /server/all/deploy/jboss-web.deploy/META-INF/jboss- service.xml true

53 Administración de Jboss - Cursos del Gul Seguridad

54 Administración de Jboss - Cursos del Gul Correr jboss cómo usuario no privilegiado Podemos correr jboss con cualquier usuario del sistema. Por tanto no lo lanzaremos cómo root.

55 Administración de Jboss - Cursos del Gul SSL – Crear almacén de certificados Creamos un certificado y lo metemos en su almacen: keytool -genkey -alias tomcat -keyalg RSA Lo copiamos dentro de la instalación de jboss: cp.keystore jboss/server/default/conf/mykeystore

56 Administración de Jboss - Cursos del Gul SSL - Configuración jboss/server/default/deploy/jboss- web.deployer/server.xml Accedemos a través de localhost:8443

57 Administración de Jboss - Cursos del Gul Asegurando jmx-console Descomentamos en jboss/server/default/deploy/jmx- console.war/WEB-INF/jboss-web.xml java:/jaas/jmx-console Descomentamos en jboss/server/default/deploy/jmx- console.war/WEB-INF/web.xml HtmlAdaptor An example security config that only allows users with the role JBossAdmin to access the HTML JMX console web application /* GET POST JBossAdmin

58 Administración de Jboss - Cursos del Gul Asegurando jmx-console Descomentamos en jboss/server/default/conf/login-config.xm props/jmx-console-users.properties props/jmx-console-roles.properties Creamos el fichero jboss/server/default/conf/props/jmx-console- users.properties admin=contrasena Y añadimos el usuario al grupo admin jboss/server/default/conf/props/jmx-console-roles.properties jmx-admin=JBossAdmin,HttpInvoker

59 Administración de Jboss - Cursos del Gul Aseguramos web-console Usaremos los mismos credenciales que la jmx-console. jboss/server/default/deploy/management/console-mgr.sar/web-console.war/WEB-INF/web.xml HtmlAdaptor An example security config that only allows users with the role JBossAdmin to access the HTML JMX console web application /* GET POST JBossAdmin jboss/server/default/deploy/management/console-mgr.sar/web-console.war/WEB-INF/jboss-web.xml java:/jaas/jmx-console

60 Administración de Jboss - Cursos del Gul Dudas

61 Administración de Jboss - Cursos del Gul www.turegano.net www.twitter.com/setoid e Licencia Creative Commons Reconocimiento 2.5 de España Contacto

62 Administración de Jboss - Cursos del Gul Ilustraciones