Überwachen des JBoss AS Start per JMX

Keine Kommentare

Wie mein Kollege Robert in seinem Blog Beitrag „Automatisierter Modulimport für OpenCms“ beschrieben hat haben wir für unsere Testumgebung einen automatisierten Deploymentprozess etabliert. Jedoch kam vor kurzem die Frage auf, ob es nicht einen geschickteren Weg gibt den Serverstart zu überwachen als das Server log per grep „started“ zu überwachen (hier kam es vor, dass die Meldung teils ignoriert wurde).

until tail -n 1 server.log | grep "Started"; do sleep 0.01; done

Hier wollten wir einen verlässlicheren Weg finden, die Diskussion über verschiedene Lösungsansätze habe ich nur am Rand mit bekommen, aber auch nach Feierabend wollte mir diese Frage nicht aus dem Kopf.

Da wir mit JBoss einen JEE Applikationsserver betreiben, lag die Annahme nahe über JMX den Server selber zu fragen, ob er denn bereits wieder zur Verfügung steht. Zuerst wollte ich frohen Mutes einen kleinen JMX Client schreiben, jedoch bin ich bei dem Thema über ein kleines Werkzeug gestolpert, welches JBoss bereits frei Haus mit liefert und mir eine nächtliche Coding Session erspart hat: Twiddle

Die Beschreibung von JBoss ist selbsterklärend:

„A JMX client to ‚twiddle‘ with a remote JBoss server.“

Genau was wir brauchten – jetzt musste nur noch das entsprechende MBean gefunden werden. Da „bist du schon da?“ eine der denkbar einfachsten abzufragenden Dinge ist, sind wir auch hier schnell zu einem Ausdruck gekommen, der das gewünschte Ergebnis liefert:

twiddle.sh get jboss.system:type=Server Started

Sobald dieser Ausdruck true liefert ist der Server „up and running“.

Robert hat dann auch ASAP unser Skript erweitert:

function twiddleTheBoss {
    echo `twiddle.sh get "jboss.system:type=Server" Started | \
        awk -F "=" '{ print $2 }'`
}
 
...
 
local STARTED="starting"
until [ $STARTED == "true" ]; do
    sleep 20s
    STARTED=$(twiddleTheBoss)
done
 
...

Einfach und stabil, so wie man es sich wünscht 🙂 .

Nick Prosch

Als Mitarbeiter der ersten Stunde steht Nick heute nicht mehr direkt im Dienst unserer Kunden, sondern ist als Feelgood Manager für die Mitarbeiter der codecentric da, vom Praktikanten bis zum Vorstand. Wie ein Scrum Master sieht er zu, dass ein angenehmes Arbeiten in entspannter Atmosphäre mit tollen Teams möglich ist.

Share on FacebookGoogle+Share on LinkedInTweet about this on TwitterShare on RedditDigg thisShare on StumbleUpon

Kommentieren

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.