1 / 31

Alkalmazások és alkamazás-kiszolgálók monitorozása

Intelligens rendszerfelügyelet. Alkalmazások és alkamazás-kiszolgálók monitorozása. Kocsis Imre ikocsis @ mit.bme.hu. Felügyelet és szoftverplatformok. Alkalmazások. Virtuális gép / futtatókörnyezet. Middleware. Operációs rendszer. HW. Felügyelet és szoftverplatformok.

xandy
Download Presentation

Alkalmazások és alkamazás-kiszolgálók monitorozása

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Intelligens rendszerfelügyelet Alkalmazások és alkamazás-kiszolgálók monitorozása Kocsis Imre ikocsis@mit.bme.hu

  2. Felügyelet és szoftverplatformok Alkalmazások Virtuális gép / futtatókörnyezet Middleware Operációs rendszer HW

  3. Felügyelet és szoftverplatformok Nagyon Fontos J2EE Alkalmazás WebSphereApplication Server 6.1 IBM JDK WebSphere MQ És ha Windows a platform? AIX IBM xSeriesModel 630

  4. Felügyelet és szoftverplatformok Használat mon.: ~ Alkalmazások ? Virtuális gép / futtatókörnyezet Middleware Operációs rendszer OS monitorozása HW HW mon.: ~

  5. Szolgáltatás-hibabehatárolás és -állapotvizsgálat • Fenomenologikus, szolgáltatás szintű vizsgálat • Teljesítmény- és szolgáltatásbiztonsági jellemzők • N.B.: ezzel még foglalkozunk • Használt erőforrások felügyelete • Miért nem elegendőek? • Nagyon Fontos J2EE Alkalmazás: • A futtatókörnyezet Java folyamata fut • A szolgáltatásunk mégsem elérhető • Ok…?

  6. Alkalmazás állapotának követése • Generikus fogalmak: fut/nem fut • Ezekre persze vannak alacsony/magas szintű eszközök • „Munkavégzés” metrikái • Messze nem teljesen fedhető a már vizsgált eszközökkel • Mik ezek?  később tárgyaljuk • Keretrendszer (ha van) belső állapota • Java: heapmemory, GC, szálak tulajdonságai, … • J2EE alkalmazáskiszolgáló: threadpool-ok, … • Állapot az adott alkalmazás fogalmi rendszerében • Pl. „fontos” aktív objektumok kivételei

  7. Állapot megfigyelhetőségének támogatása • Saját logállományok • Integráció a központosított felügyelethez… • Szükséges vs. elégséges felbontás? ( tisztán „push”) • Platformszintű eseménykezelés kihasználása • Windows Eventlog • syslogd • Saját menedzsment-eszközök • Integráció?

  8. Platform távfelügyeleti támogatás kihasználása • Amiket láttunk, elméletileg működhetnek: • SNMP, CIM-XML, WMI, WS-Management (WinRM), … • Mi határozza meg a praktikus alkalmazhatóságot? • Fejlesztési támogatás kiszolgáló- és kliensoldalon • (Kvázi-)szabványos API és implementációk megléte a gyakorlatban fontosabb lehet, mint a protokoll szabványossága/nyíltsága • Bár a WMI nem (csak) ezért nem nyílt protokollszinten

  9. Alkalmazás-környezetek és szabványos/platforminstrumentáció • OS – Windows: WMI • OS – UNIX-ok és Linux-ok: CIMOM-ok? • .NET technológiák: WMI • PHP, RubyonRails, Python, …: nem jellemző • J2SE és J2EE: JMX

  10. JMX (Java Management Extensions) „Kibocsájtó”: Java CommunityProcess (JCP) Megalkotók: Sun, IBM, Apache, BEA, … Verzió: JMX 2.0, JSR255 (2008) Cél: A Java platform és alkalmazások menedzsmentjének szabványosítása, szerver és kliens oldali API-k és elvárt szolgáltatások megadásával Impl.: J2SE 5.0-tól és J2EE 1.4-től kötelező

  11. A Java platform és menedzsmentje

  12. JMX: alapvető jellemzők • Összetett, API-orientált szabvány • „Java-ból menedzselünk akár távoli Java-t” • Mik lehetnek a tervezői döntések? • Java objektumok metódusainak hívása távolról • Legyen valami menedzsment objektum-bróker • Lokális Java objektumok „feliratkozása” provider-nek • A lokális feliratkozottak távolról lekérdezése • Hívások kezelése • Mindenképpen legyen egyszerűbb, mint az RMI… • … de az implementáció használhatja persze (nyíltság?)

  13. JMX - architektúra

  14. Mbean-ek • „ManagedBean”: alapvetően egy Java objektum • Bean osztály: elnevezési, létrehozási és viselkedési konvenciók • Szinte akármit reprezentálhat • Platform MBean-ek (MXBean): JVM erőforrások • EE környezetek szolgáltatásai (JDBC, tranzakciókezelés, …) • Saját modell

  15. MBeanServer • MBean-eket nyilvántartó objektum • Publikus interfészén: • Létrehozás/törlés • MBean-ek név és név-minta szerinti keresése • MBean-ek attribútum- és metódushalmazának lekérdezése • MBean attribútumok olvasása és írása, metódusok hívása • az MBean-ek által létrehozott jelzésekre feliratkozás • Távoli és lokális interfészei különböznek

  16. MBeanServer interfészek • Távoli/lokális: MBeanServerConnection • http://java.sun.com/j2se/1.5.0/docs/api/javax/management/class-use/MBeanServerConnection.html • Távoli: MBeanServer • http://java.sun.com/j2se/1.5.0/docs/api/javax/management/MBeanServer.html

  17. Konnektorok • MBeanServer(-ek) lokális elérése: factory • staticMBeanServerManagementFactory.getPlatformMBeanServer() //java.lang.management • Másik JVM-ből?

  18. Konnektorok

  19. MBean-ekmetaadatai • MBeanServer kliens Descriptor: „a metaadatmeataadata” (név/érték párok)

  20. Mbean-ek nevei • Az MBean-ekre objektum-referenciánk nincs! Objektum-név: • Domain név: egyszerű, nem hierarchikus névtérkezelés • Kulcs tulajdonságok rendezetlen halmaza • Az „eredeti” típus (Java osztály) nem jelenik meg! Catalina:type=Cache,host=localhost,path=/tomcat-docs Catalina:type=Cache,host=localhost,path=/servlets-examples Catalina:type=ThreadPool,name=jk-8009 java.lang:type=Runtime java.util.logging:type=Logging com.sun.management:type=HotSpotDiagnostic

  21. Platform MBeanServer inicializálása java -Dcom.sun.management.jmxremote.port=9004 \ -Dcom.sun.management.jmxremote.ssl=false \ -Dcom.sun.management.jmxremote.authenticate=false \ DummyServer FIGYELEM: NEM BIZTONSÁGOS!

  22. JConsole és JVisualVM • Eclipse, mint Java folyamat • JConsole: <JDK6_HOME>\bin\jconsole.exe • Csatlakozás az Eclipse Java folyamatra (Attach API) • Képességek áttekintése • JVisualVM: <JDK6_HOME>\bin\jvisualvm.exe • Csatlakozás az Eclipse Java folyamatra (Attach API) • JConsoleplugin installálása • Képességek áttekintése

  23. Programozott hozzáférés [néhány kihagyott import] import javax.management.*; publicclassMyClient { publicstaticvoid main(String[] args){ JMXServiceURLaddress = null; JMXConnectorconnector = null; MBeanServerConnectionconnection = null; try { address = newJMXServiceURL("service:jmx:rmi:///jndi/rmi://"+ "localhost:9004/jmxrmi"); } catch (MalformedURLException e) {e.printStackTrace(); System.exit(1);}

  24. Programozott hozzáférés try { //valós esetben itt kellene még egy paraméter-HashMap connector = JMXConnectorFactory.connect(address); connection = connector.getMBeanServerConnection(); } catch (IOException e) { e.printStackTrace(); System.exit(1); } […] String[] domains = connection.getDomains(); Integer mbc = connection.getMBeanCount(); Set<ObjectName> names = connection.queryNames(null, null); […]

  25. Szkriptelt hozzáférés • Programozott megoldások sokszor feleslegesek • Unix/Linux: bash/ksh/perl/… • Windows: VB, PowerShell, .bat • A Java nyelv ≠ JVM/Java platform • A .NET CLR-re is több nyelv fordítható • JVM-re épülő szkriptnyelvek (fordítás/interpretálás): • Groovy • JRuby • JavaScript  JConsole script shell

  26. Linkek • JMX technologypage (Sun): • http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/ • JMX tutorial: • http://java.sun.com/j2se/1.5.0/docs/guide/jmx/tutorial/tutorialTOC.html • A Tutorial-ban az instrumentáció legalapvetőbb kérdései: • http://java.sun.com/j2se/1.5.0/docs/guide/jmx/tutorial/essential.html#wp1053098 • Egy kliensoldali súlypontú áttekintés: • https://unixlinux.tmit.bme.hu//JMX • JMX adatbiztonság-menedzsment (autentikáció/titkosítás): • http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html

  27. Java 2 Platform, EnterpriseEdition Management Specification „Kibocsájtó”: Java CommunityProcess (JCP) Megalkotók: Sun, IBM, BEA, … Verzió: JSR77 (2006) Cél: A J2EE platform menedzsmentjéhez standard modellek

  28. Alkalmazáskiszolgálók felügyelete • JMX: szabványos „adatmodell” nincs • Szabványos attribútumok és metódusok; • Szabványos nevek • J2SE környezetben nincs is sok értelme • Kivéve: platform MBean-ek • J2EE: sok szabványos fogalom • Servlet-ek és konténereik, EJB-k és konténereik, aszinkron üzenetküldés (JMS), …

  29. JSR-77 • Egy J2EE környezet objektumait milyen néven kell menedzsment célokra elérhetővé tenni • Gyakorlatilag JMX-nevek, • amikben mindenképpen szerepeljen értékkel: • j2eeType • name • <szülő-j2eeType-ok> (mi a szülő  szabvány) • Elérés: praktikusan JMX és EJB • Támogatás a gyártók részéről: erősen változó

  30. Névhierarchia MitInfJ2EEDomain:j2eeType=J2EEApplication,name=LabPortal, J2EEServer=SauronServer

  31. Linkek • Mi az a J2EE platform…? • http://en.wikipedia.org/wiki/J2EE • …egy J2EE alkalmazásszerver például képes futtatni szervleteket: • http://en.wikipedia.org/wiki/Servlet • Platform MBeanServer használata a Jboss J2EE (4.0.2+) alkalmazáskiszolgáló esetén: • http://www.jboss.org/community/docs/DOC-10521 • Platform MBeanServer használata a Tomcat 5.5 szervletkonténer esetén: • http://tomcat.apache.org/tomcat-5.5-doc/monitoring.html

More Related