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

31
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Alkalmazások és alkamazás-kiszolgálók monitorozása Kocsis Imre ikocsis @ mit.bme.hu Intelligens rendszerfelügyelet

Upload: xandy

Post on 15-Jan-2016

46 views

Category:

Documents


0 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

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

Budapesti Műszaki és Gazdaságtudományi EgyetemMéréstechnika és Információs Rendszerek Tanszék

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

Kocsis [email protected]

Intelligens rendszerfelügyelet

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

Felügyelet és szoftverplatformok

HW

Operációs rendszer

Middleware

Virtuális gép / futtatókörnyezet

Alkalmazások

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

Felügyelet és szoftverplatformok

IBM xSeries Model 630

AIX

WebSphere MQ

WebSphere Application Server 6.1

IBM JDK

Nagyon Fontos J2EE Alkalmazás

És ha Windows a platform?

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

Felügyelet és szoftverplatformok

HW

Operációs rendszer

Middleware

Virtuális gép / futtatókörnyezet

Alkalmazások

OS monitorozása

HW mon.: ~

Használat mon.: ~

?

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

Szolgáltatás-hibabehatárolás és -állapotvizsgálat

Fenomenologikus, szolgáltatás szintű vizsgálato Teljesítmény- és szolgáltatásbiztonsági jellemzőko N.B.: ezzel még foglalkozunk

Használt erőforrások felügyelete Miért nem elegendőek?

Nagyon Fontos J2EE Alkalmazás:o A futtatókörnyezet Java folyamata futo A szolgáltatásunk mégsem elérhetőo Ok…?

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

Alkalmazás állapotának követése Generikus fogalmak: fut/nem fut

o 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ő állapotao Java: heap memory, GC, szálak tulajdonságai, …o J2EE alkalmazáskiszolgáló: thread pool-ok, …

Állapot az adott alkalmazás fogalmi rendszerébeno Pl. „fontos” aktív objektumok kivételei

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

Állapot megfigyelhetőségének támogatása Saját logállományok

o Integráció a központosított felügyelethez…o Szükséges vs. elégséges felbontás? ( tisztán „push”)

Platformszintű eseménykezelés kihasználásaoWindows Eventlogo syslogd

Saját menedzsment-eszközöko Integráció?

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

Platform távfelügyeleti támogatás kihasználása

Amiket láttunk, elméletileg működhetnek:o SNMP, CIM-XML, WMI, WS-Management (WinRM), …

Mi határozza meg a praktikus alkalmazhatóságot?o 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ágao Bár a WMI nem (csak) ezért nem nyílt protokollszinten

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

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, Ruby on Rails, Python, …: nem jellemző J2SE és J2EE: JMX

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

JMX (Java Management Extensions)

„Kibocsájtó”: Java Community Process (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ávalImpl.: J2SE 5.0-tól és J2EE 1.4-től kötelező

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

A Java platform és menedzsmentje

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

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?

o Java objektumok metódusainak hívása távolrólo 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

oMindenképpen legyen egyszerűbb, mint az RMI…o… de az implementáció használhatja persze (nyíltság?)

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

JMX - architektúra

Ugyanazon Java virtuális gép (JVM)

Felügyeleti kliens szint

Ágens szint

Instrumentációs szint

platform MBeanServer további MBeanServer

MBean

MBean

platform Mbean(java.lang.management)

Ágens szolgáltatás

MBean

Connector Server (RMI)

Connector Server

(JMXMP)

Connector Server (Web

Services)

Protocol Adapter

MBean

Connector Server (RMI)

Java felügyeleti alkalmazás

Connector Client (RMI)

Böngésző, SNMP

kliens, ... WS-Management kliens

Ágens szolgáltatás

MBean

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

Mbean-ek „Managed Bean”: alapvetően egy Java objektum

o Bean osztály: elnevezési, létrehozási és viselkedési konvenciók

o 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

Instrumentációs szint

MBean

MBean

platform Mbean(java.lang.management)

MBean

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

MBeanServer MBean-eket nyilvántartó objektum Publikus interfészén:

o Létrehozás/törlésoMBean-ek név és név-minta szerinti kereséseoMBean-ek attribútum- és metódushalmazának

lekérdezéseoMBean attribútumok olvasása és írása, metódusok

hívásao az MBean-ek által létrehozott jelzésekre feliratkozás

Távoli és lokális interfészei különböznek

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

DEMO

Távoli/lokális: MBeanServerConnectiono http://java.sun.com/j2se/1.5.0/docs/api/javax/manage

ment/class-use/MBeanServerConnection.html

Távoli: MBeanServero http://java.sun.com/j2se/1.5.0/docs/api/javax/manage

ment/MBeanServer.html

MBeanServer interfészek

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

Konnektorok MBeanServer(-ek) lokális elérése: factory

o static MBeanServer ManagementFactory.getPlatformMBeanServer() //java.lang.management

Másik JVM-ből?

Ágens szint

platform MBeanServer további MBeanServer

Ágens szolgáltatás

MBean

Connector Server (RMI)

Connector Server

(JMXMP)

Connector Server (Web

Services)

Protocol Adapter

Connector Server (RMI)

Ágens szolgáltatás

MBean

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

KonnektorokFelügyeleti kliens szint

Ágens szint

platform MBeanServer további MBeanServer

Ágens szolgáltatás

MBean

Connector Server (RMI)

Connector Server

(JMXMP)

Connector Server (Web

Services)

Protocol Adapter

Connector Server (RMI)

Java felügyeleti alkalmazás

Connector Client (RMI)

Böngésző, SNMP

kliens, ... WS-Management kliens

Ágens szolgáltatás

MBean

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

MBean-ek metaadatai MBeanServer kliens

Descriptor: „a metaadat meataadata”

(név/érték párok)

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

Mbean-ek nevei Az MBean-ekre objektum-referenciánk nincs!

Objektum-név:o Domain név: egyszerű, nem hierarchikus névtérkezeléso Kulcs tulajdonságok rendezetlen halmazao 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=Runtimejava.util.logging:type=Logging com.sun.management:type=HotSpotDiagnostic

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

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!

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

DEMO

Eclipse, mint Java folyamat

JConsole: <JDK6_HOME>\bin\jconsole.exeo Csatlakozás az Eclipse Java folyamatra (Attach API)o Képességek áttekintése

JVisualVM: <JDK6_HOME>\bin\jvisualvm.exeo Csatlakozás az Eclipse Java folyamatra (Attach API)o JConsole plugin installálásao Képességek áttekintése

JConsole és JVisualVM

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

Programozott hozzáférés[néhány kihagyott import]import javax.management.*; public class MyClient {public static void main(String[] args){JMXServiceURL address = null;JMXConnector connector = null;MBeanServerConnection connection = null;try {

address = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://"+"localhost:9004/jmxrmi"); } catch (MalformedURLException e) {e.printStackTrace(); System.exit(1);}

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

Programozott hozzáféréstry { //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); […]

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

Szkriptelt hozzáférés Programozott megoldások sokszor feleslegesek

o Unix/Linux: bash/ksh/perl/…o Windows: VB, PowerShell, .bat

A Java nyelv ≠ JVM/Java platformo A .NET CLR-re is több nyelv fordítható

JVM-re épülő szkriptnyelvek (fordítás/interpretálás):o Groovyo JRubyo JavaScript JConsole script shell

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

Linkek JMX technology page (Sun):

o http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/

JMX tutorial:o http://java.sun.com/j2se/1.5.0/docs/guide/jmx/tutorial/tuto

rialTOC.html A Tutorial-ban az instrumentáció legalapvetőbb

kérdései:o http://java.sun.com/j2se/1.5.0/docs/guide/jmx/tutorial/ess

ential.html#wp1053098 Egy kliensoldali súlypontú áttekintés:

o https://unixlinux.tmit.bme.hu//JMX JMX adatbiztonság-menedzsment

(autentikáció/titkosítás):o http://java.sun.com/javase/6/docs/technotes/guides/manag

ement/agent.html

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

Java 2 Platform, Enterprise Edition Management Specification

„Kibocsájtó”: Java Community Process (JCP)Megalkotók: Sun, IBM, BEA, …Verzió: JSR77 (2006)Cél: A J2EE platform menedzsmentjéhez standard

modellek

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

Alkalmazáskiszolgálók felügyelete JMX: szabványos „adatmodell” nincs

o Szabványos attribútumok és metódusok;o Szabványos nevek

J2SE környezetben nincs is sok értelmeo Kivéve: platform MBean-ek

J2EE: sok szabványos fogalomo Servlet-ek és konténereik, EJB-k és konténereik,

aszinkron üzenetküldés (JMS), …

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

JSR-77 Egy J2EE környezet objektumait milyen néven kell

menedzsment célokra elérhetővé tennio Gyakorlatilag JMX-nevek, o 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ó

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

Névhierarchia

MitInfJ2EEDomain:j2eeType=J2EEApplication,name=LabPortal,J2EEServer=SauronServer

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

Linkek Mi az a J2EE platform…?

o http://en.wikipedia.org/wiki/J2EE …egy J2EE alkalmazásszerver például képes futtatni

szervleteket:o http://en.wikipedia.org/wiki/Servlet

Platform MBeanServer használata a Jboss J2EE (4.0.2+) alkalmazáskiszolgáló esetén:o http://www.jboss.org/community/docs/DOC-10521

Platform MBeanServer használata a Tomcat 5.5 szervletkonténer esetén:o http://tomcat.apache.org/tomcat-5.5-doc/monitoring.html