Übung: Zugreifen auf die Verwaltungstools und die Anwendungsprotokolle von JBoss EAP

Abgeschlossen

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:

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

Nachdem Sie sich bei der Webkonsole angemeldet haben, wird die folgende Anzeige angezeigt:

Screenshot that shows the main page of the admin console.

Sie können Ihre erstellte Datenquelle über Configuration>Subsystems>Datasources & Drivers>Datasources (Konfiguration > Subsysteme > Datenquellen und Treiber > Datenquellen) überprüfen.

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

Über Runtime>System>JAX-RS>Ihre Anwendung können Sie die RESTful-Endpunkte Ihrer Anwendung ebenfalls überprüfen.

Screenshot that shows RESTful endpoints on the admin console.

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.