Java opts как правильно выставить параметры
Перейти к содержимому

Java opts как правильно выставить параметры

Как изменить java opts для tomcat, когда мы запускаем его как службу windows вручную?

Я вручную запускаю tomcat 6 в качестве службы windows на консоли. Мне нужно изменить java_opts перед его началом. Как мне это сделать? Кроме того, есть ли способ, которым я могу видеть журналы динамически?

4 ответов

изменить $JAVA_OPTS , вам, вероятно, потребуется отредактировать пакетный файл, который вы используете для запуска Tomcat. Я не запускаю Tomcat в Windows, но $JAVA_OPTS появляется в my catalina.sh внутри bin/ каталог на моей установке Linux.

Что касается динамического просмотра журналов в Windows, есть несколько вариантов, о которых я знаю.

  1. Загрузите и установите Cygwin, а затем в командной строке используйте tail -f logfilename как и в Linux.
  2. получить BearTail запрограммируйте и используйте это, чтобы следовать вашим файлам журнала.

Я знаю, что это старый поток, но необходимо исправить некоторые предположения.

просто FYI, Каталина.bat не используется при запуске tomcat в качестве службы. вот метод изменения JAVA_OPTS для tomcat, работающего как служба windows.

  1. откройте службы и нажмите на службу Tomcat. Запишите имя службы (скорее всего, Tomcat6).
  2. cd в каталог Tomcat bin

tomcat6w//ES / / Tomcat6 (замените имя службы, если оно отличается)

нажмите на вкладку «Java»

добавьте параметры (каждый в новой строке) в поле параметры Java и установите начальную и максимальную память в 1536 и 2048

— XX: MaxPermSize=256m — Джава.ОУ.безголовый=истина — Джава.сеть.preferIPv4Stack=true

Нажмите кнопку «Применить»

изменить настройки, создайте файл setenv.bat для окон или setenv.sh для Linux с записью, как показано ниже:

проще говоря(setenv.bat/setenv.sh) файл в папке %CATALINA_HOME%\bin\. Ваш командный файл (catalina.bat/catalina.sh) уже есть заявление, как показано ниже:

Элиф [- r «$CATALINA_HOME/bin/setenv.sh»]; затем . «$CATALINA_HOME/bin/setenv.sh» fi Это позаботится об остальном.

вы можете установить переменную среды JAVA_OPTS вручную через командную строку перед запуском Tomcat:

Как использовать переменную среды JAVA_OPTS?

Как я могу использовать JAVA_OPTS переменная для настройки веб-сервера (сервера Linux)?

Как я могу установить -Djava.awt.headless=true через JAVA_OPTS ?

задан 09 марта ’11, 02:03

6 ответы

JAVA_OPTS — это стандартная переменная среды, которую некоторые серверы и другие Java-приложения добавляют к вызову, выполняющему java команда.

Например, в tomcat, если вы определяете JAVA_OPTS=’-Xmx1024m’ , сценарий запуска будет выполнен java org.apache.tomcat.Servert -Xmx1024m

Если вы работаете в Linux/OSX, вы можете установить JAVA_OPTS прямо перед вызовом сценария запуска, выполнив

Это будет продолжаться только до тех пор, пока открыта консоль. Чтобы сделать его более постоянным, вы можете добавить его в свой файл

ответ дан 09 мар ’11, в 05:03

если вы запускаете полностью исполняемый jar-файл Spring boot, вы можете указать свойство -D, например, JAVA_OPTS=»-Dspring.profiles.active=test» ./myapp.jar — Жугуовей

Просто понял, что в Oracle Java переменная окружения называется: JAVA_TOOL_OPTIONS а не JAVA_OPTS

ответ дан 09 мая ’14, 07:05

JAVA_OPTS это переменная среды, используемая tomcat в своем сценарии запуска/выключения для настройки параметров.

Вы можете установить его в Linux с помощью

ответ дан 09 мар ’11, в 05:03

JAVA_OPTS не ограничивается процессом Java Tomcat, а передается всем процессам JVM, работающим на одном компьютере.

использование CATALINA_OPTS если вы специально хотите передать аргументы JVM механизму сервлета Tomcat.

ответ дан 04 авг.

Это не совсем правильно. Многие «процессы JVM» вообще не обращают внимания на $JAVA_OPTS. Например, ни одна из java-команд Oracle, Apache «mvn», Apache «ant». — Стивен С

Настройка приложения Java для Службы приложений Azure

Служба приложений Azure позволяет разработчикам быстро создавать, развертывать и масштабировать веб-приложения на основе пакетов Java SE, Tomcat и JBoss EAP в полностью управляемой службе. Возможно развертывание приложений с подключаемыми модулями Maven из командной строки или в редакторах, например Visual Studio Code, Eclipse или IntelliJ.

Это руководство содержит основные понятия и инструкции для разработчиков для Java, использующих Службу приложений Azure. Если вы раньше не использовали Службу приложений Azure, мы рекомендуем сначала ознакомиться с кратким руководством по Java. Ответы на общие вопросы об использовании службы приложений, не относящиеся к разработке для Java, можно найти в разделе вопросов и ответов о Службе приложений Azure.

Отображение версии Java

Чтобы отобразить сведения о текущей версии Java, выполните в Cloud Shell следующую команду.

Чтобы отобразить сведения обо всех поддерживаемых версиях Java, выполните в Cloud Shell следующую команду.

Чтобы отобразить сведения о текущей версии Java, выполните в Cloud Shell следующую команду.

Чтобы отобразить сведения обо всех поддерживаемых версиях Java, выполните в Cloud Shell следующую команду.

Развертывание приложения

Build Tools

Maven

Подключаемый модуль Maven для веб-приложений Azure позволяет легко подготовить проект Maven на Java для веб-приложения Azure с помощью одной команды в корневом каталоге проекта:

Эта команда добавляет подключаемый модуль azure-webapp-maven-plugin и связанную с ним конфигурацию, предлагая выбрать существующее веб-приложение Azure или создать новое. После этого вы можете развернуть приложение Java в Azure, используя приведенную ниже команду.

