Ć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 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:
Po zalogowaniu się do konsoli sieci Web zostanie wyświetlony następujący ekran:
Możesz potwierdzić utworzone źródło danych na podstawie źródeł danych podsystemów>konfiguracji>i źródeł danych sterowników.>
Możesz również potwierdzić punkty końcowe RESTful aplikacji z poziomu środowiska uruchomieniowego>SYSTEM>JAX-RS>Twoja aplikacja.
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.