Ćwiczenie — uzyskiwanie dostępu do narzędzi administracyjnych protokołu EAP JBoss i dzienników aplikacji
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 polecenia ssh
. 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 opcję -L 9990:localhost:9990
. Następnie uzyskaj dostęp http://localhost:9990/console
dla 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.
Uruchom polecenie JBoss CLI
Po zalogowaniu się na zdalny serwer możesz uruchomić narzędzie wiersza poleceń JBoss EAP dla administratora jako jboss-cli.sh
. Polecenie CLI znajduje się w katalogu /opt/eap/bin/
.
Połącz się z aplikacją 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]
}
Wyjdź z interfejsu wiersza polecenia JBoss EAP.
exit
Uzyskaj dostęp do konsoli administracyjnej JBoss EAP.
Następnie uzyskajmy dostęp do konsoli administracyjnej 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
Powinny zostać wyświetlone dane wyjściowe podobne do poniższych.
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:
Po zalogowaniu się do konsoli sieci Web zostanie wyświetlony następujący ekran:
Możesz potwierdzić utworzone źródło danych z Konfiguracja>Podsystemy>Źródła danych & Sterowniki>Źródła danych.
Możesz również potwierdzić punkty końcowe RESTful swojej aplikacji z Runtime>System>JAX-RS>Twojej aplikacji.
Ostrzeżenie
Jeśli bezpośrednio uzyskujesz dostęp do serwera zdalnego za pomocą polecenia interfejsu wiersza polecenia platformy JBoss bądź konsoli internetowej i dodasz lub zaktualizujesz konfigurację, to po ponownym uruchomieniu wystąpienia usługi Azure App Service konfiguracja zostanie wyczyszczona i usunięta. Aby zachować konfigurację, skonfiguruj ją w skrypcie uruchamiania. Na przykład utworzyliśmy createMySQLDataSource.sh
jako skrypt startowy w poprzedniej lekcji.
Otwórz strumień 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 ćwiczenia
W tej lekcji przedstawiono sposób konfigurowania i wdrażania aplikacji Java EE 8 (Jakarta EE) w aplikacji JBoss EAP w usłudze Azure App Service. Następnie użyto obiektu DataSource
do łączenia programu MySQL z aplikacją 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.