Пример конфигурации в файле pom.xml :

Gradle

Настройте сведения о веб-приложении. Соответствующие ресурсы Azure будут созданы, если они не существуют. Ниже приведен пример конфигурации. Дополнительные сведения см. в этом документе.

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

Интегрированные среды разработки

Azure поддерживает удобные возможности для разработки Java-приложений в Службе приложений в популярных интегрированных средах разработки Java, включая:

  • VS Code: веб-приложения Java с Visual Studio Code
  • IntelliJ IDEA:создание веб-приложения Hello World для Службы приложений Azure с помощью IntelliJ
  • Eclipse:создание веб-приложения Hello World для Службы приложений Azure с помощью Eclipse

API Kudu

Java SE

Чтобы развернуть файлы JAR в Java SE, используйте конечную точку /api/publish/ сайта Kudu. Дополнительные сведения об этом API см. в этой документации.

Чтобы Служба приложений Azure могла идентифицировать и запускать ваше приложение JAR, ему необходимо назначить имя app.jar . Подключаемый модуль Maven (упомянутый выше) будет автоматически переименовывать приложение во время развертывания. Если вы не хотите переименовывать JAR-файл в app.jar, то можете отправить скрипт оболочки с командой для выполнения вашего приложения JAR. Вставьте абсолютный путь в этот скрипт в текстовом поле Файл запуска в разделе конфигурации на портале. Скрипт запуска не выполняется в каталоге, в который он помещен. Поэтому всегда используйте абсолютные пути для создания ссылок на файлы в скрипте запуска (например, java -jar /home/myapp/myapp.jar ).

Tomcat

Чтобы развернуть файлы WAR в Tomcat, используйте конечную точку /api/wardeploy/ для публикации файла архива. Дополнительные сведения об этом API см. в этой документации.

JBoss EAP

Чтобы развернуть файлы WAR в JBoss, используйте конечную точку /api/wardeploy/ для публикации файла архива. Дополнительные сведения об этом API см. в этой документации.

Чтобы развернуть файлы EAR, используйте протокол FTP. Приложение EAR будет развернуто в корне контекста, определенном в конфигурации приложения. Например, если корень контекста приложения — <context-root>myapp</context-root> , вы можете найти сайт по пути /myapp : http://my-app-name.azurewebsites.net/myapp . Если вы хотите, чтобы веб-приложение обслуживалось в корневом каталоге, убедитесь, что приложение задает корень контекста для корневого каталога: <context-root>/</context-root> . Дополнительные сведения см. в разделе Установка корня контекста веб-приложения.

Не развертывайте файлы WAR или JAR с помощью FTP. Средство FTP предназначено для передачи сценариев запуска, зависимостей или других файлов среды выполнения. Оно не является оптимальным решением для развертывания веб-приложений.

Ведение журнала и отладка приложений

Отчеты о производительности, визуализация трафика и проверка работоспособности доступны на портале Azure для каждого приложения. Дополнительные сведения см. в статье Обзор диагностики Службы приложений Azure.

Потоковая передача журналов диагностики

Чтобы получить доступ к журналам консоли, созданным в коде приложения в Службе приложений, включите ведение журнала диагностики, выполнив следующую команду в Cloud Shell:

Возможные значения для —level : Error , Warning , Info и Verbose . Каждый последующий уровень включает предыдущий уровень. Например: Error включает только сообщения об ошибках, а Verbose включает все сообщения.

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

Если журналы консоли не отображаются, проверьте еще раз через 30 секунд.

Вы также можете проверить файлы журнала в браузере на странице https://<app-name>.scm.azurewebsites.net/api/logs/docker .

Чтобы остановить потоковую передачу журналов, нажмите клавиши Ctrl + C .

Можно получить доступ к журналам консоли, которые были созданы в контейнере.

Сначала включите ведение журнала контейнера, выполнив следующую команду:

Замените <app-name> и <resource-group-name> именами, подходящими для вашего веб-приложения.

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

Если журналы консоли не отображаются, проверьте еще раз через 30 секунд.

Чтобы остановить потоковую передачу журналов, нажмите клавиши CTRL+C.

Вы также можете проверить файлы журнала в браузере на странице https://<app-name>.scm.azurewebsites.net/api/logs/docker .

Доступ к консоли SSH

Чтобы открыть прямой сеанс SSH с контейнером, необходимо запустить приложение.

Вставьте следующий URL-адрес в браузер и замените <app-name> именем вашего приложения:

Если вы не прошли аутентификацию, это потребуется сделать, подключившись с помощью подписки Azure. После выполнения проверки подлинности отобразится оболочка в браузере. Здесь можно запускать команды внутри контейнера.

SSH connection

Любые изменения, внесенные не в каталоге /home, сохраняются в самом контейнере и не применяются до перезапуска приложения.

Чтобы открыть удаленный сеанс SSH на локальном компьютере см. инструкцию в разделе Открытие сеанса SSH из удаленной оболочки.

Средства диагностики

Встроенные образы Java основаны на операционной системе Alpine Linux. Используйте диспетчер пакетов apk , чтобы установить любые средства или команды для устранения неполадок.

«Черный ящик»

Все среды выполнения Java в Службе приложений Azure, которые используют виртуальные машины Java Azul, поставляются с черным ящиком Zulu. Его можно использовать для записи событий виртуальной машины Java, системы и приложения, а также для устранения проблем в приложениях Java.

Запись за интервал времени

Для получения записи за интервал времени потребуется идентификатор процесса приложения Java. Чтобы найти PID, откройте браузер на сайте SCM веб-приложения по адресу https://<your-site-name>.scm.azurewebsites.net/ProcessExplorer/ . На этой странице отображаются запущенные процессы в веб-приложении. Найдите в таблице процесс с именем java и скопируйте соответствующий PID (идентификатор процесса).

