Übung: Zugreifen auf die Verwaltungstools und die Anwendungsprotokolle von JBoss EAP
In dieser Übung greifen Sie auf die Verwaltungstools von JBoss zu und streamen die Anwendungsprotokolle.
Erstellen eines TCP-Tunnels
Für den Zugriff auf den Remoteserver müssen Sie zwischen dem Remoteserver und Ihrem lokalen Computer einen TCP-Tunnel erstellen. Führen Sie den folgenden Befehl aus:
az webapp create-remote-connection -n ${WEBAPP_NAME} -g ${RESOURCEGROUP_NAME}
Der Befehl gibt das folgende Ergebnis zurück:
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
Das Ergebnis des Befehls liefert die folgenden Informationen:
Erforderliche Informationen | Wert |
---|---|
Opening tunnel on port |
PORT_NUMBER (z. B. 59445 ) |
username |
root |
password |
Docker! |
Notieren Sie sich das Kennwort und die Portnummer. Diese beiden Werte werden im nächsten Abschnitt verwendet.
Anmelden mit SSH und TCP-Tunnel
Nun müssen Sie sich beim Server anmelden. Verwenden Sie hierzu den Befehl ssh
. Öffnen Sie ein neues Befehlsterminal, und führen Sie den folgenden Befehl aus:
export PORT_NUMBER=<the port number from above>
ssh root@127.0.0.1 -L 9990:localhost:9990 -p $PORT_NUMBER
Tipp
Wenn Sie über die Webkonsole für die Verwaltung in JBoss EAP zugreifen möchten, geben Sie die Option -L 9990:localhost:9990
an. Rufen Sie anschließend http://localhost:9990/console
für die JBoss-Webkonsole auf. Wenn Sie sich bei der JBoss-Webkonsole nicht anmelden müssen, können Sie die „-L“-Option entfernen.
Wenn Sie sich beim Server anmelden, werden die folgenden Meldungen angezeigt.
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.
Ausführen des JBoss-CLI-Befehls
Nachdem Sie sich beim Remoteserver angemeldet haben, können Sie das CLI-Tool für die Verwaltung in JBoss EAP als jboss-cli.sh
ausführen. Der CLI-Befehl befindet sich im /opt/eap/bin/
-Verzeichnis.
Stellen Sie mithilfe des folgenden Befehls eine Verbindung mit JBoss EAP her:
/opt/eap/bin/jboss-cli.sh --connect
Picked up JAVA_TOOL_OPTIONS: -Xmx2402M -Djava.net.preferIPv4Stack=true
Nachdem Sie eine Verbindung mit dem JBoss EAP-Server hergestellt haben, führen Sie den JBoss-CLI-Befehl aus, und Sie rufen die Informationen zum JBoss-Server ab:
[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"
}
}}]
Über den folgenden Befehl können Sie alle bereitgestellten Anwendungen abrufen:
[standalone@localhost:9990 /] ls deployment
ROOT.war
Testen Sie als Nächstes die Datenbankverbindung, indem Sie folgenden Befehl ausführen:
[standalone@localhost:9990 /] /subsystem=datasources/data-source="JPAWorldDataSourceDS":test-connection-in-pool
{
"outcome" => "success",
"result" => [true]
}
Beenden Sie die JBoss EAP-CLI.
exit
Zugreifen auf die Webkonsole zur Verwaltung in JBoss EAP
Als Nächstes rufen Sie die JBoss-Verwaltungswebkonsole auf.
Erstellen Sie zunächst einen Administratorbenutzer und ein Kennwort für die Authentifizierung:
/opt/eap/bin/add-user.sh -u admin -p admin -r ManagementRealm
Eine Ausgabe ähnlich der folgenden sollte angezeigt werden.
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'
Daraufhin können Sie die Webkonsole über Ihre lokale Umgebung aufrufen. Greifen Sie über einen Browser auf folgende URL zu:
http://127.0.0.1:9990/console
Melden Sie sich im Dialogfeld für die Authentifizierung mit dem zuvor erstellten Benutzername und dem Kennwort an:
Nachdem Sie sich bei der Webkonsole angemeldet haben, wird die folgende Anzeige angezeigt:
Sie können Ihre erstellte Datenquelle über Configuration>Subsystems>Datasources & Drivers>Datasources (Konfiguration > Subsysteme > Datenquellen und Treiber > Datenquellen) überprüfen.
Über Runtime>System>JAX-RS>Ihre Anwendung können Sie die RESTful-Endpunkte Ihrer Anwendung ebenfalls überprüfen.
Warnung
Wenn Sie über den JBoss-CLI-Befehl oder die Webkonsole direkt auf den Remoteserver zugreifen und eine Konfiguration hinzufügen oder aktualisieren, wird die Konfiguration nach dem Neustart der Azure App Service-Instanz gelöscht. Wenn Sie die Konfiguration beibehalten möchten, konfigurieren Sie dies in einem Startskript. Sie haben beispielsweise in einer vorherigen Lerneinheit createMySQLDataSource.sh
als Startskript erstellt.
Öffnen eines Protokollstreams
Melden Sie sich als Nächstes beim Server an, und öffnen Sie die Anwendungsprotokolle. Der Zugriff auf die Protokolle ist möglich, indem Sie sich bei Ihrem lokalen Computer mithilfe des folgenden Befehls anmelden:
az webapp log tail --name ${WEBAPP_NAME} --resource-group ${RESOURCEGROUP_NAME}
Nach Ausführung des Befehls erhalten Sie die Protokollausgabe:
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
Zusammenfassung der Übung
In dieser Lerneinheit haben Sie erfahren, wie eine Java EE 8-Anwendung (Jakarta EE) für JBoss EAP in Azure App Service konfiguriert und bereitgestellt wird. Danach haben Sie ein DataSource
-Objekt zum Herstellen einer Verbindung von MySQL mit JBoss EAP in einem Startskript erstellt.
Zudem haben Sie erfahren, wie Sie auf den Remoteserver über die Befehlszeilenschnittstelle und die grafische Benutzeroberfläche mithilfe eines TCP-Tunnels zugreifen. Schließlich haben Sie die Protokolldatei über den lokalen Computer aufgerufen.