Esercizio - Accedere agli strumenti di amministrazione e ai log applicazioni di JBoss EAP

Completato

In questo esercizio si eseguirà l'accesso agli strumenti di amministrazione di JBoss e si trasmetteranno in streaming i log applicazioni.

Creare un tunnel TCP

Per accedere al server remoto, è necessario creare un tunnel TCP tra il server remoto e il computer locale. Esegui questo comando:

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

Il comando restituisce il risultato seguente:

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

Il risultato del comando fornisce le informazioni seguenti:

Informazioni necessarie Valore
Opening tunnel on port PORT_NUMBER (ad esempio, 59445)
username root
password Docker!

Prendere nota della password e del numero di porta. Questi due valori vengono usati nella sezione successiva.

Eseguire l'accesso usando SSH e il tunnel TCP

È ora necessario accedere al server usando un comando ssh. Aprire un nuovo terminale di comando ed eseguire il comando seguente:

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

Suggerimento

Se si vuole accedere alla console Web di amministrazione di JBoss EAP, specificare l'opzione -L 9990:localhost:9990. Accedere quindi a http://localhost:9990/console per la console Web di JBoss. Se non è necessario accedere alla console Web di JBoss, è possibile rimuovere l'opzione "-L".

Quando si accede al server, vengono visualizzati i messaggi seguenti.

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.

Eseguire il comando dell'interfaccia della riga di comando di JBoss

Dopo avere effettuato l'accesso al server remoto, è possibile eseguire lo strumento dell'interfaccia della riga di comando di amministrazione di JBoss EAP come jboss-cli.sh. Il comando dell'interfaccia della riga di comando si trova nella directory /opt/eap/bin/.

Stabilire la connessione a JBoss EAP usando il comando seguente:

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

Dopo aver stabilito la connessione al server JBoss EAP, eseguire il comando dell'interfaccia della riga di comando di JBoss e ottenere le informazioni sul server 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"
        }
    }}]

È possibile ottenere tutte le applicazioni distribuite tramite il comando seguente:

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

Testare quindi la connessione di database eseguendo il comando seguente:

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

Uscire dall'interfaccia della riga di comando di JBoss EAP.

exit

Accedere alla console Web di amministrazione di JBoss EAP

Accedere quindi alla console Web di amministrazione di JBoss.

Prima di tutto, creare un utente amministratore e una password per l'autenticazione:

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

L'output dovrebbe essere simile al seguente.

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'

È quindi possibile accedere alla console Web dall'ambiente locale. Usando un browser, accedere all'URL seguente:

http://127.0.0.1:9990/console

Nella finestra di dialogo di autenticazione accedere con il nome utente e la password creati in precedenza:

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

Dopo avere eseguito l'accesso alla console Web, viene visualizzata la schermata seguente:

Screenshot that shows the main page of the admin console.

È possibile verificare l'origine dati creata da Configuration (Configurazione)>Subsystems (Sottosistemi)>Datasources & Drivers (Origini dati e driver)>Datasources (Origini dati).

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

È anche possibile verificare gli endpoint RESTful dell'applicazione da Runtime>System (Sistema)>JAX-RS>Nome applicazione.

Screenshot that shows RESTful endpoints on the admin console.

Avviso

Se si accede direttamente al server remoto tramite la console Web o il comando dell'interfaccia della riga di comando di JBoss e si aggiunge o si aggiorna una configurazione, la configurazione verrà cancellata ed eliminata dopo il riavvio dell'istanza del servizio app di Azure. Per salvare in modo permanente la configurazione, configurare questo comportamento in uno script di avvio. In un'unità precedente è stata ad esempio eseguita la creazione di createMySQLDataSource.sh come script di avvio.

Aprire un flusso di log

Accedere quindi al server e ai log applicazioni. È possibile accedere ai log eseguendo l'accesso nel computer locale tramite il comando seguente:

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

Dopo avere eseguito il comando, si ottiene l'output di log:

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

Esercizio di riepilogo

In questa unità si è appreso come configurare e distribuire un'applicazione Java EE 8 (Jakarta EE) in JBoss EAP nel servizio app di Azure. È stato quindi usato un oggetto DataSource per la connessione di MySQL a JBoss EAP in uno script di avvio.

Si è appreso anche come accedere al server remoto dall'interfaccia della riga di comando (CLI) e dall'interfaccia utente grafica (GUI) usando un tunnel TCP. Infine, è stato eseguito l'accesso al file di log da un computer locale.