Weekly Snap: Source Code Pro, Apace & Active Directory, JMX

weekly snap 11 – 15 February introduced new products at our shop and shared tips for programmers and sys admins alike.
Eva began by counting 65 days down to the OSDC with Jochen Lillich’s presentation on Kanban.
Lennart then solved an Apache and Active Directory configuration problem as Johannes trialled Adobe’s coding font, Source Code Pro.
Ronny followed with his quick guide to activating JMX and Christian announced the arrival of new power distribution units by Gude to our online hardware store.
Finally, Georg gave the adjudication reins over to our readers to decide which poet should win our competition for two TKS Supermicro 2HE servers.

Aktivierung JMX

Hallo zusammen, heute fassen wir wieder ein Grundthema auf, welches wohl oft Fragen aufwirft aber so einfach sein kann. Die Rede ist von der Aktivieren der JMX– oder auch Java Management Extension genannt.
In unserem Blog haben wir schon viele Themen gehabt, welche sich mit JMX Monitoring auseinander setzen – Jolokia, JConsole oder die Überwachung mit Nagios. Aber noch keinen, welcher in den Grundzügen zeigt, wie es aktiviert wird, also gehen wir einen Schritt zurück und zeigen auch dies.
Wir machen das ganze am Beispiel des Apache Tomcats – aber da JMX vom Java bereitgestellt wird, besteht die Möglichkeit bei vielen Application Server und meist auch bei Standalone Systemen. Nun aber zum Setup selbst, nehmt euer Start-Skript des Tomcats oder die des Application Server oder die Environment Settings von Standalone Systemen. Hier müssen nun nur die Java Optionen angepasst werden. Für ein schlichtest Setup mit Remote Zugang und einer Passwortabfrage fügt ihr folgendes an:

-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=_WUNSCHPORT_ \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=true \
-Dcom.sun.management.jmxremote.password.file=.../CONF_PFAD/jmxremote.password \
-Dcom.sun.management.jmxremote.access.file=../CONF_PFAD/jmxremote.access

Die Regelung der Anmeldung und der Rollen macht Ihr mit der jmxremote.access und .password Datei. Hier wird vermerkt, welche Login welche Rollen hat (readonly/readwrite – .access) und welche Passwörter für die Rollen gelten (.password). Zu beachten wäre hierbei, dass das Passwort-File nur vom User des Server zu lesen/schreiben ist, die Access-Datei dagegen kann default mit 644 belassen werden:

chmod 600 .../CONF_PFAD/jmxremote.password
chown APP_USER .../CONF_PFAD/jmxremote.password

Nun startet Ihr die Application und ruft z.B. wie mit der JConsole beschrieben, den Server und Port mit den Anmeldedaten auf.
Das ganze ist – wie gesagt – nur ein Grundsetup und es gibt noch mehr Möglichkkeiten den Zugriff anzupassen. Aber Ihr könnt das o.g. Beispiel nutzen um etwaige Überwachungen für das Monitoring zu implementieren oder einfach mal ein paar mehr Infos über einen Prozess zu bekommen.

JConsole – Java Monitoring auf die Schnelle

JConsole ist eine seit Java Version 1.5 mitgelieferte Swing-Applikation zur Überwachung von Java Prozessen via JMX auf lokalen oder entfernten Systemen. JMX steht für Java Management Extension und ist eine in der Weiterentwicklung befindliche Erweiterung des Java Standards, welche auch die Kommunikation zwischen unterschiedlichen JVM ermöglicht.
Nach dem Start der JConsole auf der Commandline erscheinen bereits im Startscreen die lokalen Java-Prozesse auf die mit einem Doppelklick zugegriffen werden kann. Für das Monitoring entfernter JVM’s muss auf dem Zielsystem der entsprechende RMI-Zugriff aktiviert sein.

JConsole gibt eine schnellen Überblick über den aktuellen Speicherbedarf der virtuellen Machine und der durch Java verursachten Prozessorauslastung. Alle Hauptsichten bieten die Möglichkeit verschiedene Zeitbereiche auszuwählen, welche jedoch nur während der Laufzeit der JConsole aufgezeichnet werden. Die Übersicht der Screenshots lässt erkennen, dass in unserem Beispiel bereits knapp 6000 Javaklassen in der JVM geladen sind. Hierbei handelt es sich um einen neu gestarteten iReport-Designer ohne geöffneten Bericht.
Die gelisteten MBeans, deren Zustand und weitere Parameter können selbstverständlich direkt aus Nagios und Icinga überwacht werden um eine langfristige Analyse zu ermöglichen. Mit check_jmx und check_jmx4perl gibt es bei MonitoringExchange.org hier bereits gute Lösungen.
Um über die Prozessliste hinaus einen schnellen Einblick in die virtuelle Maschine zu bekommen, ist JConsole eine ausreichende und dazu meist schon vorhandene Alternative, deren Nutzung sich lohnt.

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startet er das wöchentliche Lexware-Backup und investiert seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinem Sohn.