Ejercicio: Acceso a las herramientas de administración y los registros de aplicaciones de JBoss EAP

Completado

En este ejercicio, accederá a las herramientas de administración de JBoss y transmitirá los registros de aplicaciones.

Creación de un túnel TCP

Para acceder al servidor remoto, debe crear un túnel TCP entre el servidor remoto y la máquina local. Ejecute el siguiente comando:

az webapp create-remote-connection -n ${WEBAPP_NAME} -g ${RESOURCEGROUP_NAME}

El comando devuelve el resultado siguiente:

Verifying if app is running....
App is running. Trying to establish tunnel connection...
Opening tunnel on port: 59445
SSH is available { username: root, password: Docker! }
Ctrl + C to close

Obtendrá la información siguiente del resultado del comando:

Información necesaria Value
Opening tunnel on port PORT_NUMBER (por ejemplo, 59445)
username root
password Docker!

Anote la contraseña y el número de puerto. Estos dos valores se usan en la sección siguiente.

Inicio de sesión con SSH y el túnel TCP

Ahora debe iniciar sesión en el servidor mediante un comando ssh. Abra un nuevo terminal de comandos y ejecute el comando siguiente:

export PORT_NUMBER=<the port number from above>
ssh root@127.0.0.1 -L 9990:localhost:9990 -p $PORT_NUMBER 

Sugerencia

Si quiere acceder a la consola web de administración de JBoss EAP, especifique la opción -L 9990:localhost:9990. Después, acceda a http://localhost:9990/console para la consola web de JBoss. Si no necesita iniciar sesión en la consola web de JBoss, puede quitar la opción "-L".

Al iniciar sesión en el servidor, verá los mensajes siguientes.

The authenticity of host '[127.0.0.1]:59445 ([127.0.0.1]:59445)' can't be established.
ECDSA key fingerprint is SHA256:vHsp1b3+7NtnHISvZ6aKS82pww+e5L6CUc9fKaPZGDQ.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[127.0.0.1]:59445' (ECDSA) to the list of known hosts.
root@127.0.0.1's password:
   _|_|
 _|    _|  _|_|_|_|  _|    _|  _|  _|_|    _|_|
 _|_|_|_|      _|    _|    _|  _|_|      _|_|_|_|
 _|    _|    _|      _|    _|  _|        _|
 _|    _|  _|_|_|_|    _|_|_|  _|          _|_|_|

     J A V A   O N   A P P   S E R V I C E

Documentation: https://aka.ms/appservice

**NOTE**: No files or system changes outside of /home will persist beyond your application's current session. /home is your application's persistent storage and is shared across all the server instances.

Ejecución del comando de la CLI de JBoss

Después de iniciar sesión en el servidor remoto, puede ejecutar la herramienta de la CLI de administración de JBoss EAP como jboss-cli.sh. El comando de la CLI se encuentra en el directorio /opt/eap/bin/.

Conéctese a JBoss EAP mediante el comando siguiente:

/opt/eap/bin/jboss-cli.sh --connect
Picked up JAVA_TOOL_OPTIONS: -Xmx2402M -Djava.net.preferIPv4Stack=true 

Después de conectarse al servidor de JBoss EAP, ejecute el comando de la CLI de JBoss y obtenga la información del servidor de JBoss:

