Упражнение. Доступ к средствам администрирования и журналам приложений JBoss EAP

Завершено

В этом упражнении вы получите доступ к средствам администрирования JBoss и выполните потоковую передачу журналов приложений.

Создание TCP-туннеля

Чтобы получить доступ к удаленному серверу, необходимо создать TCP-туннель между удаленным сервером и локальным компьютером. Выполните следующую команду:

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

Эта команда возвращает следующий результат:

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

Вы получите следующие сведения из результата выполнения команды.

Необходимые сведения Значение
Opening tunnel on port PORT_NUMBER (например, 59445)
username root
password Docker!

Запишите пароль и номер порта. Эти два значения используются в следующем разделе.

Вход с помощью SSH и TCP-туннеля

Теперь необходимо войти на сервер с помощью команды ssh. Откройте новое окно терминала и выполните следующую команду:

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

Совет

Если вы хотите получить доступ к веб-консоли администратора JBoss EAP, укажите параметр -L 9990:localhost:9990. Затем откройте адрес http://localhost:9990/console для доступа к веб-консоли JBoss. Если вам не нужно выполнять вход в веб-консоль JBoss, можно удалить параметр -L.

При входе на сервер отображаются следующие сообщения.

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

После входа на удаленный сервер вы можете запустить средство администрирования JBoss EAP CLI в виде файла jboss-cli.sh. Команда CLI расположена в каталоге /opt/eap/bin/.

Подключитесь к JBoss EAP с помощью следующей команды:

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

После подключения к серверу JBoss EAP выполните команду JBoss CLI и получите сведения о сервере 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"
        }
    }}]

Все развернутые приложения можно получить с помощью следующей команды:

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

Затем проверьте подключение к базе данных, выполнив следующую команду:

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

Выход из интерфейса командной строки JBoss EAP.

exit

Доступ к веб-консоли администратора JBoss EAP

Теперь давайте получим доступ к веб-консоли администрирования JBoss.

Сначала создайте пользователя и пароль администратора для аутентификации:

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

Вы должны увидеть результат, аналогичный приведенному ниже.

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'

Теперь доступ к веб-консоли можно получить из локальной среды. Откройте в браузере следующий URL-адрес:

http://127.0.0.1:9990/console

В диалоговом окне аутентификации выполните вход с помощью ранее созданного имени пользователя и пароля:

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

После входа в веб-консоль появится следующий экран:

Screenshot that shows the main page of the admin console.

Вы можете проверить созданный источник данных, перейдя в раздел Конфигурация>Подсистемы>Источники данных и драйверы>Источники данных.

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

Кроме того, можно проверить конечные точки REST приложения, перейдя в раздел Среда выполнения>Система>JAX-RS>Ваше приложение.

Screenshot that shows RESTful endpoints on the admin console.

Предупреждение

Если вы напрямую обращаетесь к удаленному серверу через команду JBoss CLI или веб-консоль, а затем добавляете или изменяете конфигурацию, эта конфигурация будет очищена и удалена после перезапуска экземпляра Служб приложений Azure. Чтобы сохранить конфигурацию, настройте ее в сценарии запуска. Например, в качестве скрипта запуска мы создали файл createMySQLDataSource.sh в предыдущем уроке.

Открытие потока журнала

Теперь давайте войдем на сервер и получим доступ к журналам приложения. Чтобы получить доступ к журналам, выполните вход на локальном компьютере с помощью следующей команды:

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

После выполнения команды вы получите выходные данные журнала:

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

Сводка по упражнению

В этом уроке вы узнали, как настроить и развернуть приложение Java EE 8 (Jakarta EE) в JBoss EAP в Службе приложений Azure. Затем вы использовали DataSource объект для подключения MySQL к JBoss EAP в скрипте запуска.

Вы также узнали, как получить доступ к удаленному серверу из интерфейса командной строки и графического пользовательского интерфейса с помощью TCP-туннеля. Наконец, вы получили доступ к файлу журнала с локального компьютера.