Oct 14

Alle großen Linux Distributtionen bringen heutzutage Pakete für das Open Source Monitoring Werkzeug Nagios mit. Doch Nagios hat sich erst durch seine Erweiterungen (und natürlich aufgrund der geringen Kosten) in vielen Firmen durchgesetzt.

Die Integration der Erweiterungen (wie z.B. nsca oder MK Livestatus) ist mit etwas Handarbeit verbunden. Dies ist den Programmierern dieser Tools auch aufgefallen und so haben sie sich kurzerhand zusammengeschlossen und ihr Wissen und ihre Software in der Open Monitoring Distribution (OMD) zusammengeführt.

OMD (Version 0.42) beherbergt in seinen Paketen (für SLES 11, Debian 5.0, Ubuntu 10.04 and RedHat/CentOS 5.4 and 5.5) Nagios selbst und zusätzlich diese Erweiterungen:

  • nagvis
  • pnp4nagios
  • rrdtool/rrdcached
  • nagios-plugins
  • Check_MK
  • MK Livestatus
  • Multisite
  • dokuwiki
  • nsca
  • check_nrpe

Ein weiterer Vorteil von OMD ist dessen Instanz Fähigkeit. So kann man mehrere autarke Nagios Umgebungen auf einem Server betreiben, die unter unterschiedlichen BS Benutzern laufen können. Eine Instanz erstellt und startet man mit:

omd create foo
omd start foo

OMD installiert sich immer unterhalb von /opt/omd und ist damit unabhängig von den Installationspfaden der unterschiedlichen Linux Distributionen.
Bei der Integration der verschiedenen Werkzeuge wurde auch auf Performance geachtet. So wurde bewusst auf das I/O lastige NDO verzichtet und stattdessen auf MK Livestatus gesetzt, das direkt auf die Nagios Daten im Hauptspeicher zugreift.

Wer sein Nagios lieber von Hand kompiliert, muss trotzdem nicht auf die anderen Vorteile von OMD verzichten. Entsprechende tar balls sind neben den Paketen im Download Bereich vorhanden.

geschrieben von gklinkmann \\ tags: ,

Oct 12

Wenn sich ein Entwurfsmuster in der Web Entwicklung bewährt hat, dann ist es das Model View Controller Pattern oder kurz MVC. Ich bin schon seit längerem auf der Suche nach einem PHP Framework, dass MVC konsequent umsetzt, aber nicht gleich mit Kanonen auf Spatzen schießt. Leichtfüßig (oder in “Neu-Deutsch” light weight) und objekt orientiert sollte es sein. PHP Fameworks, wie z.B. Zend, CakePHP und Symphony gehören da eher zu den Boliden. MVC setzen sie zwar perfekt um, objekt orientiert sind sie auch, aber leichtfüßig ist anders.

So bin ich auf CodeIgniter gestoßen, was von sich behauptet mit einem “schmalen Fuß” (small footprint) daher zu kommen.

Die Installation ist schon einmal denkbar einfach. Das Zip im “DocumentRoot” des Webservers auspacken, das Verzeichnis umbenennen und die vollständige URL für den Webauftritt in der Konfigurationsdatei system/application/config/config.php angeben.

$config['base_url'] = "http://localhost/allMedia/";

Und schon kann man seinen ersten Controller schreiben.

class Books extends Controller {
   ... some logic ...
 
   // build view
   $this->load->view('common/header',$headerdata);
   $this->load->view('book/list',$data);
   $this->load->view('common/menu',$menudata);
   $this->load->view('common/footer');
}

CodeIgniter ist in der Lage Teile einer View vor dem Ausliefern zusammenzusetzen. Templates werden unterstützt sind aber nicht zwingend notwendig.

Für mich bringt dieses Framework alles mit, was ich brauche:

  • das MVC Entwurfsmuster
  • durchgängige Objektorientierung
  • Performance
  • schöne URL’s
  • Helper Klassen (z.B. für Paging)
  • gute Einbindung von doctrine als OR Mapper
  • und nicht zu vergessen eine gute Dokumentation

“Das Feuer ist bei mir entzündet” und ein kleines Projekt bereits mit CodeIgniter implementiert. Wem also Zend und Co. zu komplex sind, der sollte sich CodeIgniter einmal etwas genauer anschauen. Es lohnt sich.

geschrieben von gklinkmann \\ tags: , ,

Oct 09

Dieses Jahr war ich zum ersten Mal auf der Open Source Monitoring Conference in Nürnberg. Schwerpunkt dieser Konferenz sind Open Source Monitoring Lösungen zur Überwachung von Servern über Netzwerkkomponenten bis hin zu Servicen innerhalb des Unternehmens. Das Programm lässt sich am besten mit dem Namen eines Vortrages beschreiben – “Pimp my Überwachung“.

Es war interessant zu sehen, wie viele Firmen Open Source Lösungen wie Nagios oder Icinga verwenden und wie vielseitig diese Tools sind. Die Higlights für mich waren die Vorstellungen des Nagios Fork Icinga, des Tools MK Livestatus und des darauf basierenden Multisite.

Die Veranstaltung war perfekt organisiert und dafür möchte ich an dieser Stelle allen Organisatoren noch einmal danken. Die Termine für das nächste Jahr stehen mit dem 09.11. / 10.11.2011 schon fest. Ich komme gern wieder.

geschrieben von gklinkmann \\ tags: ,

Jul 01

Zu diesem Kurzfilm braucht man eigentlich nichts mehr zu sagen außer, unbedingt angucken und die Botschaft begreifen. :-)

geschrieben von gklinkmann \\ tags: ,

Jun 16

Manchmal möchte man nur wissen, wie lange das eigene Java Programm gebraucht hat. Wenn man sich mit der Angabe von Millisekunden begnügt ist dies ein Zweizeiler.

Date start=new Date();
// do something
System.out.println("Anzahl Millisekunden: "
   +(System.currentTimeMillis() - start.getTime());

Möchte man allerdings bei etwas länger laufenden Programmen nicht in Stunden und Minuten umrechnen müssen, so wird es etwas schwieriger. Was bekommt man im Internet nicht alles für Ratschläge, dabei muss man das Rad gar nicht neu erfinden. Ein Blick auf die Apache Commons Bibliotheken hilft hier wie so oft weiter.

import org.apache.commons.lang.time.DurationFormatUtils;
...
Date start=new Date();
// do something
System.out.println("Laufzeit: "
   +DurationFormatUtils.formatDuration(System.currentTimeMillis() - start.getTime(),"HH:mm:ss");

geschrieben von gklinkmann \\ tags: , ,