Затем откройте консоль отладки на верхней панели инструментов сайта SCM и выполните следующую команду. Замените <pid> идентификатором процесса, скопированным ранее. Эта команда запускает 30-секундную запись профилировщика приложения Java и создает файл с именем timed_recording_example.jfr в каталоге D:\home .

Подключитесь к Службе приложений Azure по протоколу SSH и выполните команду jcmd , чтобы просмотреть список всех запущенных процессов Java. Кроме jcmd, вы также должны увидеть, что приложение Java выполняется с идентификатором процесса (PID).

Выполните приведенную ниже команду, чтобы запустить 30-секундную запись виртуальной машины Java. Это приведет к профилированию виртуальной машины Java и созданию JFR-файла с именем jfr_example.jfr в домашнем каталоге. (Замените 116 идентификатором PID приложения Java.)

В течение 30-секундного интервала можно проверить запись, выполнив команду jcmd 116 JFR.check . Будут показаны все записи для данного процесса Java.

Непрерывная запись

Вы можете использовать Zulu Flight Recorder для непрерывного профилирования приложения Java с минимальным влиянием на производительность среды выполнения. Для этого выполните следующую команду Azure CLI, чтобы создать параметр приложения JAVA_OPTS с требуемой конфигурацией. Содержимое параметра приложения JAVA_OPTS передается команде java при запуске приложения.

После начала записи вы можете в любое время сохранить дамп текущих данных, используя команду JFR.dump .

Анализ файлов .jfr

Используйте FTPS, чтобы скачать JFR-файл на локальный компьютер. Чтобы проанализировать JFR-файл, скачайте и установитеZulu Mission Control. Инструкции по Zulu Mission Control см. в документации Azul и инструкциях по установке.

Ведение журнала приложений

Включите ведение журнала приложений с помощью портала Azure или Azure CLI, чтобы настроить службу приложений для записи выходных данных стандартной консоли приложения и потоков ошибок стандартной консоли в локальную файловую систему или хранилище BLOB-объектов Azure. Запись журналов в локальную файловую систему экземпляра службы приложений отключается через 12 часов после настройки ведения журнала. Если необходимо более длительное хранение, настройте приложение для записи выходных данных в контейнер больших двоичных объектов. Журналы приложений Java и Tomcat можно найти в каталоге /home/LogFiles/Application/ .

Включите ведение журнала приложений с помощью портала Azure или Azure CLI, чтобы настроить службу приложений для записи выходных данных стандартной консоли приложения и потоков ошибок стандартной консоли в локальную файловую систему или хранилище BLOB-объектов Azure. Если необходимо более длительное хранение, настройте приложение для записи выходных данных в контейнер больших двоичных объектов. Журналы приложений Java и Tomcat можно найти в каталоге /home/LogFiles/Application/ .

Ведение журнала хранилища BLOB-объектов Azure для служб приложений на основе Linux можно настроить только с помощью Azure Monitor

Если приложение использует Logback или Log4j для трассировки, то эти данные трассировки можно передать в Azure Application Insights для просмотра, выполнив инструкции по настройке платформы ведения журнала в разделе Просмотр журналов трассировки Java в Application Insights.

Из-за известной уязвимости CVE-2021-44228 обязательно используйте Log4j версии 2.16 или более поздней.

Настройка

Служба приложений Azure поддерживает настройку с помощью портала Azure и интерфейса командной строки. Ознакомьтесь со следующими статьями о настройке конкретных веб-приложений не на платформе Java:

Настройка параметров среды выполнения Java

Чтобы настроить выделенную память или другие параметры среды выполнения виртуальной машины Java, создайте параметр приложения с именем JAVA_OPTS с параметрами. При запуске Служба приложений Azure передает этот параметр в качестве переменной среды в среду выполнения Java.

На портале Azure в разделе Параметры приложения для веб-приложения создайте параметр приложения JAVA_OPTS для Java SE или CATALINA_OPTS для Tomcat с другими параметрами, такими как -Xms512m -Xmx1204m .

Чтобы настроить параметр приложения из подключаемого модуля Maven, добавьте теги «параметр/значение» в раздел подключаемого модуля Azure. В следующем примере задаются минимальный и максимальный размеры кучи для Java.

При использовании Tomcat в службе приложений Windows создавать файл web.config не нужно.

Разработчики, запускающие отдельное приложение в одном слоте развертывания в плане службы приложений, могут использовать следующие параметры.

  • Экземпляры B1 и S1: -Xms1024m -Xmx1024m
  • Экземпляры B2 и S2: -Xms3072m -Xmx3072m
  • Экземпляры B3 и S3: -Xms6144m -Xmx6144m
  • Экземпляры P1v2: -Xms3072m -Xmx3072m
  • Экземпляры P2v2: -Xms6144m -Xmx6144m
  • Экземпляры P3v2: -Xms12800m -Xmx12800m
  • Экземпляры P1v3: -Xms6656m -Xmx6656m
  • Экземпляры P2v3: -Xms14848m -Xmx14848m
  • Экземпляры P3v3: -Xms30720m -Xmx30720m
  • Экземпляры I1: -Xms3072m -Xmx3072m
  • Экземпляры I2: -Xms6144m -Xmx6144m
  • Экземпляры I3: -Xms12800m -Xmx12800m
  • Экземпляры I1v2: -Xms6656m -Xmx6656m
  • Экземпляры I2v2: -Xms14848m -Xmx14848m
  • Экземпляры I3v2: -Xms30720m -Xmx30720m

При настройке параметров кучи приложения просмотрите сведения о плане службы приложений и примите во внимание, что наличие нескольких приложений и одного слота развертывания требует оптимального выделения памяти.

Включение веб-сокетов

Включите для приложения поддержку веб-сокетов на портале Azure в разделе Параметры приложения. Необходимо будет перезапустить приложение, чтобы этот параметр вступил в силу.

Включите поддержку веб-сокетов с помощью Azure CLI, выполнив следующую команду.

Затем перезапустите приложение.

Настройка кодировки по умолчанию

На портале Azure в разделе Параметры приложения для веб-приложения создайте параметр приложения JAVA_OPTS со значением -Dfile.encoding=UTF-8 .

