1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Felügyeletre tervezés Kocsis Imre, Micskei Zoltán Intelligens.

Slides:



Advertisements
Hasonló előadás
4. alkalom – Hálózat Kezelés
Advertisements


Kamarai prezentáció sablon
IT-DEV-CON – Addig nyújtózkodj, ameddig a felhőd ér! Kőnig Tibor | blogs.msdn.com/tibork-on-ms | twitter.com/tibork.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
Erőállóképesség mérése Találjanak teszteket az irodalomban
MATEMATIKA Év eleji felmérés 3. évfolyam
Humánkineziológia szak
Mellár János 5. óra Március 12. v
Elektromos mennyiségek mérése
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Adatbányászati technikák (VISZM185)
1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Felügyeletre tervezés Kocsis Imre, Micskei Zoltán Intelligens.
Utófeszített vasbeton lemez statikai számítása Részletes számítás
RMI = Remote Method Invocation
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
A tételek eljuttatása az iskolákba
Bevezetés a Java programozásba
Fájlkezelés, IO Kivételkezelés Belső osztályok
Követelmények Bevezetés a Javába Első java program írása Dokumentációk
Fejlett Programozási Technológiák II. Világos Zsolt 1. gyakorlat.
Fejlett Programozási Technológiák II. Világos Zsolt 12. gyakorlat.
Tömbök ismétlés Osztályok Java-ban Garbage collection
Ember László XUBUNTU Linux (ami majdnem UBUNTU) Ötödik nekifutás 192 MB RAM és 3 GB HDD erőforrásokkal.
VÁLOGATÁS ISKOLÁNK ÉLETÉBŐL KÉPEKBEN.
Védőgázas hegesztések
1. IS2PRI2 02/96 B.Könyv SIKER A KÖNYVELÉSHEZ. 2. IS2PRI2 02/96 Mi a B.Könyv KönyvelésMérlegEredményAdóAnalitikaForintDevizaKönyvelésMérlegEredményAdóAnalitikaForintDeviza.
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
C# tagfüggvények.
JSP és JavaBean JavaServer Pages és Java Beans Fabók Zsolt Általános Informatikai Tanszék Miskolci Egyetem.
C# tagfüggvények.
SPRING FRAMEWORK bemutatása
Programozási technológia 1
Szombathely Dinamikus WEB programozás: PHP és JSP.
Szerkezeti elemek teherbírásvizsgálata összetett terhelés esetén:
A JAVA TECHNOLÓGIA LÉNYEGE Többlépcsős fordítás A JAVA TECHNOLÓGIA LÉNYEGE Platformfüggetlenség.
WEB MES (webes gyártásirányító rendszer)
DRAGON BALL GT dbzgtlink féle változat! Illesztett, ráégetett, sárga felirattal! Japan és Angol Navigáláshoz használd a bal oldali léptető elemeket ! Verzio.
szakmérnök hallgatók számára
Logikai szita Izsó Tímea 9.B.
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
1 Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Központosított rendszerfelügyelet System Center Essentials 2007 Micskei Zoltán.
2007. május 22. Debrecen Digitalizálás és elektronikus hozzáférés 1 DEA: a Debreceni Egyetem elektronikus Archívuma Karácsony Gyöngyi DE Egyetemi és Nemzeti.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
A klinikai transzfúziós tevékenység Ápolás szakmai ellenőrzése
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
3. előadás.  Apache szerver tudnivalók  Az index.php .htaccess – web-szerverünk beállításai  Konfigurációs állományok  Adatbázis kapcsolódás beállítása.
Web Architecture. Development of Computing Architectures Monolithic mainframe programming Client Server Real Client Server Web Programming.
QualcoDuna interkalibráció Talaj- és levegövizsgálati körmérések évi értékelése (2007.) Dr. Biliczkiné Gaál Piroska VITUKI Kht. Minőségbiztosítási és Ellenőrzési.
Komoróczy Tamás 1 Java programozási nyelv A nyelv alapjai.
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Szondázás alapú diagnosztika 1. Autonóm és hibatűrő információs.
1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Rendszermonitorizás és eseménykezelés fejlesztési támogatása.
Generics Krizsán Zoltán. Bemutató A.NET 2.0 verziótól. A.NET 2.0 verziótól. Típusparaméter Típusparaméter Más nyelvben ez a template (sablon). Más nyelvben.
Alapozó eszközök Eseménynapló Eseményszámba megy… Analytic and Debug Logs Custom Views / Cross-log queries Event Forwarding > Subscriptions Feladatütemező.
1. Melyik jármű haladhat tovább elsőként az ábrán látható forgalmi helyzetben? a) A "V" jelű villamos. b) Az "M" jelű munkagép. c) Az "R" jelű rendőrségi.
Fejlett Programozási Technológiák II. 2009, Nagy Csaba JSP – Java Server Pages.
Illés Zoltán ELTE Informatikai Kar
> aspnet_regiis -i 8 9 TIPP: Az „Alap” telepítés gyors, nem kérdez, de később korlátozhat.
A KÖVETKEZŐKBEN SZÁMOZOTT KÉRDÉSEKET VAGY KÉPEKET LÁT SZÁMOZOTT KÉPLETEKKEL. ÍRJA A SZÁMOZOTT KÉRDÉSRE ADOTT VÁLASZT, VAGY A SZÁMOZOTT KÉPLET NEVÉT A VÁLASZÍV.
1 Az igazság ideát van? Montskó Éva, mtv. 2 Célcsoport Az alábbi célcsoportokra vonatkozóan mutatjuk be az adatokat: 4-12 évesek,1.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
Felügyeletre tervezés
Folyamatok.
Előadás másolata:

