30
Server-Management mit JMX

Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

Server-Management mit JMX

Page 2: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

Ziel dieses Vortrags

§ JMX als Alternative zu bisherigen Monitoring-Schnittstellen vorstellen

§ Einsatzmöglichkeiten aufzeigen

§ Beispiele für die Umsetzung in JBF-Umgebungen betrachten

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 2 Copyright 2011 © Fiducia IT AG

Page 3: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

Agenda

§ JMX Grundlagen

§ JMX und Spring

§ Demo

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 3 Copyright 2011 © Fiducia IT AG

§ Demo

§ Security

Page 4: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

Agenda

§ JMX Grundlagen

§ JMX und Spring

§ Demo

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 4 Copyright 2011 © Fiducia IT AG

§ Demo

§ Security

Page 5: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

JMX Grundlagen

§ Java Management Extensions (JSR-3)

§ Java API zur Veröffentlichung von Management-Informationen

§ Seit J2SE 5.0 Bestandteil der Java Plattform

§ JConsole als Standardwerkzeug zur Überwachung

§ Heutige Standard-Werkzeuge „sprechen“ JMX

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 5 Copyright 2011 © Fiducia IT AG

§ Heutige Standard-Werkzeuge „sprechen“ JMX– Wily Introscope– Nagios

§ JSR-160 JMX Remote API– Standard-Connector RMI ist Bestandteil jeder Implementierungen

§ JSR-255 JMX 2.0 (derzeit keine Aktivität)

Page 6: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

Wer nutzt JMX?

§ Java Virtual Machine– Speicherinformationen– JIT– Garbage Collection– Threads

§ Tomcat

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 6 Copyright 2011 © Fiducia IT AG

§ JBoss (JMX Microkernel)

§ Weblogic

Page 7: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

JMX Architektur

Distributed Services Level

Client

Schnittstelle

Adapter

Anbindung von Clients

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 7 Copyright 2011 © Fiducia IT AG

Agent Level

Instrumentation Level

MBean MBeanMBean

Agent

Export von Schnittstellen als MBeans

Page 8: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

JConsole

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 8 Copyright 2011 © Fiducia IT AG

Page 9: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

Managed Beans (MBean)

§ Standard MBean– Einfachste Art, Beans zu implementieren– Interface (Namenskonvention „MBean“) und Implementierung

§ Dynamic MBean– Erstellung und Modifikation der Bean-Schnittstelle zur Laufzeit

§ Model MBean

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 9 Copyright 2011 © Fiducia IT AG

§ Model MBean– Ähnlichkeiten mit Dynamic MBean– Möglichkeit der Erzeugung im Agent– Zusätzliche Lese- und Schreibmechanismen (Persistierung)– Protokollierung über Notifications

§ Open MBean– Beschränkung auf Standard Java Datentypen– Vereinfacht Kommunikation mit externen Programmen

Page 10: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

Standard MBean

§ Interface beschreibt exportierte Attribute und Operationen

§ Name des Interfaces muss mit „MBean“ enden

§ Name der Implementierung muss Interfacename ohne „MBean“ sein

§ Beide müssen im gleichen Package liegen

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 10 Copyright 2011 © Fiducia IT AG

Page 11: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

Dynamic MBean

§ Abstrakte Beschreibung der Bean über MBeanInfo-Objekt– Attribute– Operationen– Notifications

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 11 Copyright 2011 © Fiducia IT AG

Page 12: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

Weitere Laufzeitkomponenten

§ MBean Server– Verzeichnisdienst für eine Gruppe von MBeans

§ ObjectName– Eindeutiger Objektbezeichner einer MBean innerhalb eines MBean Servers– Domain + Key-Value-Paare

§ Agent

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 12 Copyright 2011 © Fiducia IT AG

§ Agent– Container für MBean Server– Connectoren und Adapter

§ Connector– Anbindung von Clients an einen Agent– Basieren üblicherweise auf Standardprotokollen wie RMI, JNDI, …

§ Adapter– Unterstützen JMX-fremde Protokolle wie SNMP oder HTTP

Page 13: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

Agent

JMX Laufzeitumgebung

Connector

Client

Connector

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 13 Copyright 2011 © Fiducia IT AG

MBeanServer

MBean MBeanMBean

Java Resource Java ResourceJava Resource

Page 14: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

Agenda

§ JMX Grundlagen

§ JMX und Spring

§ Demo

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 14 Copyright 2011 © Fiducia IT AG

§ Demo

§ Security

Page 15: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

Spring und JMX

§ Hilfsklassen im Spring Framework– Eigenen MBeanServer erstellen– Außenschnittstellen aktivieren– Client-Anbindung

§ Export einfacher Beans ohne Namenskonventionen und Abhängigkeiten zu Interfaces

§ Support für Notifications per Dependency Injection

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 15 Copyright 2011 © Fiducia IT AG