Можно также настроить параметр приложения с помощью подключаемого модуля Maven для службы приложений. Добавьте теги имени и значения параметра в конфигурацию подключаемого модуля.

Предварительная компиляция JSP-файлов

Чтобы повысить производительность приложений Tomcat, можно скомпилировать JSP-файлы перед развертыванием в службе приложений. Вы можете использовать подключаемый модуль Maven, предоставляемый Apache Sling, или использовать этот файла сборки Ant.

Защита приложений

Для приложений Java, работающих в Службе приложений Azure, предлагается тот же набор рекомендаций по обеспечению безопасности, что и для других приложений.

Аутентификация пользователей (Easy Auth)

Настройте аутентификацию приложения на портале Azure с помощью параметра Проверка подлинности и авторизация. Вы можете включить аутентификацию с помощью Azure Active Directory или имен для входа в социальные сети, таких как Facebook, Google или GitHub. На портале Azure можно настроить только один поставщик аутентификации. Дополнительные сведения приведены в разделе Настройка приложения службы приложений для использования входа с помощью Azure Active Directory и связанных статьях о других поставщиках удостоверений. Если необходимо включить несколько поставщиков входа, следуйте инструкциям в статье о настройке входа и выхода.

Java SE

Разработчики для Spring Boot могут использовать краткое руководство по использованию Spring Boot и Azure Active Directory, чтобы защитить приложения с помощью привычных заметок и интерфейсов API Spring Security. Увеличьте максимальный размер заголовка в файле application.properties. Мы рекомендуем использовать значение 16384 .

Tomcat

Приложение Tomcat может получить доступ к утверждениям пользователя непосредственно из сервлета, приведя объект Principal к объекту Map. Объект Map будет сопоставлять каждый тип утверждения с коллекцией утверждений для этого типа. В приведенном ниже коде request является экземпляром HttpServletRequest .

Теперь можно проверить объект Map для любого конкретного утверждения. Например, следующий фрагмент кода выполняет перебор всех типов утверждений и выводит содержимое каждой коллекции.

Для завершения сеансов пользователей используйте путь /.auth/ext/logout . Другие действия описаны в документации по настройке входа и выхода. Существует также официальная документация по интерфейсу Tomcat HttpServletRequest и его методам. В зависимости от конфигурации Службы приложений также происходит расконсервация следующих методов сервлета:

Чтобы отключить эту функцию, создайте параметр приложения с именем WEBSITE_AUTH_SKIP_PRINCIPAL со значением 1 . Чтобы отключить все фильтры сервлета, добавленные службой приложений, создайте параметр с именем WEBSITE_SKIP_FILTERS со значением 1 .

Настройка TLS/SSL

Следуйте инструкциям в разделе Защита пользовательского DNS-имени с помощью привязки TLS/SSL в Службе приложений Azure, чтобы передать существующий TLS/SSL-сертификат и привязать его к доменному имени приложения. По умолчанию приложение по-прежнему будет разрешать HTTP-подключения. Выполните соответствующие инструкции в этом руководстве, чтобы принудительно включить TLS/SSL.

Использование возможностей Key Vault

Azure Key Vault обеспечивает централизованное управление секретами с помощью политик доступа и журнала аудита. Вы можете хранить секреты (например, пароли или строки подключения) в Key Vault и обращаться к этим секретам в приложении с помощью переменных среды.

Прежде всего, следуйте инструкциям, чтобы предоставить приложению доступ к Key Vault и сделать ссылку Key Vault на секрет в параметре приложения. Чтобы проверить, что ссылка разрешается в секрет, можно выполнить печать переменной среды во время удаленного доступа к терминалу Службы приложений.

Чтобы внедрить эти секреты в файл конфигурации Spring или Tomcat, используйте синтаксис внедрения переменных среды ( $ ). Дополнительные сведения о файлах конфигурации Spring см. в этой документации по внешним конфигурациям.

Использование хранилища ключей Java

По умолчанию все общедоступные или частные сертификаты, отправленные в Службу приложений Linux, будут загружены в соответствующие хранилища ключей Java при запуске контейнера. После отправки сертификата необходимо перезапустить Службу приложений, чтобы она загрузилась в хранилище ключей Java. Общедоступные сертификаты загружаются в хранилище ключей в $JAVA_HOME/jre/lib/security/cacerts , а частные сертификаты хранятся в $JAVA_HOME/lib/security/client.jks .

Для шифрования подключения JDBC с сертификатами в хранилище ключей Java может потребоваться дополнительная настройка. Дополнительные сведения см. в документации по выбранному драйверу JDBC.

Инициализация хранилища ключей Java

Чтобы инициализировать объект import java.security.KeyStore , загрузите файл хранилища ключей с паролем. Пароль по умолчанию для обоих хранилищ ключей — changeit .

Загрузка хранилища ключей вручную

Сертификаты можно загрузить в хранилище ключей вручную. Создайте параметр приложения SKIP_JAVA_KEYSTORE_LOAD со значением 1 , чтобы отключить автоматическую загрузку сертификатов в хранилище ключей Службой приложений. Все общедоступные сертификаты, отправленные в Службу приложений через портал Azure, хранятся в /var/ssl/certs/ . Закрытые сертификаты хранятся в /var/ssl/private/ .

Вы можете взаимодействовать с инструментом для работы с ключами Java или отлаживать его, открыв SSH-подключение к Службе приложений и выполнив команду keytool . Список команд см. в документации по инструменту для работы с ключами. Дополнительные сведения об API хранилища ключей см. в официальной документации.

Настройка платформ APM

В этом разделе показано, как связать приложения Java, развернутые в Службе приложений Azure, с платформами мониторинга производительности (APM) приложений Azure Monitor Application Insights, NewRelic и AppDynamics.

Настройка Application Insights