1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Felügyeletre tervezés Kocsis Imre, Micskei Zoltán Intelligens rendszerfelügyelet

2 Felügyeletre tervezés  Szoftverkomponensek a rendszerben: o Black box komponensek felügyelhetősége általában erősen korlátos o Felügyelhetőségre tervezés: erős ipari nyomás MOF, IBM Autonomic Computing DevOps  Felügyeletre tervezéshez szükséges o Támogató API-k és platform mechanizmusok o Felügyeleti modell

3 Miért foglalkozzunk ezzel? Forrás: Jeffrey Snover, Refaat Issa: Make your product manageable, SAC-644T, BUILD

4 Miért lesz ez nekünk jó? Szokásos szoftver kiadás: Milyen jó lenne: o Nem csak fut/nem fut látszódna az alkalmazásból o Hibát jelezné, és automatikusan lehetne beavatkozni o Alkalmazás jelezné a növekvő terhelést, automatikusan új kiszolgálót rakhatnánk alá o…o… Forrás: What is DevOps?

5 Felügyeletre tervezés - példa  (Figyelem: felkészülés a házi feladatra)  Felügyelt SW komponens: whitelisting HTTP proxy o Kliensek internet-hozzáférésének szűrése o Egyszerűsítések: egyszálú, nincs perzisztens HTTP, nincs SSL  Analízis/modellezés: rendszerfelügyeletnek fontos o állapotok, o események, o metrikák és tulajdonságok, o beavatkozási lehetőségek meghatározása.

6 Példa: kezdeti állapotgép A rendszer erőteljesen alulspecifikált; „érdekes” hibák, hosszadalmas hibakeresés…

7 Példa: hibaesetek specifikálása

8 Példa: további hibaesetek Megfigyelhetőség? Legegyszerűbb: állapotgép-futás (trace) lépéseinek naplózása Megfigyelhetőség? Legegyszerűbb: állapotgép-futás (trace) lépéseinek naplózása

9 Példa: kiegészítés naplózással

10 Példa kiegészítés naplózással Biztos hogy minden lépés ugyanolyan fontos?

11 Log események kategorizálása - példa Kategória Leírás CriticalFatal error or application crash. ErrorRecoverable error. WarningNoncritical problem. InformationInformational message. VerboseDebugging trace. … (.NET Framework: System.Diagnostics.TraceEventType)

12 Log események kategorizálása - példa  logInit  logLoadOk  logConfigLoadError  logBindOk  logBindFailure  logClientRequest  logMalformedReq  logDeniedReq  … Information Critical Information Critical Verbose (inkább, mint Information) Error

