Cvičení – přístup k nástrojům pro správu EAP JBoss a protokolům aplikací

Dokončeno

V tomto cvičení budete přistupovat k nástrojům pro správu JBoss a streamovat protokoly aplikace.

Vytvoření tunelu TCP

Pokud chcete získat přístup ke vzdálenému serveru, musíte vytvořit tunel TCP mezi vzdáleným serverem a místním počítačem. Spusťte následující příkaz:

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

Příkaz vrátí následující výsledek:

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

Z výsledku příkazu získáte následující informace:

Požadované informace Hodnota
Opening tunnel on port PORT_NUMBER (například 59445)
username root
password Docker!

Poznamenejte si heslo a číslo portu. Tyto dvě hodnoty se používají v další části.

Přihlášení pomocí SSH a tunelu TCP

Teď se musíte přihlásit k serveru pomocí příkazu ssh. Otevřete nový příkazový terminál a spusťte následující příkaz:

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

Spropitné

Pokud chcete získat přístup k webové konzole pro správu EAP JBoss, zadejte možnost -L 9990:localhost:9990. Nejprve přistupte k webové konzoli JBoss na http://localhost:9990/console. Pokud se nepotřebujete přihlásit k webové konzole JBoss, můžete odebrat možnost -L.

Při přihlášení k serveru se zobrazí následující zprávy.

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.

Spuštění příkazu rozhraní příkazového řádku JBoss

Po přihlášení ke vzdálenému serveru můžete spustit nástroj rozhraní příkazového řádku pro správu JBoss EAP jako jboss-cli.sh. Příkaz rozhraní příkazového řádku je v adresáři /opt/eap/bin/.

Pomocí následujícího příkazu se připojte k protokolu EAP JBoss:

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

Po připojení k serveru JBoss EAP spusťte příkaz rozhraní příkazového řádku JBoss a získejte informace o serveru 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"
        }
    }}]

Všechny nasazené aplikace můžete získat z následujícího příkazu:

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

Potom otestujte připojení k databázi spuštěním následujícího příkazu:

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

Ukončete rozhraní příkazového řádku JBoss EAP.

exit

Přístup k webové konzole pro správu EAP JBoss

Teď se podíváme na webovou konzolu pro správu JBoss.

Nejprve vytvořte uživatele a heslo správce pro ověřování:

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

Měl by se zobrazit výstup podobný následujícímu.

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'

Teď máte přístup k webové konzole z místního prostředí. V prohlížeči přejděte k následující adrese URL:

http://127.0.0.1:9990/console

V dialogovém okně ověřování se přihlaste pomocí dříve vytvořeného uživatelského jména a hesla:

Snímek obrazovky s dialogovým oknem ověřování konzoly pro správu

Po přihlášení k webové konzole se zobrazí následující obrazovka:

Snímek obrazovky zobrazící hlavní stránku konzoly pro správu

Vytvořený zdroj dat můžete potvrdit v sekci Konfigurace>Subsystémy>Zdroje dat & Ovladače>Zdroje dat.

Snímek obrazovky se seznamem zdrojů dat v konzole pro správu

Koncové body RESTful aplikace můžete také potvrdit z Runtime>System>JAX-RS>vaší aplikace.

snímek obrazovky zobrazující koncové body RESTful v konzole pro správu

Varování

Pokud ke vzdálenému serveru přistupujete přímo pomocí příkazu rozhraní příkazového řádku JBoss nebo webové konzoly a přidáte nebo aktualizujete konfiguraci, konfigurace se vymaže a odstraní po restartování instance služby Azure App Service. Chcete-li zachovat konfiguraci, nakonfigurujte ji ve spouštěcím skriptu. Například jsme vytvořili createMySQLDataSource.sh jako spouštěcí skript v předchozí lekci.

Otevření streamu protokolu

Teď se přihlásíme k serveru a dostaneme se k protokolům aplikace. K protokolům se dostanete tak, že se přihlásíte k místnímu počítači pomocí následujícího příkazu:

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

Po spuštění příkazu získáte výstup protokolu:

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

Souhrn cvičení

V této lekci jste zjistili, jak nakonfigurovat a nasadit aplikaci Java EE 8 (Jakarta EE) do JBoss EAP ve službě Azure App Service. Pak jste použili objekt DataSource pro připojení MySQL k protokolu JBoss EAP ve spouštěcím skriptu.

Také jste zjistili, jak přistupovat ke vzdálenému serveru z rozhraní příkazového řádku i grafického uživatelského rozhraní pomocí tunelu TCP. Nakonec jste k souboru protokolu přistupovali z místního počítače.