Azure Monitor Application Insights — это собственная облачная служба мониторинга приложений, которая позволяет клиентам наблюдать за сбоями, узкими местами и шаблонами использования для повышения производительности приложений и сокращения среднего времени разрешения (MTTR). С помощью нескольких щелчков мыши или команд CLI вы можете включить мониторинг для приложений Node.js или Java, автоматический сбор журналов, метрик и распределенных трассировок, что позволяет не включать пакет SDK в приложение. Дополнительные сведения о доступных параметрах приложения для настройки агента см. в документации по Application Insights.

Портал Azure

Чтобы включить Application Insights на портале Azure, перейдите в раздел Application Insights в меню слева и выберите Включить Application Insights. По умолчанию будет использоваться новый ресурс Application Insights с тем же именем, что и у вашего веб-приложения. Вы можете выбрать существующий ресурс Application Insights или изменить имя нового ресурса. Нажмите кнопку Добавить внизу.

Azure CLI

Чтобы включить Application Insights с помощью Azure CLI, необходимо создать ресурс Application Insights и настроить несколько параметров приложения на портале Azure для подключения Application Insights к вашему веб-приложению.

Включение расширения Application Insights

Создайте ресурс Application Insights с помощью следующей команды CLI. Замените значения заполнителей нужными именами ресурса и группы.

Запишите значения параметров connectionString и instrumentationKey , они понадобятся на следующем шаге.

Чтобы получить список других расположений, выполните az account list-locations .

Задайте ключ инструментирования, строку подключения и версию агента мониторинга в качестве параметров приложения в веб-приложении. Замените <instrumentationKey> и <connectionString> значениями из предыдущего шага.

Задайте ключ инструментирования, строку подключения и версию агента мониторинга в качестве параметров приложения в веб-приложении. Замените <instrumentationKey> и <connectionString> значениями из предыдущего шага.

Настройка New Relic

Создайте учетную запись NewRelic на сайте NewRelic.com

Скачайте агент Java с NewRelic. Его имя файла будет аналогично newrelic-java-x.x.x.zip.

Скопируйте ключ лицензии. Он понадобиться позже для настройки агента.

Отправьте распакованные файлы агента Java NewRelic в каталог /home/site/wwwroot/apm. Файлы агента должны располагаться в /home/site/wwwroot/apm/newrelic.

Измените файл YAML в каталоге /home/site/wwwroot/apm/newrelic/newrelic.yml и замените значение лицензии в заполнителе собственным ключом лицензии.

На портале Azure перейдите к приложению в службе приложений и создайте параметр приложения.

  • Для приложений Java SE создайте переменную среды JAVA_OPTS со значением -javaagent:/home/site/wwwroot/apm/newrelic/newrelic.jar .
  • Для Tomcat создайте переменную среды CATALINA_OPTS со значением -javaagent:/home/site/wwwroot/apm/newrelic/newrelic.jar .

Создайте учетную запись NewRelic на сайте NewRelic.com

Скачайте агент Java с NewRelic. Его имя файла будет аналогично newrelic-java-x.x.x.zip.

Скопируйте ключ лицензии. Он понадобиться позже для настройки агента.

Отправьте распакованные файлы агента Java NewRelic в каталог /home/site/wwwroot/apm. Файлы агента должны располагаться в /home/site/wwwroot/apm/newrelic.

Измените файл YAML в каталоге /home/site/wwwroot/apm/newrelic/newrelic.yml и замените значение лицензии в заполнителе собственным ключом лицензии.

На портале Azure перейдите к приложению в службе приложений и создайте параметр приложения.

  • Для приложений Java SE создайте переменную среды JAVA_OPTS со значением -javaagent:/home/site/wwwroot/apm/newrelic/newrelic.jar .
  • Для Tomcat создайте переменную среды CATALINA_OPTS со значением -javaagent:/home/site/wwwroot/apm/newrelic/newrelic.jar .

Если у вас уже есть переменная среды JAVA_OPTS или CATALINA_OPTS , добавьте параметр -javaagent:/. в конец текущего значения.

Настройка AppDynamics

Создайте учетную запись AppDynamics на сайте AppDynamics.com

Скачайте агент Java с веб-сайта AppDynamics. Имя файла будет аналогично AppServerAgent-x.x.x.xxxxx.zip.

С помощью консоли Kudu создайте новый каталог /home/site/wwwroot/apm.

Отправьте файлы агента Java в каталог /home/site/wwwroot/apm. Файлы агента должны располагаться в /home/site/wwwroot/apm/appdynamics.

На портале Azure перейдите к приложению в службе приложений и создайте параметр приложения.

  • Для приложений Java SE создайте переменную среды JAVA_OPTS со значением -javaagent:/home/site/wwwroot/apm/appdynamics/javaagent.jar -Dappdynamics.agent.applicationName=<app-name> , где <app-name> — имя Службы приложений Azure.
  • Для Tomcat создайте переменную среды CATALINA_OPTS со значением -javaagent:/home/site/wwwroot/apm/appdynamics/javaagent.jar -Dappdynamics.agent.applicationName=<app-name> , где <app-name> — имя Службы приложений Azure.

Создайте учетную запись AppDynamics на сайте AppDynamics.com

Скачайте агент Java с веб-сайта AppDynamics. Имя файла будет аналогично AppServerAgent-x.x.x.xxxxx.zip.

Отправьте файлы агента Java в каталог /home/site/wwwroot/apm. Файлы агента должны располагаться в /home/site/wwwroot/apm/appdynamics.

На портале Azure перейдите к приложению в службе приложений и создайте параметр приложения.

  • Для приложений Java SE создайте переменную среды JAVA_OPTS со значением -javaagent:/home/site/wwwroot/apm/appdynamics/javaagent.jar -Dappdynamics.agent.applicationName=<app-name> , где <app-name> — имя Службы приложений Azure.
  • Для Tomcat создайте переменную среды CATALINA_OPTS со значением -javaagent:/home/site/wwwroot/apm/appdynamics/javaagent.jar -Dappdynamics.agent.applicationName=<app-name> , где <app-name> — имя Службы приложений Azure.

Если у вас уже есть переменная среды JAVA_OPTS или CATALINA_OPTS , добавьте параметр -javaagent:/. в конец текущего значения.