13 Példa: metrikák – funkcionális aspektus  Funkció: kiszolgáló folyamat o Uptime  Funkció: kérés-válasz kiszolgáló o Beérkezett kérések száma o Sikeresen kiszolgált kérések száma  Funkció: HTTP proxy o Rosszul formáltság miatt eldobott kérések száma o HTTP hibakód miatt nem kiszolgált kérések száma o Nem whitelist-be eső kérések aránya 1.Uptime kivételével: valamilyen csúszóablakra nézzük 2.Az utolsó metrika: inkább adatbiztonsági aspektus 3.A többi egy része is átnyúlik a szolgáltatásbiztonságba 1.Uptime kivételével: valamilyen csúszóablakra nézzük 2.Az utolsó metrika: inkább adatbiztonsági aspektus 3.A többi egy része is átnyúlik a szolgáltatásbiztonságba

14 Példa: metrikák – teljesítmény-aspektus  Kérés-válasz kiszolgáló o Kliensek felé átlagos kiszolgálási idő (várakozás + végrehajtás) o Átlagos továbbított adatmennyiség  HTTP proxy o Saját kérések átlagos RTT-je Megengedett oldalakra lebontva o Ha cache is: átlagos fogadott adatmennyiség De akkor be lehet venni a szokásos cache metrikákat is Ismét csak csúszóablakokra nézve

15 Példa: Futás közbeni állapot ;10:34;100;Information;Binding to port ;10:34;101;Information;Waiting for request ;10:35;102;Verbose;Request arrived ;10:35;105;Error;Malformed request Naplózás Monitorozás / Lekérdezés State:ProcessRequest Uptime:00:03:14 NumRequests:15 FailedRequest:0...

16 Felügyeleti akciók - példák  Terminálás o A modell már tartalmazza  Whitelist-állomány újratöltése o Ehhez a modellt is módosítani kellene!  Whitelist-modell on-the-fly módosítása o ~  A főbb nem megengedett, de kért oldalak listájának lekérése (+ gyakoriság, IP címek, …) Ugye látszik, hogy bonyolultabb esetben mindezt (pl.) UML-ben ragadtuk volna meg?

17 Példa: hogy állunk most?

18 Integráció a rendszerfelügyelethez?  Naplózás: (osztály)könyvtárak o filterelés és „routing”: konfiguráció, nem kód! o Kulcsrakész integráció platformszintű mechanizmusokhoz (pl. Event Log, WMI) o MS Enterprise Library, log4j, …  Metrikák lekérdezhetősége, műveletek o Jellemzően platform támogatás kihasználása o CIM provider készítése (pl.:.NET WMI provider) o Ma: Java Management Extensions (JMX)

19 Tartalom  Felügyeletre tervezés  Mintapélda: felügyeleti modell elkészítése  Felhasználható technológiák o MS Logging Application Block o Java Management Extensions (JMX)

20 Microsoft Enterprise Library Logging Application Block

21 MS Enterprise Library  Patterns & Practices csapat  Tipikus feladatokra bevált megoldások gyűjteménye

22 Logging Application Block áttekintése

23.NET naplózás a Logging Application Blockkal 1. Előszűrés 2. „Forrásokba” helyezés 3. Forrásokhoz rendelt, különböző célokkal rendelkező nyelők 0. Bejegyzéseket naplózó saját kód 4. Nyelőkhöz rendelt formázás.NET alkalmazás- konfiguráció (xml).NET alkalmazás- konfiguráció (xml)

24 Log bejegyzések létrehozása static void Main(string[] args) { LogWriter defaultWriter = → EnterpriseLibraryContainer.Current.GetInstance (); LogEntry entry = new LogEntry(); entry.EventId = 10; entry.Severity = TraceEventType.Error; entry.Message = "LoggingTest program initialized"; defaultWriter.Write(entry); Console.WriteLine("Hello logging world"); } Bejegyzés: LogEntry példány vagy közvetlenül a Write() változatai

