Seite wählen

NETWAYS Blog

MultiTech iSMS – Firmware Version 1.51.9 verfügbar

Multi-Tech iSMSAb sofort ist eine neue Firmware für das MultiTech iSMS mit der Version 1.51.9 verfügbar, in der einige Probleme mit dem SMS-Modem sowie dem Acknowledgment behoben wurden. Wir empfehlen allen Nutzern des Geräts, die aktuell die Firmware Version 1.50.7 aufgespielt haben, ein Update durchzuführen.
Vorher wird noch empfohlen, Ihre aktuelle Konfiguration zu sichern, damit diese nach erfolgreichem Aktualisierungsvorgang wieder eingespielt werden kann.
Folgende Schritte sind für das Backup sowie die Aktualisierung durchzuführen:

  1. Laden Sie die Firmware Version 1.51.9 herunter
  2. Entpacken Sie das Archiv und legen die .bin File auf Ihrem Computer ab
  3. Melden sich über das Web-Frontend an Ihrem Gerät an
  4. Klicken Sie in der Navigationsleiste auf „Utilities
  5. Wählen Sie im linken Menü „Backup“ aus
  6. Klicken Sie rechts auf den Button „Export“ (es wird ein .tar Archiv mit Zeitstempel in Ihr Standard Download Verzeichnis des Browsers heruntergeladen)
  7. Klicken Sie im linken Menü auf den Punkt „Firmware Upgrade
  8. Klicken Sie in der Mitte auf den Button „Datei auswählen“ und wählen Sie anschließend die .bin Datei aus, die in Punkt 2 entpackt wurde
  9. Klicken Sie auf den Button „Upgrade
  10. Nach einigen Minuten ist das Gerät wieder betriebsbereit (Achtung: Es kann sein, dass die IP des Geräts zurückgesetzt wurde. Daher bei erfolglosem Verbindungsaufbau mit der Standard-IP 192.168.2.1 eine Verbindung herstellen und mit den Zugangsdaten Admin/Admin anmelden)
  11. Klicken Sie nach erfolgreicher Anmeldung wieder auf „Utilities“ in der Navigationsleiste
  12. Klicken Sie im linken Menü auf „Backup
  13. Wählen Sie das .tar Archiv aus (falls das Backup wie in Punkt 6 exportiert wurde)
  14. Klicken Sie auf „Import
  15. Nach einem kurzen Neustart des Geräts ist nun die aktuelle Firmware sowie Ihre Konfiguration installiert

Hinweis: Mit der Firmware Version 1.51.9 wurde ein Feature eingebaut, welches mehrere SMS, die an einen Server geschickt werden, in einer XML-Datei verschickt. Mit der aktuellen Version des sendsms.pl Scripts, kommt es hier zu einem PERL-Fehler. Im Webinterface unter dem Punkt „SMS Services“ > „SMS API“ ist daher ganz am Ende der Seite die Anzahl der zu versendenden SMS innerhalb eines XML-Dokuments auf 1 zu setzen.
Für die initiale Einrichtung sowie die Anbindung des Gerätes an Nagios / Icinga, haben wir die Kurzanleitung in unserem Online Shop ebenfalls angepasst.
Haben sie Fragen oder Interesse an anderen Produkten für Ihre Überwachung?
Dann besuchen Sie einfach unseren NETWAYS Online-Shop.
Für einen persönlichen Kontakt stehen wir Ihnen ebenfalls sehr gerne zur Verfügung – nutzen Sie hierfür einfach unser Kontaktformular, schreiben Sie uns eine E-Mail oder rufen Sie uns an! Alle Details zum Shop-Kontakt finden Sie hier.

Christian Stein
Christian Stein
Manager Sales

Christian kommt ursprünglich aus der Personalberatungsbranche, wo er aber schon immer auf den IT Bereich spezialisiert war. Bei NETWAYS arbeitet er als Manager Sales und berät unsere Kunden in der vertrieblichen Phase rund um das Thema Monitoring. Gemeinsam mit Georg hat er sich Mitte 2012 auch an unserem Hardware-Shop "vergangen".

Serie NSClient++ – Teil 8: Eigene Skripte

NSClient++ verfügt über eine Vielzahl von Abfragemöglichkeiten um Windows Server zu überwachen.
Viele der Überwachungsmöglichkeiten und Konfigurationsparameter für diese wurden bereits in der NSClient++ Serie vorgestellt.
Immer dann wenn weitere Applikationen, Hardware, Logdateien etc. überwacht werden sollen stoßen die NSClient++ Module überwiegend an die Grenzen ihrer Möglichkeiten. Eigene Skripte müssen her…
Das Modul CheckExternalScripts ist genau für diesen Zweck gedacht und dient als Wrapper um eigene Skripte auszuführen. Vorrausetzung hierfür ist das Windows die Skriptsprache unterstützt und das jeweilige Skript einen validen Icinga/Nagios Returncode zurückliefert.

