Esercizio - Accedere agli strumenti di amministrazione e ai log applicazioni di JBoss EAP
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:
Dopo avere eseguito l'accesso alla console Web, viene visualizzata la schermata seguente:
È possibile verificare l'origine dati creata da Configuration (Configurazione)>Subsystems (Sottosistemi)>Datasources & Drivers (Origini dati e driver)>Datasources (Origini dati).
È anche possibile verificare gli endpoint RESTful dell'applicazione da Runtime>System (Sistema)>JAX-RS>Nome applicazione.
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.