25 Bejegyzések naplózása - konfiguráció Az „alkalmazásblokk” használatba vétele Beállítások ide kerülnek

26 Enterprise Library Configuration Tool Grafikus szerkesztő az XML-hez

27 Log források és nyelők ICollection LogEntry.Categories Egy forráshoz több listener is tartozhat! „SourceLevel” szűrés! Egy forráshoz több listener is tartozhat! „SourceLevel” szűrés!

28 DEMO  Log esemény kiíratása Eseménynaplóba  Átkonfigurálás: o naplózás egy szöveges állományba is Logging Application Block

29 Tanácsok naplózáshoz  Tervezzük meg előre az eseményeket!  Mindig legyen ID-ja egy bejegyzésnek!  Ne kódból, hanem konfigurációból állítsuk, hogy pontosan hova naplózzon!  Súlyosság / prioritás / kategória egymástól független beállítási lehetőségek

30 Linkek  Microsoft Enterprise Library 5.0 – April  Letölthető, teljes dokumentáció  Dev Guide: As Easy As Falling Off a Log  Lásd még a Felügyeletre tervezés segédletet

31 Tartalom  Felügyeletre tervezés  Mintapélda: felügyeleti modell elkészítése  Felhasználható technológiák o MS Logging Application Block o Java Management Extensions (JMX)

32 Modern folyamat-virtuálisgépek felügyelete.NET Windows WMI Eventing Logging Perf. Counters WinRM platform

33 A Java platform és menedzsmentje

34 JRE felügyeleti támogatás Java API: platformszintű információk lokális elérésére java.lang.management Java API: platformszintű információk lokális elérésére java.lang.management

35 Platform felügyeleti adatok: MXBean-ek Java platformClass LoadingThreadRuntimeCompilationOperating SystemMemóriaMemoryMemory Pool-okMemory Manager-ekGarbage Collector-ok

36 Platform felügyeleti adatok: MXBean-ek Java platformClass LoadingThreadRuntimeCompilationOperating SystemMemóriaMemoryMemory Pool-okMemory Manager-ekGarbage Collector-ok Betöltött/kiürített osztályok száma Szál-statisztikák és információk (zárak, StackTrace, …) VM adatok, indítási paraméterek, példány név, classpath, …

37 Saját alkalmazások felügyelete Java platformClass LoadingThreadRuntimeCompilationOperating SystemMemóriaMemoryMemory Pool-okMemory Manager-ekGarbage Collector-ok Saját alkalmazás állapota? Jó lenne hasonlóan: objektum írja le az aspektust DE:Valami registry / broker is kell (pl. metaadatok) Távoli hozzáférés? Jó lenne hasonlóan: objektum írja le az aspektust DE:Valami registry / broker is kell (pl. metaadatok) Távoli hozzáférés?

38 JRE felügyeleti támogatás Instrumentációs és (távoli) menedzsment Java API Deklarációs mechanizmusok Szükséges platform-támogatás javax.management(.*) Instrumentációs és (távoli) menedzsment Java API Deklarációs mechanizmusok Szükséges platform-támogatás javax.management(.*)

39 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ával Impl.: J2SE 5.0-tól és J2EE 1.4-től kötelező

40 JMX: alapvető jellemzők  Összetett, API-orientált szabvány  „Java-ból menedzselünk akár távoli Java-t” o Legyen egyszerűbb, mint az RMI… (de használhatja)  Metódushívás + get/set távolról  Kell valami menedzsmentobjektum-bróker o Lokális Java objektumok „feliratkozása” szolgáltatónak o A lokális feliratkozottak távolról lekérdezése Hívások kezelése

41 JMX - architektúra

42 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

43 MBean-ek nevei  Az MBean-ekre objektum-referenciánk nincs!  Objektumnév (ObjectName): o Domain név: egyszerű, nem hierarchikus névtérkezelés o + kulcs tulajdonságok rendezetlen halmaza o Az „eredeti” típus (Java osztály) nem jelenik meg! o Best practice: „type” és „name” nevű kulcsok  MXBean-ek: szabványos nevek

44 MBean név példák 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

