Ćwiczenie — uzyskiwanie dostępu do narzędzi administracyjnych protokołu EAP JBoss i dzienników aplikacji

Ukończone

W tym ćwiczeniu będziesz uzyskiwać dostęp do narzędzi administracyjnych JBoss i przesyłać strumieniowo dzienniki aplikacji.

Tworzenie tunelu TCP

Aby uzyskać dostęp do serwera zdalnego, należy utworzyć tunel TCP między serwerem zdalnym a maszyną lokalną. Uruchom następujące polecenie:

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

Polecenie zwraca następujący wynik:

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 wyniku polecenia uzyskasz następujące informacje:

Wymagane informacje Wartość
Opening tunnel on port PORT_NUMBER (na przykład 59445)
username root
password Docker!

Zanotuj hasło i numer portu. Te dwie wartości są używane w następnej sekcji.

Logowanie przy użyciu protokołu SSH i tunelu TCP

Teraz musisz zalogować się do serwera przy użyciu ssh polecenia . Otwórz nowy terminal poleceń i uruchom następujące polecenie:

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

Napiwek

Jeśli chcesz uzyskać dostęp do konsoli sieci Web administracyjnej protokołu JBoss EAP, określ -L 9990:localhost:9990 opcję. Następnie dostęp do http://localhost:9990/console konsoli sieci Web JBoss. Jeśli nie musisz logować się do konsoli sieci Web JBoss, możesz usunąć opcję "-L".

Podczas logowania się do serwera są wyświetlane następujące komunikaty.

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.

Uruchamianie polecenia interfejsu wiersza polecenia narzędzia JBoss

Po zalogowaniu się do serwera zdalnego możesz uruchomić narzędzie interfejsu wiersza polecenia administratora JBoss EAP jako jboss-cli.sh. Polecenie interfejsu /opt/eap/bin/ wiersza polecenia znajduje się w katalogu .

Połączenie do protokołu JBoss EAP przy użyciu następującego polecenia:

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

Po nawiązaniu połączenia z serwerem JBoss EAP uruchom polecenie interfejsu wiersza polecenia JBoss i uzyskaj informacje o serwerze 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"
        }
    }}]

Wszystkie wdrożone aplikacje można pobrać z następującego polecenia:

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

Następnie przetestuj połączenie z bazą danych, uruchamiając następujące polecenie:

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

Zamknij interfejs wiersza polecenia JBoss EAP.

exit

Uzyskiwanie dostępu do konsoli sieci Web administracyjnej protokołu JBoss EAP

Następnie uzyskajmy dostęp do konsoli sieci Web JBoss.

Najpierw utwórz użytkownika administratora i hasło na potrzeby uwierzytelniania:

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

Wyświetlone dane wyjściowe powinny wyglądać mniej więcej tak.

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'

Teraz możesz uzyskać dostęp do konsoli internetowej ze środowiska lokalnego. Korzystając z przeglądarki, uzyskaj dostęp do następującego adresu URL:

http://127.0.0.1:9990/console

W oknie dialogowym uwierzytelniania zaloguj się przy użyciu wcześniej utworzonej nazwy użytkownika i hasła:

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

Po zalogowaniu się do konsoli sieci Web zostanie wyświetlony następujący ekran:

Screenshot that shows the main page of the admin console.

Możesz potwierdzić utworzone źródło danych na podstawie źródeł danych podsystemów>konfiguracji>i źródeł danych sterowników.>

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

Możesz również potwierdzić punkty końcowe RESTful aplikacji z poziomu środowiska uruchomieniowego>SYSTEM>JAX-RS>Twoja aplikacja.

Screenshot that shows RESTful endpoints on the admin console.

Ostrzeżenie

Jeśli uzyskujesz bezpośredni dostęp do serwera zdalnego za pośrednictwem polecenia interfejsu wiersza polecenia programu JBoss lub konsoli sieci Web i dodasz lub zaktualizujesz konfigurację, konfiguracja zostanie wyczyszczone i usunięte po ponownym uruchomieniu wystąpienia usługi aplikacja systemu Azure. Aby utrwały konfigurację, skonfiguruj tę konfigurację w skrycie uruchamiania. Na przykład utworzyliśmy createMySQLDataSource.sh skrypt startowy w poprzedniej lekcji.

Otwieranie strumienia dziennika

Następnie zalogujmy się na serwerze i uzyskajmy dostęp do dzienników aplikacji. Dostęp do dzienników można uzyskać, logując się na komputerze lokalnym za pomocą następującego polecenia:

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

Po uruchomieniu polecenia uzyskasz dane wyjściowe dziennika:

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

Podsumowanie ćwiczeń

W tej lekcji przedstawiono sposób konfigurowania i wdrażania aplikacji Java EE 8 (Jakarta EE) w usłudze JBoss EAP w usłudze aplikacja systemu Azure. Następnie użyto DataSource obiektu do łączenia programu MySQL z narzędziem JBoss EAP w skrypcie uruchamiania.

Przedstawiono również sposób uzyskiwania dostępu do serwera zdalnego zarówno z interfejsu wiersza polecenia, jak i graficznego interfejsu użytkownika przy użyciu tunelu TCP. Na koniec uzyskujesz dostęp do pliku dziennika z komputera lokalnego.