Каким образом программа на Java может лучше всего контролировать состояние системы?

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

Доступен ли пакет, который:

  1. Делает ли такого рода данные доступными для Java?
  2. Работает на Windows или Linux или на обоих?
  3. Открыто / бесплатно / дешево?
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
9
0
12 546
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Несколько месяцев назад я искал такую ​​библиотеку и ничего интересного не нашел. Создать его не невозможно, поэтому я бы рекомендовал это сделать. Возможно, вам понадобится доступ к собственным библиотекам, для этого используйте JNA (это проще, чем JNI). Начните с добавления поддержки нескольких вещей на одной платформе, а затем начните добавлять поддержку других функций и платформ.

Поделитесь этим с нами! Люди начнут его использовать, возможно, даже помогут с разработкой, и вскоре у вас будет полнофункциональная библиотека системного мониторинга для Java.

Самое близкое, что вы найдете, - это библиотека Hyperic Sigar:

http://www.hyperic.com/products/sigar.html

Он не сводится к температурам AFAIK, но показывает вам ряд нативных статистических данных, таких как процессор, память, дисковый ввод-вывод, сетевой ввод-вывод и т. д. Он перенесен на большинство архитектур, на которых сегодня разворачивается Java. Лицензия - GPL, хотя я думаю, что вы также можете купить коммерческие лицензии.

Мы используем Sigar с Terracotta для мониторинга кластера, и нам это очень понравилось.

Температура процессора - это то, что нам особенно нужно, поэтому это серьезное ограничение.

Bob Cross 23.09.2008 03:25

Я считаю, что большая часть такого рода вещей обычно выполняется через SNMP (для профессиональных систем) - это обычный способ сделать такую ​​информацию доступной на основе стандартов. JMX также доступен через SNMP. Тогда возникает вопрос: какие библиотеки SNMP для Java лучше (и поддерживает ли это ваша система)?

Ответ принят как подходящий

Как Windows, так и Linux поддерживают MIB, которые предоставляют параметры, которые вы ищете, через SNMP. Кроме того, большинство крупных поставщиков выпускают специальные MIB для своего серверного оборудования.

Я реализовал SNMP MIB и мониторинг приложений Java, используя коммерческий iReasoning SNMP API, и они отлично работали. Существует также SNMP4J с открытым исходным кодом, с которым у меня лично нет опыта, но выглядит довольно неплохо.

Итак, для ваших нужд вы должны включить публикацию информации SNMP для хостов, которые вы хотите отслеживать. Кодирование не требуется. Это просто проблема конфигурации.

Например, для температуры процессора необходимо включить MIB LM-SENSORS-MIB. Под Linux вы можете использовать клиент snmpwalk, чтобы посмотреть OID .1.3.6.1.4.1.2021.13.16.2.1.3 чтобы увидеть температуру процессора. Как только вы это сделаете и узнаете, что данные публикуются правильно, вы можете приступить к реализации своего реального решения для мониторинга.

Вы можете использовать библиотеку SNMP Java для опроса и подписки на ловушки SNMP для хостов, которые вы хотите отслеживать. Вы также можете использовать любой коммерческий инструмент или инструмент мониторинга с открытым исходным кодом (Google для Консоль SNMP).

Другие вопросы по теме