Настройка источников данных

Java SE

Чтобы подключиться к источникам данных в приложениях Spring Boot, мы рекомендуем создавать строки подключения и внедрять их в файл application.properties.

В разделе «Конфигурация» на странице Службы приложений задайте имя строки, вставьте строку подключения JDBC в поле «Значение» и присвойте типу значение «Пользовательский». При необходимости можно задать эту строку подключения в качестве параметра слота.

Эта строка подключения доступна для нашего приложения в виде переменной среды с именем CUSTOMCONNSTR_<your-string-name> . Например, строка подключения, созданная выше, будет называться CUSTOMCONNSTR_exampledb .

В файле application.properties нужно сослаться на эту строку подключения с именем переменной среды. В нашем примере мы будем использовать следующее.

Tomcat

Эти инструкции применимы ко всем подключениям к базе данных. Необходимо будет заменить значения заполнителей на имя класса драйвера и JAR-файл выбранной базы данных. Ниже приведена таблица с именами классов и ссылками для скачивания драйверов для распространенных баз данных.

База данных Имя класса драйвера Драйвер JDBC
PostgreSQL org.postgresql.Driver Загрузить
MySQL com.mysql.jdbc.Driver Скачать (выберите «Platform Independent» (Независимо от платформы))
SQL Server com.microsoft.sqlserver.jdbc.SQLServerDriver Загрузить

Чтобы настроить Tomcat для использования Java Database Connectivity (JDBC) или Java Persistence API (JPA), сначала настройте переменную среды CATALINA_OPTS , считываемую Tomcat при запуске. Задайте эти значения с помощью параметра приложения в подключаемом модуле Maven для службы приложений:

Переменные среды можно также задать на странице Конфигурация>Параметры приложения на портале Azure.

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

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

Создайте файл context.xml в каталоге проекта META-INF/ . Создайте каталог META-INF/ , если его не существует.

В context.xml добавьте элемент Context , чтобы связать источник данных с адресом JNDI. Замените заполнитель driverClassName именем класса драйвера из приведенной выше таблицы.

Обновите web.xml приложения для использования источника данных в этом приложении.

Общие ресурсы уровня сервера

Установки Tomcat в Службе приложений в Windows существуют в общем пространстве в плане службы приложений. Нельзя напрямую изменить установку Tomcat для конфигурации на уровне сервера. Чтобы внести изменения в конфигурацию установки Tomcat на уровне сервера, необходимо скопировать Tomcat в локальную папку, в которой можно изменить конфигурацию Tomcat.

Автоматизация создания пользовательской версии Tomcat при запуске приложения

Скрипт запуска можно использовать для выполнения действий перед запуском веб-приложения. Скрипт запуска для настройки Tomcat должен выполнить следующие действия.

  1. Проверка, что Tomcat уже скопирован и настроен локально. Если это так, скрипт запуска может завершить работу.
  2. Копирование Tomcat локально.
  3. Внесение необходимых изменений в конфигурацию.
  4. Указание, что конфигурация успешно завершена.

Для сайтов Windows создайте файл startup.cmd или startup.ps1 в каталоге wwwroot . Он будет выполняться автоматически перед запуском сервера Tomcat.

Ниже приведен скрипт PowerShell, который выполняет эти действия.

Преобразования

Распространенным вариантом использования для настройки версии Tomcat является изменение файлов конфигурации Tomcat server.xml , context.xml или web.xml . Служба приложений уже изменяет эти файлы для предоставления функций платформы. Чтобы продолжить использовать этих функций, важно сохранить содержимое этих файлов при внесении в них изменений. Для этого рекомендуется использовать преобразование XSL (XSLT). Используйте преобразование XSL для внесения изменений в XML-файлы с сохранением исходного содержимого файла.

Пример XSLT-файла

В этом примере преобразование добавляет в server.xml новый узел соединителя. Обратите внимание на преобразование удостоверения, которое сохраняет исходное содержимое файла.

Функция для преобразования XSL

В PowerShell имеются встроенные средства для преобразования XML-файлов с помощью преобразований XSL. Следующий скрипт является примером функции, которую можно использовать в startup.ps1 для выполнения преобразования.

Параметры приложения

Платформа также должна иметь представление о том, где установлена пользовательская версия Tomcat. Расположение установки можно задать в параметре приложения CATALINA_BASE .

Вы можете изменить этот параметр с помощью Azure CLI.