NSClient++ und externe Skripte

In der NSC.ini beeinflussen die Folgenden Sektionen das verhalten der „ExternalScripts“:
[External Script] beschreibt das verhalten beim ausführen der Skripte. Mit „command_timeout=“ wird der maximale Ausführungszeitrahmen (in Sekunden) eines Skripts/Plugins durch NSClient++ definiert. Achtung: NSClient++ bricht danach die Ausführung ab, unter Umständen kann das Skript jedoch weiterlaufen. Die Optionen „allow_arguments=“ und „allow_nasty_meta_chars=“ definieren ob beim ausführen von Icinga/Nagios Seite aus Argumente mit übergeben werden dürfen und ob „unangenehme“ Zeichen übermittelt werden dürfen (z.B.: |`&><'"\[]{} ). Unter [Script Wrappings] werden die Interpreter für die verschiedenen Dateieindungen der Skripte konfiguriert. Mit den Variablen %SCRIPT% und %ARGS% wird definiert an welcher Stelle das Skript ausgeführt werden soll und wo beim Aufruf die Argumente übergeben werden.

vbs=cscript.exe //T:30 //NoLogo scripts\lib\wrapper.vbs %SCRIPT% %ARGS%
ps1=cmd /c echo scripts\%SCRIPT% %ARGS%; exit($lastexitcode) | powershell.exe -command -

[External Scripts] gibt nun schlussendlich die eigentlichen Skripte und ihre Ausführungsparameter an:

check_icinga.bat=scripts\icinga.bat

Oder auch, ohne den Skriptwrapper zu nutzen:

check_powershell_exchange=cmd /c echo scripts\exchange.ps1 | powershell.exe -command -

Sollen Skripte verwendet werden, die außerhalb des NSClient Verzeichnisses liegen muss jeweils der absolute Pfad verwendet werden.

Perlskripte unter Windows

Um Perl Skripte über den NSClient++ auszuführen benötigt man unter Windows entweder einen Perl Interpreter, z.B.: Strawberry Perl oder man kompiliert die jeweiligen Plugins zuvor mit dem Perl Modul PAR::Packer zu ausführbaren .exe Dateien:

$ perl -MCPAN -eshell
cpan> install Bundle::libwin32
cpan> install PAR::Packer
$ pp -o check_test.exe check_test.pl

Wer bei der Installation von PAR::Packer auf einen Fehler stößt: http://www.nntp.perl.org/group/perl.par/2012/03/msg5306.html

Weekly Snap: Averting Java Plugins, Playing with HTML 5 & Hooks

30 Jan – 3 Feb turned over a new month with expo reflections, an OSDC program, and a nifty Java idea for Icinga/Nagios plugins – all topped off with our 100th development blog post.
Bernd brought home a few impressions from his visit to the Cloud Expo Europe in London and Lennart found a way around writing Java plugins for Icinga / Nagios.
From the development team, Angsar toyed with the idea of programming games in HTML5 while Marius showed how to add hooks in Perl to make patching vendor code a little easier.
Pamela closed the Open Source Data Center conference Call for Papers, and announced the preliminary program of speakers. She also reminded early birds to get in before  15 February for special conference rates.

Bitte einhängen!

Software funktioniert immer und ist ausschließlich ohne Bugs. Falls nicht ist sowieso immer der Vendor schuld. Der hat allerdings gerade keine Zeit und damit dauert es bis zur nächsten Bug-Fix Release.
Auch kein Problem, immerhin ist das Produkt kostenlos und der Quellcode offen, aber Hersteller Code ändern? Wenn in der Software selber keine Hook Konzepte oder Factories vorgesehen sind ist man nicht mehr Update-Fähig. Patches passen nicht mehr auf die neue Version und müssen mühsam angepasst werden oder man hat die Dokumentation verlegt oder erst gar keine angelegt.
Unter Perl gibt es ein paar Interessante Konzepte, Hooks nachträglich anzulegen. Eine davon ist Hook::WrapSub, welche Aufruferketten mit eigenen Prozeduren verbindet.
Folgendes Beispiel:

#!/usr/bin/perl -w
package TEST_SCRIPT::BINARY;
use version 1.0;
use strict;
use subs qw(do_something);
sub do_something {
        my ($first, $last) = @_;
        return sprintf('My name is %s, %s', $last, $first);
}
print do_something('Eduart', 'Zimmermann');
print "\n";
exit(0);

Ein Aufruf brachte folgendes Ergebnis:

$ perl test_script.pl
My name is Zimmermann, Eduart

Wir bräuchten nun eine Änderung in der Funktion ‚do_something‚ ohne den eigentlich Code zu verändern und verbauen eine Aufruferkette in einem eigenen Module:

package HookThat;
our $VERSION='1.0';
use Hook::WrapSub;
use Data::Dumper;
Hook::WrapSub::wrap_subs
        sub {
                splice @_, 0, 1, $_[0]. '-Hubert';
        },
        'TEST_SCRIPT::BINARY::do_something',
        sub {
                $Hook::WrapSub::result[0] =~ s/My name is/I am the holy/;
        };
1;

Dieses Modul binden wir in den bisherigen Code ein. Das bleibt die einzige Änderung. Eventuell gibt die Software Möglichkeiten vor, eigene Module in die Ausführung zu laden. Dann benötigt man überhaupt keine Änderungen am Quelltext mehr. Außerdem, alle eigenen Anpassungen in einem Module zu organisieren erleichtert eine spätere Wartung deutlich.

$ diff -u test_script.pl  test_script_neu.pl
--- test_script.pl	2012-02-02 15:27:12.476374490 +0100
+++ test_script_neu.pl	2012-02-02 15:30:58.388368456 +0100
@@ -4,6 +4,7 @@
 use strict;
 use subs qw(do_something);
+require 'HookThat.pm';
 sub do_something {
 	my ($first, $last) = @_;

Die Ausgabe ändert sich durch unseren Hook folgendermaßen:

$ perl test_script.pl
I am the holy Zimmermann, Eduart-Hubert

Die Funktion ‚wrap_subs‚ erweitert den Aufruf von ‚do_something‚ durch einen Pre- und einen Postwrapper. In der ersten Prozedur ändern wir das Argument des Vornamens und verändern in der zweiten (bzw. letzten) den ersten Satzteil. Es lassen sich dadurch auch komplexe Ketten gestalten um die Software passend für den jeweiligen Einsatzzweck fit zu machen, z.B. Mailverarbeitung zu generalisieren oder ‚eigentlich‘ interne Datenquellen durch Fremdsysteme (DB, Soap) zu befüllen ohne die Boardmittel der Anwendung zu verändern.
Für Perl gibt es noch weitere Module die mehr oder minder den selben Zweck erfüllen, Hook::LexWrap sei hier noch zu nennen, welches allerdings in der aktuellen Version keine Änderung der Argumente zulässt (Und dadurch fast schon wieder völlig unbrauchbar ist). Auch den Weg ‚zu Fuß‘ gibt es natürlich („Perl Symbol Table Hackery“):

*_Foo = *Foo;
*Foo = sub { print "Doing something different\n"; };

Alle diese Möglichkeiten sind zwar nicht besonders Simple und Perl erhöht nicht gerade die Leserlichkeit. Beim nächsten Update hält sich der Frust aber deutlich in Grenzen und die Anpassungen sind schnell wieder aktiv – Kaffeetrinken – Fertig!
Achso, dies ist übrigens der hundertste (ja, 100) Dev-Blogpost – Tättärätäääää! Vielen Dank an alle im Development für all die Gedanken, Zeilen und Worte im Schweiße des Angesichts ausformuliert …

Marius Hein
Marius Hein
Head of IT Service Management

Marius Hein ist schon seit 2003 bei NETWAYS. Er hat hier seine Ausbildung zum Fachinformatiker absolviert und viele Jahre in der Softwareentwicklung gearbeitet. Mittlerweile ist er Herr über die interne IT und als Leiter von ITSM zuständig für die technische Schnittmenge der Abteilungen der NETWAYS Gruppe. Wenn er nicht gerade IPv6 IPSec Tunnel bohrt, sitzt er daheim am Schlagzeug und treibt seine Nachbarn in den Wahnsinn.

Weekly Snap: Epic Perl, OpenNebula & HTML5

2 – 6 January kicked off 2012 with open cloud plans, an epic tool for Perl and a peek into the world of HTML5.
Sebastian started the New Year with new challenges for the Managed Services team – to design and implement a private cloud for internal and client use. OpenNebula, the open source cloud framework was the tool of choice, thanks to its flexibility, scalability, customizability and stability. Various hypervisors can be used and combined, such as KVM, XEN, VMWare and even container-based solutions like LXC. OpenNebula also offers flexibility in storage and repository, which can be local on individual hosts, or shared with NFS, GFS , OCFS2 iscsi, etc., or even on clustered LVM. Stay tuned for more open cloud posts on the blog, or join this year’s Open Source Data Center Conference where Constantino Vazquez Blanco of OpenNebula will present and run an intensive workshop.
Meanwhile Johannes got excited about HTML5, and more specifically about the classList API from html5demos.com. Sharing a snippet of script, he let the code speak for itself.
Christoph continued his journey into Perl plugin programming with a look at the EPIC extension for Eclipse. Better known for Java and C/C++, EPIC happens to also offer a Perl IDE. He listed some of its features such as syntax highlighting and validation, debugging, regex testing and auto-complete. Get the source code off Sourceforge or download direct off the Eclipse homepage. Installation is simplified with the Eclipse Update Manager and ‚http://e-p-i-c.sf.net/updates/testing‘.