Exercice – Accéder aux outils d’administration et aux journaux des applications JBoss EAP

Effectué

Dans cet exercice, vous allez accéder aux outils d’administration JBoss et diffuser en continu les journaux des applications.

Créer un tunnel TCP

Pour accéder au serveur distant, vous devez créer un tunnel TCP entre votre serveur distant et votre ordinateur local. Exécutez la commande suivante :

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

La commande retourne le résultat suivant :

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

Vous obtenez les informations suivantes dans le résultat de la commande :

Informations requises Valeur
Opening tunnel on port PORT_NUMBER (par exemple, 59445)
username root
password Docker!

Notez le mot de passe et le numéro de port. Ces deux valeurs sont utilisées dans la section suivante.

Se connecter avec SSH et le tunnel TCP

Vous devez maintenant vous connecter au serveur à l’aide d’une commande ssh. Ouvrez un nouveau terminal de commande pour exécuter la commande suivante :

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

Conseil

Si vous souhaitez accéder à la console web d’administration de JBoss EAP, spécifiez l’option -L 9990:localhost:9990. Ensuite, accédez à http://localhost:9990/console pour la console web JBoss. Si vous n’avez pas besoin de vous connecter à la console web JBoss, vous pouvez supprimer l’option « -L ».

Les messages suivants s’affichent lorsque vous vous connectez au serveur.

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.

Exécuter la commande CLI JBoss

Une fois connecté au serveur distant, vous pouvez exécuter l’outil CLI d’administration JBoss EAP en tant que jboss-cli.sh. La commande CLI se trouve dans le répertoire /opt/eap/bin/.

Connectez-vous à JBoss EAP à l’aide de la commande suivante :

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

Après vous être connecté au serveur JBoss EAP, exécutez la commande CLI JBoss et récupérez les informations du serveur 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"
        }
    }}]

Vous pouvez obtenir toutes les applications déployées à l’aide de la commande suivante :

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

Ensuite, testez la connexion de base de données en exécutant la commande suivante :

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

Quittez l’interface CLI JBoss EAP.

exit

Accéder à la console web d’administration de JBoss EAP

Accédons maintenant à la console web d’administration de JBoss.

Tout d’abord, créez un utilisateur administrateur et un mot de passe pour l’authentification :

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

Le résultat ressemble à ce qui suit.

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'

Vous pouvez maintenant accéder à la console web à partir de votre environnement local. À l’aide d’un navigateur, accédez à l’URL suivante :

http://127.0.0.1:9990/console

Dans la boîte de dialogue d’authentification, connectez-vous avec le nom d’utilisateur et le mot de passe créés précédemment :

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

Une fois que vous êtes connecté à la console web, l’écran suivant s’affiche :

Screenshot that shows the main page of the admin console.

Vous pouvez vérifier la source de données que vous avez créée dans Configuration>Sous-systèmes>Sources de données et pilotes>Sources de données.

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

Vous pouvez également vérifier les points de terminaison RESTful de votre application dans Runtime>Système>JAX-RS>Votre application.

Screenshot that shows RESTful endpoints on the admin console.

Avertissement

Si vous accédez directement au serveur distant via la console web ou la commande CLI JBoss, et que vous ajoutez ou mettez à jour une configuration, la configuration sera effacée et supprimée après le redémarrage de l’instance Azure App Service. Pour rendre la configuration persistante, configurez-la dans un script de démarrage. Par exemple, nous avons créé createMySQLDataSource.sh comme un script de démarrage dans une unité précédente.

Ouvrir un flux de journaux

Nous allons maintenant nous connecter au serveur et accéder au journal des applications. Vous pouvez accéder aux journaux en vous connectant à votre ordinateur local à l’aide de la commande suivante :

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

Une fois que vous avez exécuté la commande, vous recevez la sortie du journal :

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

Résumé de l’exercice

Dans cette unité, vous avez vu comment configurer et déployer une application Java EE 8 (Jakarta EE) dans JBoss EAP sur Azure App Service. Ensuite, vous avez utilisé un objet DataSource pour connecter MySQL à JBoss EAP dans un script de démarrage.

Vous avez également vu comment accéder au serveur distant à partir de l’interface CLI et de l’interface graphique utilisateur à l’aide d’un tunnel TCP. Enfin, vous avez accédé au fichier journal à partir d’un ordinateur local.