Epische Entwicklungsumgebung in Eclipse

In letzter Zeit habe ich häufiger mit dem Thema Plugin Programmierung zu tun. Und da, wie letzte Woche schon geschrieben, die Programmiersprache meiner Wahl in den meisten Fällen Perl ist, suche ich schon seit längerem eine adäquate IDE. Nun gibt viele Wege ein Programm in Perl zu schreiben. Der auf jedem unixoiden System verfügbare Weg ist vi, mit vim sogar mit Syntax highlighting. Unter win-digen Umständen tut’s auch das notepad. Aber so richtig komfortabel sieht das alles nicht aus.
Eine wirklich gute Hilfe, die ich vor kurzem gefunden habe, ist die Erweiterung EPIC für Eclipse. Eclipse ist an und für sich als Entwicklungsumgebung für Java bekannt, viele kennen auch noch die Erweiterung für C/C++ aber dass Eclipse auch etwas für Perl bietet ist nicht jedem bekannt. Natürlich steht es wie Eclipse selber auch unter einer Open Source Lizenz, der Source Code kann daher hier bezogen werden, die Installation gestaltet sich aber ungleich einfacher wenn man den Eclipse Update Manager benutzt. Dieser befindet sich im Menü “Help” unter “Install new Software”.
Trägt man hier die Adresse “http://e-p-i-c.sf.net/updates/testing” ein, ist man nur noch einen Klick von der fertigen Installation entfernt.
Eclipse selber steht für die meisten Plattformen zur Verfügung. Entweder man installiert es unter der jeweiligen Linux Distribution direkt aus den Software Repositories oder man bezieht es von der Eclipse Homepage.

Vorteile

Ich kann hier in der kürze natürlich nicht alle Features aufzählen, die wichtigsten sind jedoch:

  • Syntax Highlighting
    Sieht nett aus und funktioniert richtig gut.
  • Syntax Validation
    Man muss nicht immer erst das Programm starten damit man merkt dass es doch nicht so tut wie man will
  • Debugger
    Erleichtert einem das debugging enorm durch die Möglichkeit Breakpoints zu setzen und den Wert von Variablen zur Laufzeit zu überprüfen und wahlweise auch zu ändern.
  • Wortvervollständigung
    für tippfaule, ein Druck auf Enter und das Wort ist da
  • Integrierte Hilfe
    Integration von perldoc. Man hält den Mauszeiger über einen Befehl und schon erscheint die Hilfe. (Wichtig: unter dem Menü Window \ Preferences muss der Pfad zu Perl vollständig und richtig hinterlegt sein)
  • Regex Testing Machine
    Gegen böse Überraschungen gut. Einfach mal testen ob der Regex auch das findet was man erwartet.
Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

The glory of Perl

Immer wieder kommt es im Alltag eines Sysadmins mit  Monitoring Ambitionen zu dem Fall, dass er etwas überwachen möchte, dass so vorher noch nie dagewesen ist oder dass er bestimmte Aspekte mit einbeziehen will/muss/möchte die bisher noch nicht in ein Plugin gegossen wurden.
An Stellen wie diesen kommt man oft nicht am neu- oder umprogrammieren eines Plugins vorbei. Hierbei stellt sich im Regelfall die Frage: “Welche Sprache benutze ich denn?”
Nagios und Icinga verstehen alle Programmiersprachen, die es fertig bringen auf der Kommandozeile ein Zahl zwischen 0 und 3 auszugeben. Das sind meines Wissens nach so gut wie alle und daher ist man der Lösung der Frage noch keinen Schritt näher gekommen.
Ein weit wichtigerer Aspekt der Auswahl ist wohl die Portierbarkeit auf verschiedenartige Systeme. So kann man z.B. mit Microsofts Powershell viele tolle Sachen machen. Sobald man dieses aber auf einem alten Windows oder wohl möglich auf einem unixoiden System ausführen will wird es trickreich bis unmöglich.
Sprachen wie Java, Python oder Perl sind hierfür einfach besser geeignet. Sie bieten für alle gängigen und für viele exotische Systeme Interpreter oder lassen sich, wie z.B. Perl, auch gleich mit Interpreter in ein handliches Paket (windows Exe) schnüren. Wie das funktioniert wurde im Blog vor kurzem schon mal erklärt.
Meine Wahl fällt schon seit längerem immer wieder auf Perl. Wenn’s ums umschreiben geht kommt man oft nicht dran vorbei weil viele Plugins schon in Perl verfasst wurden. Wenn’s ums neu schreiben geht macht einem Perl das Leben einfach einfacher. Dank des universellen und einfach nur genialen CPAN, dass mit einem Haufen von Modulen für jeden nützlichen bis unnützen Zweck daher kommt, kann man innerhalb kürzester Zeit eigene Plugins für so ziemlich alles schreiben was eine Schnittstelle aufweist bis hin zu Modulen die einem die Logüberwachung oder das auslesen von CLI tools vereinfachen.
[poll id=”3″]
Wie mit jeder Sprache ist es wichtig, die Nagios Developement Guidelines einzuhalten, um den Nutzen eines Plugins zu maximieren. Nützlich sind hierfür z.B. die Module Nagios::Plugin::Threshold und Nagios::Plugin::Range. Beide kann man hier finden. Jedoch kann man diesen Teil auch noch leicht selbst implementieren.
Schwieriger wird es bei so Dingen wie einer Datenbankschnittstelle. Aber auch hierfür bietet Perl schon fix und fertige Module die bloß noch eingebunden werden müssen. Das sind z.B. DBD::Sybase für mssql oder DBD::mysql.
Auch für die universelle Windows Verwaltungs Datenbank bietet das CPAN ein Modul(Win32::OLE), mit dessen Hilfe man fix ein generisches Plugin für WMI angelegt hat.
Und last but not least hat Perl einfach das schönste Wappentier 🙂 Für mich steht die Entscheidung fest und Ihnen wird sie hoffentlich jetzt einfacher gemacht die “richtige” Sprache für die Plugin Programmierung auszuwählen.

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

OSMC 2009 – Official Nagios Plugin Development Team Meeting

Nagios Plugin Development Team meeting Seit letzter Woche steht es fest, die “Open Source Monitoring Conference 2009 on Nagios” wird der offizielle Treffpunkt des Nagios Plugin Development Teams. Das Team, bestehend aus Ton Voon, Matthias Eble, Holger Weiss und Thomas Guyot-Sionnest arbeitet und entwickelt seit 2007 an bestehenden und neuen Plugins für das beliebte Open Source Monitoring Tool Nagios und veröffentlicht regelmäßig die  nagiosplug-Distribution.
Das Team trifft sich auf der diesjährigen OSMC 2009 mit dem Ziel, die aktuellen Trends rund um Nagios Plugins sowie den aktuellen Stand des Plugin Projekts zu besprechen. Neben den internen Besprechungen stehen die Mitglieder allen Interessierten im Rahmen des Meetings für Diskussionen, Anregungen und Gespräche zur Verfügung.
Nachdem der Call for Papers bereits seit drei Wochen läuft konnten bereits einige Referenten bestätigt werden, darunter unter Anderem Kristian Köhntopp (booking.com), Ton Voon (Projektleiter im Nagios Plugin Development Team und Nagios-Core Entwickler), Wolfgang Barth (Author des ersten Nagios Buches) und Michael Medin (Entwickler von NSClient++).  Die ständig aktualisierte Liste der Referenten findet sich auf den Sprecherseiten der OSMC 2009.
Wer selbst einen Vortrag auf der OSMC 2009 halten möchte, der Call for Papers läuft noch.