Я пытаюсь реализовать плагин nagios, и для этого требуется, чтобы я точно знал, какой объект и атрибут я хочу отслеживать. Дело в том, что мне не удалось найти список в любом месте стандартных объектов и атрибутов jmx. Может кто-то указать мне верное направление? Мне нужно отслеживать такие вещи, как пулы памяти, размер кучи и т.д.
Список объектов и атрибутов JMX?
Ответ 1
Вы всегда можете использовать mBeanServer.queryNames(null, null); для получения всех MBeans, зарегистрированных на определенном mBeanServer
MBeanServer (где mBeanServer
- это MBeanServerConnection
который вы получили либо локально, либо удаленно).
Однако, прежде чем внедрять собственные плагины Nagios, почему бы не использовать уже существующий? Например, jmx4perl check_jmx4perl
который поставляется с инструментами для изучения пространства имен JMX (например, jmx4perl <url> list
для перечисления всех JMX-MBeans с их атрибутами и операциями или j4psh
на основе JMX-оболочки на основе readline с завершением контекстно-зависимой командной строки).
Ответ 2
Вы можете использовать
Set mbeans = mBeanServer.queryNames(null, null);
for (Object mbean : mbeans)
{
WriteAttributes(mBeanServer, (ObjectName)mbean);
}
private void WriteAttributes(final MBeanServer mBeanServer, final ObjectName http)
throws InstanceNotFoundException, IntrospectionException, ReflectionException
{
MBeanInfo info = mBeanServer.getMBeanInfo(http);
MBeanAttributeInfo[] attrInfo = info.getAttributes();
System.out.println("Attributes for object: " + http +":\n");
for (MBeanAttributeInfo attr : attrInfo)
{
System.out.println(" " + attr.getName() + "\n");
}
}
Это будет записывать все имена объектов и их атрибуты...
Ответ 3
С точки зрения сисадмина я полностью понимаю основы для вопроса. Стандартная документация JMX или объекты, которые можно встретить при попытке просмотреть деревья объектов JMX, могут быть подавляющими и запутанными.
Я нашел эту статью Op5 KB весьма полезной в предоставлении достойного обзора объектов JMX, представляющих интерес для JBoss.
Очевидно, что нужно адаптироваться к системе мониторинга, которую они фактически используют, но в примерах достаточно, чтобы какая-либо система мониторинга, использующая nagios.
Ответ 4
Вы ищете JVM-платформу MBean docs?
Есть примеры для получения MBeans и опроса их, например
Платформа ThreadMXBean MBean обеспечивает поддержку отслеживания конфликтов потоков и времени процессора.
Ответ 5
Проверьте MC4J или JConcole - это тривиально, чтобы идти с обоими.