45 DEMO  Tomcat , default config o  MBean-ek: o Service o GlobalRequestProcessor Page reload JMX bevezető: példa MBean-ek

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

47 Konnektorok  MBeanServer(-ek) lokális elérése: Factory minta static MBeanServer ManagementFactory.getPlatformMBeanServer()  Másik JVM-ből?

48 Konnektorok

49 DEMO  Távoli/lokális: MBeanServerConnection o gement/MBeanServerConnection.html gement/MBeanServerConnection.html  Lokális: MBeanServer o gement/MBeanServer.html gement/MBeanServer.html MBeanServer interfészek

50 MBean-ek fejlesztése  Egy MBean egy konkrét Java osztály (példánya), ami o Implementálja a saját MBean interfészét vagy o a DynamicMBean interfészt, illetve o Opcionálisan a NotificationBroadcaster interfészt  Az első opció: „standard” MBean o Menedzsment interfész: egyszerű szabályok a struktúrán

51 Standard MBean példa – interfész public interface MyClassMBean { public int getState(); public void setState(int s); public void reset(); } Az osztálynév: MyClass Van megfelelő getter/setter: a State attribútum látszani fog További művelet

52 Standard MBean példa – megvalósítás public class MyClass implements MyClassMBean{ private int state = 0; private String hidden = null; public void warble(){} public String getHidden(){return hidden; } public void setHidden(String h){hidden = h;} public void setState(int s) {state = s;} public int getState() {return state;} public void reset() {state = 0;} } + a publikus konstruktorok látszanak (az MBeanServer is példányosíthat) Rejtett marad

53 Standard MBean példa – regisztráció public static void main(String[] args){ MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); MyClass m = new MyClass(); try { mbs.registerMBean(m, new ObjectName("inf.mit.bme.hu:" + "type=MyClass,name=probe")); […]

54 Platform MBeanServer: távoli hozzáférés java -Dcom.sun.management.jmxremote.port=9004 \ -Dcom.sun.management.jmxremote.ssl=false \ -Dcom.sun.management.jmxremote.authenticate=false \ ManagedApp FIGYELEM: NEM BIZTONSÁGOS! (Lokális hozzáférés máshogy)

55 Standard MBean példa

56 Standard MBean példa public class Manager { 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) {[…]}

57 Standard MBean példa try { connector = JMXConnectorFactory.connect(address); connection = connector.getMBeanServerConnection(); } catch (IOException e) { e.printStackTrace(); System.exit(1); }

58 Standard MBean példa ObjectName on; try { on = new ObjectName("inf.mit.bme.hu:type=MyClass" + ",name=probe"); Object attr = connection.getAttribute(on, "State"); System.out.println(attr.toString()); } catch (Exception e) {[…]}[…]

59 JDK-támogatás

60 DEMO  JConsole: \bin\jconsole.exe o Csatlakozás Java folyamathoz (Attach API) o Képességek áttekintése o Platform MBean-ek!  JVisualVM: \bin\jvisualvm.exe o Csatlakozás a Java folyamatra o JConsole plugin telepítése o Képességek áttekintése JConsole és JVisualVM

61 További JDK-támogatás  „Monitoring”: o jtop o jps o jstat o jstatd  „Troubleshoot”: o jinfo o jmap o jsadebugd o jstack

62 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 platform o A.NET CLR-re is több nyelv fordítható  JVM-re épülő szkriptnyelvek (fordítás/interpretálás): o Groovy o JRuby o JavaScript  JConsole script shell

63 JMX: Ami kimaradt  További MBean típusok (nyílt, modell, …)  Értesítési mechanizmusok (notification)  Kötelező ágens-szolgáltatások o „Dynamic loading”: akár dinamikusan letöltött osztályok példányosítása o Attribútum-érték monitorozás és értesítés o Ütemezett értesítések o MBean-ek közötti asszociációs szolgáltatás

64 Linkek  JMX technology page (Oracle): o es/jmx/index.html es/jmx/index.html  JMX tutorial: o  JMX adatbiztonság-menedzsment (hitelesítés / titkosítás): o management/agent.html management/agent.html