En este tema aprenderemos a administrar un dominio. Veremos cómo podemos definir un nuevo dominio y todos los elementos asociados (máquinas, servidores, cluster, usuarios, etc.). También veremos herramientas adicionales como el NodeManager y las herramientas de administración desde línea de comandos.
Vamos a revisar algunos de los conceptos ya vistos con anterioridad. Dentro de un dominio debemos disponer de un servidor de administración. Este servidor se encargará, entre otras, de las siguientes tareas:
En el apartado 2.2 utilizamos una utilidad que incorpora Weblogic para crear y configurar de manera sencilla un dominio. Ahora vamos a ver otra forma de configurar un dominio. Para crear un nuevo dominio pinchamos con el botón derecho encima del nombre del dominio y seleccionamos Create or edit other domains... Nos aparecerá una figura como la siguiente. Podemos pinchar en Configure a new domain... para crear un nuevo dominio.
Damos el nombre del dominio y la localización. Podemos utilizar el directorio por defecto: $BEA_HOME/users_projects/nombre (antes de crear el dominio debemos asegurarnos de crear el directorio). Una vez creada nos aparecerá la ventana de configuración de dominio que vimos en la sección 2.3. A pesar de dar esta opción, se aconseja crear el dominio con la herramienta utilizada en la sesión anterior, de otra forma sería necesaria una configuración manual del fichero config.xml.
Una vez creado el dominio junto con sus servidores, cuando arrancamos un servidor debemos suministrar cierta información. Vamos a configurar los ejecutables para que contengan esa información. Lo primero es el usuario y la contraseña con la que arrancamos los servidores. Editamos los ficheros:
startWebLogic.sh
startManagedWebLogic.sh
y les damos valor a las variables:
WLS_USER=system
WLS_PW=weblogic
donde system y weblogic son el usuario y la contraseña del sistema, respectivamente. El servidor de administración se arranca simplemente ejecutando startWebLogic.sh. Para los servidores administrados debemos indicar la dirección del servidor de administración. Para evitar tener que teclear esta información podemos crear un ejecutable que la contenga. Creamos un nuevo fichero que contendrá únicamente este comando:
./startManagedServer.sh servidor2 http://localhost:7001
donde servidor2 es el nombre del servidor que queremos arrancar y a continuación indicamos la dirección y el puerto de escucha del servidor de administración. Para que el fichero sea ejecutable, desde línea de comandos, ejecutamos:
chmod 777 startServidor2
donde startServidor2 es el nombre del fichero. Podemos crear un fichero por cada servidor.
Un servidor de aplicaciones no es más que una instancia de la clase weblogic.Server. Vamos a ver cómo podemos crear nuevos servidores. Lo primero es pinchar en el icono Servers. Nos aparecerá una página como la siguiente donde tenemos los servidores definidos en nuestro dominio y podemos definir nuevos.
Cuando pinchamos en Configure a new server.. nos aparece la siguiente página donde podemos configurar la siguiente información:
Pasamos a la solapa Connections (el resto de opciones se verán más adelante). Las solapas SSL y SSL Ports permiten configurar el comportamiento seguro de este servidor.
Si configuramos SSL y seleccionamos la opción Enable SSL Listen Port ya podemos comunicarnos con el servidor mediante el protocolo SSL y por el puerto indicado en la opción SSL Listen Port.
En la solapa Connections->HTTP podemos configurar la aplicación con la que responderá el servidor cuando se produzca una petición sin especificar ningún nombre. Default Web Application. También podemos configurar nuestro servidor para defenderlo de ataques DoS. Un ataque DoS (Denial of Service: denegación de servicio) tiene como consecuencia la caida del servidor. Lo suelen utilizar hackers para echar abajo un sistema. El ataque puede ser llevado a cabo de dos maneras:
En cuanto a los protocolos, el protocolo por defecto es el t3. Este protocolo es propio de Weblogic y es el que utiliza para comunicarse entre los servidores.
En la solapa Monitoring->Performance podemos monitorizar en tiempo real algunas características del servidor:
La solapa Security nos permite monitorizar los intentos de entrada al sistema inválidos y el número de usuarios bloqueados. Puede servir para monitorizar intentos de acceso inválidos.
En Versions vemos toda la información tanto del servidor de aplicaciones como del sistema operativo y Java.
En la última solapa se puede visualizar la salida del servidor.
En la solapa Control->Start/Stop podemos arrancar y parar el servidor en distintos modos. La primera opción permite arrancar el servidor en modo de espera, donde no atiende peticiones. La segunda opción permite un arranque normal del servidor. La tercera arranca un servidor en modo espera. La cuarta opción para el servidor y la quinta fuerza la parada del servidor (en las ocasiones en las que el servidor no responda a la parada normal, utilizaremos esta opción para matarlo (kill))
En la solapa Logging podemos configurar las opciones del fichero que contendrá los mensajes del servidor. En la siguiente figura se muestran los datos más genéricos, ya explicados en el apartado del log de dominio. La opción Stdout severity threshold permite cambiar el nivel de error que muestra los mensajes. Por defecto se mostrará un mensaje si existe un error. Podemos bajar o subir el nivel de error para que muestre un mensaje, por ejemplo, cuando existe una advertencia. La siguiente solapa, Rotation, permite modificar el tipo de rotación del fichero log. Las opciones también se detallaron anteriormente.
La solapa Domain permite que la salida del servidor se almacene en el fichero log del dominio.
Si nos fijamos el fichero log para JDBC está deshabilitado por defecto. Esto es debido a que las operaciones de JDBC son numerosas y pueden llegar a saturar el sistema de ficheros. No permite la rotación del fichero log.
Una máquina es un reflejo de una máquina física que soporta
nuestro sistema. Weblogic se puede instalar en multitud de plataformas (Unix,
Windows, Solaris, etc.). Una de las principales ventajas de Weblogic es que
se pueden utilizar distintos tipos de máquinas en el mismo sistema. Por
ejemplo, podemos tener una máquina Linux con un par de servidores y otra
máquina Windows NT con otro par, funcionando todo dentro del mismo dominio
y dando el mismo servicio. Cuando pinchamos en el icono Machines nos
permite visualizar las máquinas que tiene nuestro sistema y también
nos permite configurar nuevas máquinas. Podemos configurar una máquina
de tipo Unix (Linux, etc.) o un tipo distinto de máquina. La diferencia
es que en las máquinas de tipo Unix nos permite configurar opciones adicionales.
Cuando pinchamos en Configure a new Unix Machine... nos aparece la figura siguiente donde podemos dar nombre a la máquina. Este nombre es propio de Weblogic, es decir, no es nombre DNS ni IP. Las siguientes opciones, que sólo aparecen en máquinas Unix, son el nombre de usuario y de grupo con los que se ejecutarán los procesos instanciados en esa máquina. Una vez configurados estos datos, pinchamos en Create.
Debemos asignar los servidores que se ejecutarán en esa máquina. Para ello pinchamos en la solapa Servers y seleccionando el servidor en el grupo Available pinchamos en la flecha para pasarlo a Chosen. El resto de opciones se comentarán más adelante. La creación de una máquina necesita de una parada de los servidores.
Como ya hemos visto, un servidor de aplicaciones no es más que una instancia de la clase weblogic.Server. El NodeManager es una clase Java que nos va a permitir instanciar otras clases y así poder arrancar los servidores de aplicaciones. En concreto nos va a permitir arrancar servidores administrados uno a uno, todo un cluster o un dominio a la vez. El NodeManager es independiente del servidor de aplicaciones y debemos instanciar uno por cada máquina física que contenga servidores administrados. Recibe peticiones directamente del servidor de administración a través de la consola y puede ser ejecutado como un demonio Unix o un servicio Windows.
El NodeManager realiza las tareas mostradas en la anterior figura: permite arrancar un servidor que se encuentre en su máquina; forzar su paro (sólo para casos en los que no responda) y pararlo. Esta última opción, la de paro normal, también la puede realizar el servidor de administración directamente.
Para configurar el NodeManager debemos seguir los siguientes pasos:
Con el NodeManager funcionando ya podemos utilizarlo. En la solapa de Monitoring podemos comprobar si podemos establecer comunicación con el NodeManager de la máquina seleccionada. También podemos consultar el fichero log para detectar posibles fallos.
Por cada servidor que querramos arrancar, debemos configurar los datos del arranque remoto. Para ello pinchamos en el servidor y en la solapa de Configuration, en la subsolapa Remote Start. La siguiente información hace referencia siempre a directorios de la máquina remota:
Para arrancar un servidor a través del NodeManager pinchamos en el nombre del servidor con el botón derecho y seleccionamos Start/stop this server... Nos aparecerá la figura mostrada más abajo en la cual podemos poner en marcha el servidor. También podemos poner en marcha todo el dominio, pinchando con el botón derecho sobre el nombre del dominio y todos los servidores de un cluster pinchando sobre el nombre del cluster.
Por último, si queremos que el NodeManager se arranque cuando se encienda la máquina, debemos indicar al sistema operativo que lo haga. Vamos a detallar cómo se puede arrancar en Linux. Vamos a utilizar el fichero /etc/rc.local En este fichero vamos a añadir un par de líneas que arrancarán el NodeManager. Las líneas a añadir serán:
su - weblogic -c "cd /home/weblogic/bea/weblogic700/server/bin; ./startNodeManager.sh"
El comando su permite cambiar de usuario. Aquí cambiamos a weblogic que es quien ha instalado el servidor de aplicaciones. Con la opción -c indicamos que ejecute un comando que es el que viene a continuación, cambiando al directorio indicado y ejecutando el NodeManager. También podemos hacer lo mismo con el servidor de administración, utilizando el siguiente comando:
su - weblogic -c "cd /home/weblogic/bea/users_projects/MiDominio; ./startWebLogic.sh"