Вопрос или проблема
У нас около 250 серверов Red Hat Linux. На всех из них была установлена Oracle JDK/JRE. Нам нужно заменить Oracle JDK/JRE на OpenJDK/JRE.
Меня попросили выяснить, используется ли Java на этих машинах. Oracle предлагает Java Usage Tracker.
Я пытался следовать инструкциям, но пока это не сработало. Вот мой файл usagetracker.properties
# Файл свойств шаблона UsageTracker.
# Скопируйте в <каталог JRE>/conf/management/usagetracker.properties
# (или <каталог JRE>/lib/management/usagetracker.properties для
# версий JRE до 9) и отредактируйте, раскомментировав необходимые параметры, чтобы включить.
com.oracle.usagetracker.enabled = true
# Настройки для логирования в файл:
# Используйте прямые слэши (/) потому что обратный слэш - это символ экранирования в
# файле свойств.
com.oracle.usagetracker.logToFile = ~/.java_usagetracker
# com.oracle.usagetracker.logToFile = /u01/downloads/javausage.log
# Настройки для логирования в UDP сокет:
# com.oracle.usagetracker.logToUDP = hostname.domain:32139
# (Дополнительно) Укажите предел размера файла в байтах:
com.oracle.usagetracker.logFileMaxSize = 10000000
# Если запись должна включать дополнительные свойства Java,
# это может быть список, разделенный запятыми:
# com.oracle.usagetracker.additionalProperties =
# Дополнительные параметры:
# com.oracle.usagetracker.verbose = true
com.oracle.usagetracker.separator = ,
com.oracle.usagetracker.quote = "
com.oracle.usagetracker.innerquote="
Я не вижу лог-файла в указанном месте в usagetracker.properties
. Пожалуйста, дайте знать, что я делаю не так.
Если это будет работать на одной машине, я смогу использовать Ansible, чтобы распространить это на остальные.
Ответ или решение
К сожалению, ваш вопрос был закрыт как требующий уточнений и дополнительных деталей. Однако я постараюсь ответить на ваш запрос и помочь вам с настройкой Java Usage Tracker на ваших серверах.
Вы пытаетесь включить трекер использования Java (Java Usage Tracker) для определения, используется ли Java на ваших серверах с Red Hat Linux. Давайте разберемся, какую помощь я могу вам оказать.
-
Проверка настройки файла usagetracker.properties:
- Убедитесь, что файл
usagetracker.properties
находится в правильной директории. Для JRE 9 и выше он должен находиться в<JRE directory>/conf/management/
. Если у вас более ранняя версия JRE, он должен находиться в<JRE directory>/lib/management/
. - Убедитесь, что вы правильно установили и раскомментировали настройки, включая
com.oracle.usagetracker.enabled = true
.
- Убедитесь, что файл
-
Логирование:
- В строке, где указано
com.oracle.usagetracker.logToFile = ~/.java_usagetracker
, обратите внимание, что~
может не интерпретироваться корректно в некоторых окружениях, поэтому попробуйте указать полный путь к каталогу. Например:com.oracle.usagetracker.logToFile = /home/ваш_пользователь/.java_usagetracker
- Проверьте, есть ли у пользователя, под которым работает Java (например, при запуске вашего приложения), права на запись в каталог, указанный для лога.
- В строке, где указано
-
Запуск Java с поддержкой Usage Tracker:
- Убедитесь, что вы запускаете ваше Java-приложение с правильными разрешениями и что системные переменные настроены правильно. Например, возможно, вам потребуется установить переменную окружения
JAVA_HOME
на правильный путь к вашему JRE.
- Убедитесь, что вы запускаете ваше Java-приложение с правильными разрешениями и что системные переменные настроены правильно. Например, возможно, вам потребуется установить переменную окружения
-
Тестирование:
- После внесения изменений перезапустите приложение, использующее Java, для того чтобы проверить, начинает ли созданный лог файл записывать данные.
- Если у вас есть доступ к командной строке, вы можете выполнить простую Java-программу, чтобы проверить работоспособность трекера. Например:
public class TestJavaUsage { public static void main(String[] args) { System.out.println("Java Usage Tracker test."); } }
- Скомпилируйте и выполните эту программу, чтобы проверить, создается ли файл лога и записывает ли он данные.
-
Использование Ansible для развертывания:
- После успешного тестирования на одной машине вы можете подготовить плейбук Ansible для автоматического развертывания настроек на оставшиеся серверы.
- Пример плейбука может выглядеть следующим образом:
- hosts: all tasks: - name: Copy usagetracker.properties copy: src: /path/to/local/usagetracker.properties dest: /path/to/remote/jre/conf/management/usagetracker.properties become: yes
Надеюсь, эта информация окажется полезной в решении вашей задачи. Если у вас возникнут дальнейшие вопросы или проблемы, пожалуйста, не стесняйтесь уточнять!