§ Support für Notifications per Dependency Injection

Page 16: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

JMX mit Spring – Exportieren einfacher Beans

...<bean name="exporter„

class="org.springframework.jmx.export.MBeanExporter"><property name="beans">

<map><entry key="jbf:name=Pool" value-ref="poolBean" />

</map></property>

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 16 Copyright 2011 © Fiducia IT AG

</bean>

<bean name="poolBean" class="de.jbfagree.spring.jmx.PoolBean"><constructor-arg ref="pool"></constructor-arg>

</bean>...

Page 17: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

DEMO

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 17 Copyright 2011 © Fiducia IT AG

DEMO

Page 18: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

Agenda

§ JMX Grundlagen

§ JMX und Spring

§ Demo

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 18 Copyright 2011 © Fiducia IT AG

§ Demo

§ Security

Page 19: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

JMX Security

§ Für derart mächtige Werkzeuge ist eine vernünftige Absicherung essentiell

§ Als elementarste Maßnahme muss die Verbindung zwingend verschlüsselt sein

§ Des weiteren muss eine gesicherte Authentifizierung und Authorisierung vorliegen

§ Dies ist jedoch relativ einfach zu implementieren

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 19 Copyright 2011 © Fiducia IT AG

Page 20: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

JMX Security – der einfachste Weg – Server

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 20 Copyright 2011 © Fiducia IT AG

Page 21: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

JMX Security – der einfachste Weg – Client

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 21 Copyright 2011 © Fiducia IT AG

Page 22: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

JMX Security – JAAS

§ Dateibasierte Authentifizierung und Autorisierung sind natürlich für produktive Systeme nicht geeignet

§ Das JRE stellt für diese Aufgaben ein eigenes Subsystem bereit

§ JAAS à „Java authentication and authorisation system“

§ JAAS – Autorisierung basiert auf der Verwendung von SecurityManagern und Policy-Definitionen

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 22 Copyright 2011 © Fiducia IT AG

Definitionen

§ Für Authentifizierung sind diverse Mechanismen verfügbar, unter anderem Kerberos V5

§ Ersetzen wir zuerst die Datei-basierte Autorisierung:– Der Code sieht nahezu genau so aus wie im ersten Sample, lediglich das

access.properties File wird nicht mehr verwendet

Page 23: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

JMX Security – JAAS – Server

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 23 Copyright 2011 © Fiducia IT AG

Page 24: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

JMX Security – JAAS – fullblown

§ Das Entfernen der dateibasierten Authentifizierung steht natürlich ebenfalls noch an

§ Auch hier koppeln wir wieder JMX und JAAS

§ Zunächst ist die beglaubigte Identität eines Benutzers zu ermitteln

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 24 Copyright 2011 © Fiducia IT AG

Page 25: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

JMX Security – JAAS – fullblown

§ Unser Client könnte nun auszugsweise so aussehen

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 25 Copyright 2011 © Fiducia IT AG

Page 26: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

JMX Security – JAAS – fullblown

§ Am Server ist der Unterschied ebenfalls marginal

§ Es ist lediglich ein JMXAuthenticator, passend zur verwendeten Authentication-Methode zu erzeugen und als Property „JMXConnectorServer.AUTHENTICATOR“ an den Connector-Server zu übergeben

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 26 Copyright 2011 © Fiducia IT AG

Page 27: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

Anwendungsbeispiele JBF

§ Überwachung von Connection-Pools (DB, IMS, MQ)– Steuerung von Pool-Größen– Anzahl Connections (aktiv, aussortiert)

§ Verwaltung von Caches– Flush (IKESA)– Cache-Parameter

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 27 Copyright 2011 © Fiducia IT AG

§ Shutdown vorbereiten– Gracefull shutdown– Annahme von Serviceaufrufen blockieren– Start von Batchjobs/Cronlets unterbinden– Messages per ACE an angemeldete Clients verschicken

§ Blacklists verwalten

Page 28: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

Fazit/Zusammenfassung

§ JMX ist einfach zu verwenden

§ In jeder Standard-Runtime verfügbar

§ Unterstützung durch Application-Server-Hersteller

§ Unterstützung in Monitoring-Werkzeugen

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 28 Copyright 2011 © Fiducia IT AG

Page 29: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

Fragen? – Diskussion?

Johannes KellnerAnwendungsentwicklung

Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 29 Copyright 2011 © Fiducia IT AG

AnwendungsentwicklungTechnische Architektur

[email protected] 89 / 99 43 – 39 61

Andreas KnollAnwendungsentwicklungTechnische Architektur

[email protected] 89 / 99 43 – xx xx

Page 30: Server-Management mit JMX...Spring und JMX § Hilfsklassen im Spring Framework – Eigenen MBeanServer erstellen – Außenschnittstellen aktivieren – Client-Anbindung § Export

Ihr IT-Partner

Vielen Dank