Этот параметр также можно изменить вручную на портале Azure.

  1. Перейдите в раздел Параметры>Конфигурация>Параметры приложения.
  2. Выберите Создать параметр приложения.
  3. Для создания параметра используйте следующие значения.
    1. Имя: CATALINA_BASE
    2. Значение: "%LOCAL_EXPANDED%\tomcat"
    Пример startup.ps1

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

    Завершение конфигурации

    Наконец, разместите JAR-файлы драйверов в пути к классам Tomcat и перезапустите Службу приложений Azure. Убедитесь, что файлы драйвера JDBC доступны для загрузчика классов Tomcat, разместив их в каталоге /home/tomcat/lib. (Если этот каталог отсутствует, создайте его.) Чтобы передать эти файлы в экземпляр службы приложений, выполните следующие действия.

    В Cloud Shell установите расширение webapp:

    Выполните следующую команду CLI, чтобы создать туннель SSH между локальной системой и службой приложений.

    Подключитесь к локальному порту туннелирования с помощью клиента SFTP и передайте эти файлы в папку /home/tomcat/lib.

    Кроме того, драйвер JDBC можно отправить с помощью FTP-клиента. Чтобы получить учетные данные FTP, следуйте этим инструкциям.

    Tomcat

    Эти инструкции применимы ко всем подключениям к базе данных. Необходимо будет заменить значения заполнителей на имя класса драйвера и JAR-файл выбранной базы данных. Ниже приведена таблица с именами классов и ссылками для скачивания драйверов для распространенных баз данных.

    База данных Имя класса драйвера Драйвер JDBC
    PostgreSQL org.postgresql.Driver Загрузить
    MySQL com.mysql.jdbc.Driver Скачать (выберите «Platform Independent» (Независимо от платформы))
    SQL Server com.microsoft.sqlserver.jdbc.SQLServerDriver Загрузить

    Чтобы настроить Tomcat для использования Java Database Connectivity (JDBC) или Java Persistence API (JPA), сначала настройте переменную среды CATALINA_OPTS , считываемую Tomcat при запуске. Задайте эти значения с помощью параметра приложения в подключаемом модуле Maven для службы приложений:

    Переменные среды можно также задать на странице Конфигурация>Параметры приложения на портале Azure.

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

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

    Создайте файл context.xml в каталоге проекта META-INF/ . Создайте каталог META-INF/ , если его не существует.

    В context.xml добавьте элемент Context , чтобы связать источник данных с адресом JNDI. Замените заполнитель driverClassName именем класса драйвера из приведенной выше таблицы.

    Обновите web.xml приложения для использования источника данных в этом приложении.

    Общие ресурсы уровня сервера

    Для добавления общего источника данных на уровне сервера потребуется изменить файл server.xml Tomcat. Сначала отправьте сценарий запуска и задайте путь к скрипту в разделе Конфигурация>Команда запуска. Сценарий запуска можно добавить с помощью FTP.

    Сценарий запуска преобразует XSL в файл server.xml и выведет полученный XML-файл в /usr/local/tomcat/conf/server.xml . Сценарий запуска должен установить libxslt через apk. XSL-файл и скрипт запуска можно отправить через FTP. Ниже приведен пример скрипта запуска.

    Пример XSL-файла приведен ниже. В примере XSL-файл добавляет новый узел соединителя в server.xml Tomcat.

    Завершение конфигурации

    Наконец, разместите JAR-файлы драйверов в пути к классам Tomcat и перезапустите службу приложений.

    Убедитесь, что файлы драйвера JDBC доступны для загрузчика классов Tomcat, разместив их в каталоге /home/tomcat/lib. (Если этот каталог отсутствует, создайте его.) Чтобы передать эти файлы в экземпляр службы приложений, выполните следующие действия.

    1. В Cloud Shell установите расширение webapp:
    1. Выполните следующую команду CLI, чтобы создать туннель SSH между локальной системой и службой приложений.
    1. Подключитесь к локальному порту туннелирования с помощью клиента SFTP и передайте эти файлы в папку /home/tomcat/lib.

    Кроме того, драйвер JDBC можно отправить с помощью FTP-клиента. Чтобы получить учетные данные FTP, следуйте этим инструкциям.

    Если вы создали источник данных на уровне сервера, перезапустите приложение Linux службы приложений. Tomcat сбросит CATALINA_BASE до значения /home/tomcat и будет использовать обновленную конфигурацию.

    Источники данных EAP JBoss

    Для регистрации источника данных с помощью JBoss EAP необходимо выполнить три основных шага: передать драйвер JDBC, добавить драйвер JDBC в качестве модуля и зарегистрировать модуль. Служба приложений — это служба размещения без отслеживания состояния, поэтому команды конфигурации для добавления и регистрации модуля источника данных необходимо внести в скрипт и применить при запуске контейнера.

    Получите драйвер JDBC для базы данных.

    Создайте файл определения модуля XML для драйвера JDBC. Ниже приведен пример определения модуля для PostgreSQL.

    Вставьте команды интерфейса командной строки JBoss в файл jboss-cli-commands.cli . Команды JBoss должны добавить модуль и зарегистрировать его в качестве источника данных. В приведенном ниже примере представлены команды интерфейса командной строки JBoss для PostgreSQL.

    Создайте сценарий запуска startup_script.sh , который вызывает команды интерфейса командной строки JBoss. В приведенном ниже примере показано, как вызвать jboss-cli-commands.cli . Позже вы настроите Службу приложений для запуска этого сценария при запуске контейнера.

    С помощью любого FTP-клиента передайте драйвер JDBC jboss-cli-commands.cli , startup_script.sh и определение модуля в /site/deployments/tools/ .

    Настройте сайт для выполнения startup_script.sh при запуске контейнера. На портале Azure перейдите к разделу Конфигурация>Общие параметры>Команда запуска. Задайте полю «Команда запуска» значение /home/site/deployments/tools/startup_script.sh . Сохраните внесенные изменения.

    Чтобы убедиться в том, что источник данных добавлен на сервер JBoss, установите SSH-подключение к веб-приложению и запустите $JBOSS_HOME/bin/jboss-cli.sh —connect . После подключения к JBoss выполните команду /subsystem=datasources:read-resource , чтобы распечатать список источников данных.

    robots933456 в журналах

    В журналах контейнера может отобразиться следующее сообщение:

    Это сообщение можно проигнорировать. /robots933456.txt — это фиктивный URL-путь, с помощью которого Служба приложений проверяет, может ли контейнер обслуживать запросы. Ответ 404 означает, что путь не существует. При этом он информирует Службу приложений о том, что контейнер работоспособен и готов отвечать на запросы.

    Выбор версии среды выполнения Java

    Служба приложений позволяет пользователям выбрать основной номер версии виртуальной машины Java, например Java 8 или Java 11, а также номер исправления, например 1.8.0_232 или 11.0.5. Кроме того, можно выбрать автоматическое обновление номера исправления при появлении новых дополнительных версий. В большинстве случаев для рабочих сайтов следует использовать версии виртуальной машины Java с закрепленными номерами исправлений. Это позволит избежать непредвиденных простоев во время автоматического обновления номера исправления. Все веб-приложения Java используют 64-разрядные виртуальные машины Java; настроить это нельзя.

    При использовании Tomcat можно закрепить версию исправления Tomcat. На Windows версии исправления виртуальной машины Java и Tomcat можно закрепить независимо друг от друга. В Linux можно закрепить версию исправления Tomcat; версия исправления виртуальной машины Java будет также закреплена, но она не настраивается отдельно.

    Если вы решили закрепить дополнительный номер версии, необходимо периодически обновлять дополнительный номер версии виртуальной машины Java на сайте. Чтобы гарантировать выполнение приложения в более новой дополнительной версии, создайте промежуточный слот и увеличьте дополнительный номер версии на промежуточном сайте. Подтвердив правильность работы приложения в новой дополнительной версии, можно поменять местами промежуточный и рабочий слоты.

    JBoss EAP

    Кластеризация в JBoss EAP

    Служба приложений поддерживает кластеризацию для JBoss EAP версии 7.4.1 и выше. Чтобы включить кластеризацию, веб-приложение должно быть интегрировано с виртуальной сетью. При интеграции веб-приложения с виртуальной сетью веб-приложение будет перезапущено и JBoss EAP автоматически запустится с кластерной конфигурацией. Экземпляры JBoss EAP будут взаимодействовать через подсеть, указанную в интеграции виртуальной сети, используя порты, указанные в переменной WEBSITES_PRIVATE_PORTS среды во время выполнения. Кластеризацию можно отключить, создав параметр приложения с именем WEBSITE_DISABLE_CLUSTERING и с любым значением.

    Если вы включаете интеграцию с виртуальной сетью с помощью шаблона ARM, необходимо вручную задать для свойства vnetPrivatePorts значение 2 . Если включить интеграцию с виртуальной сетью с помощью интерфейса командной строки или портала, это свойство будет установлено автоматически.

    Если кластеризация включена, то экземпляры JBoss EAP используют протокол обнаружения FILE_PING JGroups для обнаружения новых экземпляров и сохранения сведений о кластере, таких как члены кластера, их идентификаторы и IP-адреса. В службе приложений эти файлы находятся в папке /home/clusterinfo/ . Первый экземпляр EAP для запуска будет получать разрешения на чтение и запись в файле членства в кластере. Другие экземпляры считывают файл, находят основной узел и координируют с ним свои действия для включения в кластер и добавления в файл.

    Планы службы приложений JBoss EAP

    JBoss EAP доступен только для типов планов службы приложений «Премиум» версии 3 и «Изолированный» версии 2. Клиенты, которые создали сайт JBoss EAP на другом уровне в общедоступной предварительной версии, должны повысить уровень оборудования до «Премиум» или «Изолированный» во избежание непредвиденного поведения.

    Заявление о поддержке среды выполнения Java

    Версии JDK и обслуживание

    Сборки OpenJDK Microsoft и Adoptium предоставляются и поддерживаются в Службе приложений для Java 8, 11 и 17. Эти двоичные файлы предоставляются в виде бесплатных, кросс-платформенных дистрибутивов OpenJDK для Azure. Они содержат все компоненты для сборки и запуска приложений Java SE. Для локальной разработки или тестирования можно установить сборку Microsoft OpenJDK со странице загрузки. В таблице ниже описаны новые версии Java, содержащиеся в выпуске платформы Службы приложений за январь 2022 г.

    Версия Java Linux Windows
    Java 8 1.8.0_312 (Zulu) * 1.8.0_312 (Adoptium)
    Java 11 11.0.13 (MSFT) 11.0.13 (MSFT)
    Java 17 17.0.1 (MSFT) 17.0.1 (MSFT)

    * В следующих выпусках Java 8 в Linux будет распространяться из сборок OpenJDK Adoptium.

    Если у вас закреплена более старая версия Java с определенным дополнительным номером, ваш объект может использовать файлы Zulu для Azure, предоставляемые через Azul Systems. Вы можете продолжать использовать эти файлы в своей организации, однако любые исправления и улучшения системы безопасности будут доступны только в новых версиях OpenJDK, поэтому рекомендуется периодически обновлять веб-приложения до более поздней версии Java.

    Обновления для основного номера версии будут предоставляться посредством новых вариантов среды выполнения в Службе приложений Azure. Пользователи, устанавливающие более новые версии Java посредством настройки развернутой службы приложений, несут ответственность за тестирование выбранных обновлений для основного номера версии и их соответствие своим потребностям.

    Каждый квартал в поддерживаемые пакеты JDK автоматически вносятся исправления. Это происходит в январе, апреле, июле и октябре. Дополнительные сведения о Java в Azure см. в этом документе службы поддержки.

    Обновление системы безопасности

    Исправления для устранения серьезных уязвимостей в системе безопасности будут выпускаться по мере их появления в сборках OpenJDK от Майкрософт. «Серьезными» считаются уязвимости с базовым индексом не меньше 9.0 в NIST Common Vulnerability Scoring System версии 2.

    Срок службы Tomcat 8.0 истек 30 сентября 2018 г. Несмотря на то что среда выполнения по-прежнему доступна в Службе приложений Azure, Azure не будет применять обновления безопасности к Tomcat 8.0. По возможности перенесите приложения в Tomcat 8.5 или 9.0. В Службе приложений Azure доступны Tomcat 8.5 и Tomcat 9.0. Дополнительные сведения см. на официальном веб-сайте Tomcat.

    Поддержка сообщества для Java 7, а также поддержка Java 7 в Службе приложений будет прекращена 29 июля 2022 г. Если у вас есть веб-приложение, работающее на платформе Java 7, обновите его до версии Java 8 или 11 до 29 июля.

    Нерекомендуемые версии и прекращение использования

    Если планируется прекращение использования какой-либо поддерживаемой среды выполнения Java, то разработчики для Azure, использующие эту среду выполнения, получат соответствующее уведомление по крайней мере за шесть месяцев до прекращения использования.

    Локальная разработка

    Разработчики могут скачать выпуск Production Edition пакета Azul Zulu Enterprise JDK для локальной разработки с сайта загрузки Azul.

    Поддержка разработки

    Техническая поддержка сборки OpenJDK от Майкрософт при разработке в Azure или Azure Stack предоставляется корпорацией Майкрософт в рамках плана поддержки Azure.

    Дальнейшие действия

    Посетите центр Azure для разработчиков Java, чтобы найти краткие руководства Azure, руководства и справочную документацию по Java.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *