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

Post on 15-Jan-2016

46 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

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 Imreikocsis@mit.bme.hu

Intelligens rendszerfelügyelet

Felügyelet és szoftverplatformok

HW

Operációs rendszer

Middleware

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

Alkalmazások

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?

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.: ~

?

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…?

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

Á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ó?

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

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

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ő

A Java platform és menedzsmentje

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?)

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

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

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

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

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

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

MBean-ek metaadatai MBeanServer kliens

Descriptor: „a metaadat meataadata”

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

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

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!

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

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

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); […]

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

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

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

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), …

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ó

Névhierarchia

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

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

top related