2011-07-07 18 views
11

Próbuję zaimplementować wtyczkę nagios, a wykonanie tego wymaga, żebym dokładnie wiedział, jaki obiekt i atrybut chcę monitorować. Chodzi o to, że nie byłem w stanie znaleźć nigdzie ze standardowych obiektów i atrybutów jmx systemu. Czy ktoś może wskazać mi właściwy kierunek? Potrzebuję monitorować takie rzeczy jak pule pamięci, rozmiar sterty, itp.Lista obiektów i atrybutów JMX?

Odpowiedz

17

zawsze można użyć mBeanServer.queryNames(null, null); na dotarcie do wszystkich MBean'ami zarejestrowanych w pewnym MBeanServer (gdzie mBeanServer jest MBeanServerConnection której uzyskuje lokalnie lub zdalnie).

Jednak przed wdrożeniem własnych wtyczek Nagios, może warto skorzystać z już istniejącej wtyczki? Na przykład. jmx4perl 's check_jmx4perl dostarczana z narzędziami do eksploracji przestrzeni nazw JMX (na przykład jmx4perl <url> list w celu wyświetlenia wszystkich MBM JMX z ich atrybutami i operacjami lub j4psh powłoką JMX opartą na readline z ukończeniem wiersza poleceń).

+0

No dobrze, oglądaliśmy check_jmx, który jest już stworzony. Zajrzę do jmx4perl. Dzięki! – Matthew

0

Szukasz JVM platform MBean docs?

Istnieją przykłady, aby pobrać MBean i przesłuchać je np.

ThreadMXBean platforma MBean zapewnia wsparcie dla monitorowania wątek rywalizacji i procesora wątek czasie.

+0

Szczerze mówiąc nie jestem pewien? Miałem nadzieję, że będzie coś w rodzaju "tutaj jest lista każdego obiektu, a tutaj jest podlista jego atrybutów składowych". Może nie doceniam, jak duży jest standardowy materiał JMX? – Matthew

+0

http://download.oracle.com/javase/1.5.0/docs/api/java/lang/management/package-frame.html wydawało się bardzo pomóc. Czy jest coś podobnego dla innych komponentów bean MX? Przepraszam, jeśli te pytania są bardziej niejasne niż powinny, nie jestem całkowicie pewien semantyki JMX. – Matthew

0

Zapoznaj się z MC4J lub JConcole - to trywialne, aby zacząć z obu z nich.

+0

Próbowałem użyć jconsole, ale nie działa na CLI (przynajmniej daje mnóstwo błędów podczas próby uruchomienia). – Matthew

+0

Jakie rodzaje błędów? – helios

+0

Jest to wyjątek java stwierdzający, że nie znaleziono serwera X. Większość dokumentacji jconsole wskazuje na konieczność używania GUI. Nie można połączyć się z serwerem bankomatowym, aby uzyskać lepsze wyjaśnienie. Później zamieszczę wyjątki. – Matthew

0

Z punktu widzenia sysadmin, w pełni rozumiem podstawy dla pytania. Standardowa dokumentacja JMX lub obiekty, które można napotkać podczas przeglądania drzew obiektów JMX, mogą być przytłaczające i mylące.

Znalazłem ten Op5 KB article bardzo przydatne w dostarczaniu przyzwoitego przeglądu obiektów JMX zainteresowania JBoss.

Oczywiście należy dopasować się do systemu monitorowania, którego faktycznie używają, ale w przykładach wystarcza, aby zastosować dowolny system monitorowania oparty na nagiosach.

17

Można użyć

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"); 
    } 
} 

Pozwoli to napisać wszystkie nazwy obiektów i ich atrybutów ...

+0

Dzięki! To było bardzo przydatne! – Neoryder

Powiązane problemy