2009-09-10 4 views
11

Я пытаюсь найти решение, позволяющее контролировать потребление ресурсов сервером. Предпочтительно, чтобы показатели, которые я хочу получить, - это использование IO сети, и, если возможно, использование ЦП/средняя загрузка и диск IO.Простой мониторинг сервера с помощью Java

Единственное другое требование, которое у меня есть, это то, что эту информацию можно получить с помощью Java, чтобы ее можно было манипулировать и, по крайней мере, работать с Linux (Fedora).

Я слышал о нескольких инструментах мониторинга, но я просто не уверен в лучшем способе этого. Вероятно, я хочу собирать информацию каждые 30 секунд.

Благодаря

Update: Только повторно итерация, я имею в виду общесистемный мониторинга НЕ Java конкретного мониторинг. Я просто хочу использовать Java для доступа к этим показателям.

+0

Ваш вопрос непонятен. Вы имеете в виду «серверный процесс» или вы имеете в виду сам сервер, когда вы говорите «сервер». Похоже, что вы имеете в виду последний, но ответ JMX (см. Ниже), если он написан с точки зрения вашего значения. –

+0

Прошу прощения, если это было неясно - я говорю о целом сервере, поскольку я по существу хочу знать работоспособность сервера для масштабирования. Важнейшей метрикой является использование сети. – MSR

+2

Если использование сети является наиболее важным показателем, я не уверен, что JMX поможет вам, и я бы подумал о том, чтобы использовать Cacti и Java API для чтения данных RDD. –

ответ

0

Ваш лучший выбор, вероятно, будет выглядеть в/proc для всех ваших ресурсов использования ресурсов/proc/cpuinfo и/proc/net /. Это хорошее место для начала.

1

Вы можете изучить инструмент мониторинга Ganglia. Он использует XML для представления своих данных, и поэтому я предполагаю, что было бы довольно просто получить доступ к данным из Java, и есть дополнительные преимущества, которые он был разработан, чтобы быть очень масштабируемыми, с возможностью записи метрик сервера в большом количестве машины.

3

Вы можете выбрать делегирование мониторинга специальному инструменту, например Cacti, Centreon, или Zenoss, но это может быть немного излишним для одного приложения.

Для простого решения JMX действительно может быть лучшим решением. В качестве отправной точки я предлагаю прочитать следующую статью: Monitoring Local and Remote Applications Using JMX 1.2 and JConsole. Тогда взгляните на Using JConsole to Monitor Applications, очень подробную статью, которая показывает , как использовать JConsole для доступа несколько функциональных возможностей мониторинга основных и управления, основанного на платформе Java, в том числе:

  • Обнаружение низкой памяти
  • Включение или отключение GC и класса нагрузки многословным трассировку
  • Обнаружение тупиков
  • Контроль уровня протоколирования любых лесорубов в приложении
  • доступа ресурсы-Sun OS расширения платформы
  • Управление Управляемые Бобы приложений '(MBeans)

Но, AFAIK, JMX не даст вам доступ к сети IO, так что вы, возможно, потребуется сочетание этих инструментов , К счастью, многие инструменты (например, Cacti, SmokePing) используют формат RDD, с которым вы можете легко манипулировать с помощью API Java, например JRobin или rdd4j.

0

Что случилось с Runtime.exec («некоторая команда»)?

1

Я расту любят collectd, модульная C демон фокусирования на мониторинге (а не графический) с множеством plugins:

Казалось бы, несколько оп ЦИИ для получения метрик в код Java:

  • в процессе, используя вышеупомянутую Java plugin для регистрации записи обратного вызова для получения данных из различных других плагин
  • по сети, путем встраивания jcollectd (реализации Java протокола collectd в) в приложении
  • косвенно, путем записи в CSV или файл RRD и с помощью одного из различных реализаций RRD для Java
2

Просто хочу, чтобы бросить RHQ (HTTP: // RHQ-проекта. org /) в mix :-)

-1

Я не уверен, поможет ли это в вашем запросе. ИМХО Кактусы и Центрон кажутся слишком сложными, чтобы инвестировать время в требование, столь же простое, как ваше. Есть более простые инструменты для мониторинга сервера, такие как New Relic и SeaLion. SeaLion - мой любимый. Он предоставляет простые команды по умолчанию, которые охватывают большинство основных требований (также, вероятно, будут покрывать ваши). Это также очень просто настроить и бесплатно. Вы могли бы попробовать их.

Смежные вопросы