Server-Management mit JMX
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
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
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
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)
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
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
JConsole
Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 8 Copyright 2011 © Fiducia IT AG
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
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
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
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
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
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
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
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>...
DEMO
Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 17 Copyright 2011 © Fiducia IT AG
DEMO
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
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
JMX Security – der einfachste Weg – Server
Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 20 Copyright 2011 © Fiducia IT AG
JMX Security – der einfachste Weg – Client
Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 21 Copyright 2011 © Fiducia IT AG
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
JMX Security – JAAS – Server
Server-Management mit JMX | Johannes Kellner, Andreas Knoll | JBFOne 2011 | Seite 23 Copyright 2011 © Fiducia IT AG
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
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
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
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
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
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
Ihr IT-Partner
Vielen Dank