[standalone@localhost:9990 /] :product-info
{
    "outcome" => "success",
    "result" => [{"summary" => {
        "host-name" => "295cf7c97684",
        "instance-identifier" => "24bb4e37-ac89-42bc-b87e-d635d37a56f3",
        "product-name" => "JBoss EAP",
        "product-version" => "7.4.2.GA",
        "product-community-identifier" => "Product",
        "product-home" => "/opt/eap",
        "last-update-date" => "4/26/22, 10:29 PM",
        "standalone-or-domain-identifier" => "STANDALONE_SERVER",
        "host-operating-system" => "Ubuntu 20.04.4 LTS",
        "host-cpu" => {
            "host-cpu-arch" => "amd64",
            "host-core-count" => 2
        },
        "jvm" => {
            "name" => "OpenJDK 64-Bit Server VM",
            "java-version" => "11",
            "jvm-version" => "11.0.14.1",
            "jvm-vendor" => "Microsoft",
            "java-home" => "/usr/lib/jvm/msopenjdk-11-amd64"
        }
    }}]

Puede obtener todas las aplicaciones implementadas con el comando siguiente:

[standalone@localhost:9990 /] ls deployment
ROOT.war

Después, ejecute el comando siguiente para probar la conexión de base de datos:

[standalone@localhost:9990 /] /subsystem=datasources/data-source="JPAWorldDataSourceDS":test-connection-in-pool
{
    "outcome" => "success",
    "result" => [true]
}

Salga de la CLI de JBoss EAP.

exit

Acceso a la consola web de administración de JBoss EAP

A continuación, se accederá a la consola web de administración de JBoss.

En primer lugar, cree un usuario administrador y una contraseña para la autenticación:

/opt/eap/bin/add-user.sh -u admin -p admin -r ManagementRealm

Debería ver una salida similar a la siguiente.

Picked up JAVA_TOOL_OPTIONS: -Xmx5480M -Djava.net.preferIPv4Stack=true
Updated user 'admin' to file '/opt/eap/standalone/configuration/mgmt-users.properties'
Updated user 'admin' to file '/opt/eap/domain/configuration/mgmt-users.properties'

Ahora puede acceder a la consola web desde el entorno local. Con un explorador, acceda a la siguiente dirección URL:

http://127.0.0.1:9990/console

En el cuadro de diálogo de autenticación, inicie sesión con el nombre de usuario y la contraseña que ha creado antes:

Screenshot that shows the authentication dialog box for the admin console.

Después de iniciar sesión en la consola web, aparecerá la pantalla siguiente:

Screenshot that shows the main page of the admin console.

Puede confirmar el origen de datos creado desde Configuration>Subsystems>Datasources & Drivers>Datasources (Configuración > Subsistemas > Orígenes de datos y controladores > Orígenes de datos).

Screenshot that shows the list of data sources on the admin console.

También puede confirmar los puntos de conexión RESTful de la aplicación desde Runtime>System>JAX-RS>Your Application (Entorno de ejecución > Sistema > JAX-RS >La aplicación).

Screenshot that shows RESTful endpoints on the admin console.

Advertencia

Si accede directamente al servidor remoto mediante el comando de la CLI de JBoss o de la consola web, y agrega o actualiza una configuración, la configuración se borrará y se eliminará después de que se reinicie la instancia de Azure App Service. Para conservar la configuración, configúrela en un script de inicio. Por ejemplo, en una unidad anterior se ha creado createMySQLDataSource.sh como un script de inicio.

Apertura de un flujo de registro

A continuación, iniciará sesión en el servidor y accederá a los registros de aplicaciones. Para acceder a los registros, inicie sesión en la máquina local con el comando siguiente:

az webapp log tail --name ${WEBAPP_NAME} --resource-group ${RESOURCEGROUP_NAME}

Después de ejecutar el comando, obtendrá la salida del registro:

az webapp log tail  -n jakartaee-app-on-jboss-1606464084546 \
  -g jakartaee-app-on-jboss-1606464084546-rg

2020-12-09T02:23:24.412067731Z: [INFO]  02:23:24,411 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 82) WFLYUT0021: Registered web context: '/' for server 'default-server'
2020-12-09T02:23:24.455340165Z: [INFO]  02:23:24,453 INFO  [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0010: Deployed "ROOT.war" (runtime-name : "ROOT.war")
2020-12-09T02:23:24.464834646Z: [INFO]  02:23:24,456 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 45) WFLYSRV0010: Deployed "activemq-rar.rar" (runtime-name : "activemq-rar.rar")
2020-12-09T02:23:24.674103836Z: [INFO]  02:23:24,673 INFO  [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0212: Resuming server
2020-12-09T02:23:24.676640538Z: [INFO]  02:23:24,675 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: JBoss EAP 7.2.9.GA (WildFly Core 6.0.30.Final-redhat-00001) started in 25914ms - Started 537 of 709 services (345 services are lazy, passive or on-demand)
2020-12-09T02:23:24.680203180Z: [INFO]  02:23:24,679 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://127.0.0.1:9990/management
2020-12-09T02:23:24.680950010Z: [INFO]  02:23:24,680 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990

Resumen del ejercicio

En esta unidad, ha aprendido a configurar e implementar una aplicación de Java EE 8 (Jakarta EE) en JBoss EAP en Azure App Service. Después, ha usado un objeto DataSource para conectar MySQL con JBoss EAP en un script de inicio.

También ha aprendido a acceder al servidor remoto desde la CLI y la GUI mediante un túnel TCP. Por último, ha accedido al archivo de registro desde una máquina local.