Alıştırma - JBoss EAP yönetim araçlarına ve uygulama günlüklerine erişme

Tamamlandı

Bu alıştırmada JBoss yönetim araçlarına erişip uygulama günlüklerini akışla aktaracaksınız.

TCP tüneli oluşturma

Uzak sunucuya erişmek için uzak sunucunuzla yerel makineniz arasında bir TCP tüneli oluşturmanız gerekir. Şu komutu çalıştırın:

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

Komut aşağıdaki sonucu döndürür:

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

Komut sonucundan aşağıdaki bilgileri alırsınız:

Gerekli bilgiler Değer
Opening tunnel on port PORT_NUMBER (örnek, 59445)
username root
password Docker!

Parolayı ve bağlantı noktası numarasını not alın. Bu iki değer sonraki bölümde kullanılır.

SSH ve TCP tüneli kullanarak oturum açma

Şimdi bir ssh komut kullanarak sunucuda oturum açmanız gerekir. Yeni bir komut terminali açın ve aşağıdaki komutu çalıştırın:

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

Bahşiş

JBoss EAP yönetici web konsoluna erişmek istiyorsanız seçeneğini belirtin -L 9990:localhost:9990 . Ardından JBoss web konsoluna erişim http://localhost:9990/console . JBoss web konsolunda oturum açmanız gerekmiyorsa "-L" seçeneğini kaldırabilirsiniz.

Sunucuda oturum açtığınızda aşağıdaki iletileri görürsünüz.

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.

JBoss CLI komutunu çalıştırma

Uzak sunucuda oturum açtığınızda JBoss EAP yönetici CLI aracını olarak jboss-cli.shçalıştırabilirsiniz. CLI komutu dizinindedir /opt/eap/bin/ .

Aşağıdaki komutu kullanarak JBoss EAP'ye Bağlan:

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

JBoss EAP Sunucusuna bağlandıktan sonra JBoss CLI komutunu çalıştırın ve JBoss sunucu bilgilerini alın:

[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"
        }
    }}]

Dağıtılan tüm uygulamaları aşağıdaki komuttan alabilirsiniz:

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

Ardından, aşağıdaki komutu çalıştırarak veritabanı bağlantısını test edin:

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

JBoss EAP CLI'dan çıkın.

exit

JBoss EAP yönetici web konsoluna erişme

Şimdi JBoss yönetici web konsoluna erişelim.

İlk olarak, kimlik doğrulaması için bir yönetici kullanıcı ve parola oluşturun:

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

Aşağıdakine benzer bir çıktı görmeniz gerekir.

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'

Artık web konsoluna yerel ortamınızdan erişebilirsiniz. Tarayıcı kullanarak aşağıdaki URL'ye erişin:

http://127.0.0.1:9990/console

Kimlik doğrulaması iletişim kutusunda, önceden oluşturulmuş kullanıcı adı ve parolayla oturum açın:

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

Web konsolunda oturum açtığınızda aşağıdaki ekran görüntülenir:

Screenshot that shows the main page of the admin console.

Oluşturduğunuz veri kaynağını Yapılandırma>Alt Sistemleri>Veri Kaynakları ve Sürücüler>Veri Kaynakları'ndan onaylayabilirsiniz.

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

Ayrıca Uygulamanızın RESTful uç noktalarını Çalışma Zamanı>Sistemi>JAX-RS>Uygulamanız'dan da onaylayabilirsiniz.

Screenshot that shows RESTful endpoints on the admin console.

Uyarı

JBoss CLI komutu veya web konsolu aracılığıyla uzak sunucuya doğrudan erişip bir yapılandırma ekler veya güncelleştirirseniz, Azure Uygulaması Hizmeti örneği yeniden başlatıldıktan sonra yapılandırma temizlenir ve silinir. Yapılandırmayı kalıcı hale getirmek için bunu bir başlangıç betiğinde yapılandırın. Örneğin, önceki bir ünitede createMySQLDataSource.sh başlangıç betiği olarak öğesini oluşturduk.

Günlük akışını açma

Şimdi sunucuda oturum açalım ve uygulama günlüklerine erişelim. Aşağıdaki komutla yerel makinenizde oturum açarak günlüklere erişebilirsiniz:

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

Komutu çalıştırdıktan sonra günlük çıkışınızı alırsınız:

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

Alıştırma özeti

Bu ünitede bir Java EE 8 (Jakarta EE) uygulamasını yapılandırmayı ve Azure Uygulaması Hizmeti'nde JBoss EAP'ye dağıtmayı öğrendiniz. Ardından, başlangıç betiğinde MySQL'i JBoss EAP'ye bağlamak için bir nesne kullandınız DataSource .

Ayrıca BIR TCP tüneli kullanarak hem CLI'dan hem de GUI'den uzak sunucuya erişmeyi öğrendiniz. Son olarak, günlük dosyasına yerel bir makineden erişmişsinizdir.