Seite wählen

NETWAYS Blog

Weekly Snap: Python Floats, NSClient++ tips & Mac Cheat Sheets

6 – 10 August introduced Mac cheats, Python and NSClient++ tips, and a presentation from the last OSMC.
Eva continued with her countdown (72 days) to the OSMC 2012, this time with Sebastian Harl’s presentation “Collectd in the Big Wide World – Connecting Data Collectors to Monitoring Solutions”.
Stefan then discovered the Mac OS X cheat sheet app and keyboard view as Eric explained float division and complex numbers in Python.
Finally, Phillip added Part 9 on registry to his NSClient++ series while Birger reported from his sabbatical, enjoying the summer in Rostock while working remotely with his Sydney colleagues.

Serie NSClient++ – Teil 9: Registry

Konfigurationsdatei

Die Konfiguration von NSClient++ wird im Standard in der Datei nsc.ini vorgenommen.
NSClient++ bietet neben dieser Konfigurationsmethode auch die Möglichkeit die Konfiguration in die System Registry auszulagern.
Ein verlagern der Konfiguration aus der Konfigurationsdatein in die Registry bietet u.a. in großen Deployments den Vorteil das man die Konfiguration z.B.: über eine Gruppenrichtlinie verwalten und steuern kann.
Konfigurationsobjekte befinden sich dann unter HKEY_LOCAL_MACHINE\Software\NSClient++ und können von dort aus bearbeitet werden.

Konfiguration auslagern

In der bestehenden Konfigurationdatei muss neben dem Parameter „use_file=1“ der Parameter „use_reg=1“ ergänzt werden.
Nachdem die nsc.ini diese Option im Bereich „[Settings]“ enthält, kann die Konfiguration in die Registry importiert werden.
Für den Import der Konfiguration in die Registry wird das Module RemoteConfiguration verwendet.

C:\Program Files\NSClient++>"nsclient++.exe" -noboot RemoteConfiguration ini2reg
NSCore not loaded...
Archiving crash dumps in: C:\Users\Administrator\AppData\Local\NSClient++\crash dumps
Migrating to registry settings...
importing: modules/FileLogger.dll=
importing: modules/CheckSystem.dll=
...

Nach dem Import finden sich die Objekte, wie bereits erwähnt, unter HKEY_LOCAL_MACHINE\Software\NSClient++ in der Registry wieder.
Damit NSClient++ nun nicht weiterhin die Konfigurationsdatei nutzt muss die Option „use_file=“ deaktiviert werden („use_file=0“) und der NSClient++ Service neugesartet werden.

net stop nsclientpp
net start nsclientpp

Die Einstellungen der Registry können nun auf andere Windows-Server verteilt werden (z.B.: mittels GroupPolicy oder SoftwareDeployment Lösung). NSClient++ benötigt jedoch weiterhin einen gewissen Teil der nsc.ini, die Einstellungen in der Sektion [Settings] und die Auflistung der zu ladenden Module.

Weekly Snap: NSClient++, Galaxy S3, Connect for NodeJS & B2Run

23 – 27 July took on two blog series – NSClient++ and Galaxy S3, considered Connect for NodeJS, looked back at a successful first B2Run and forward to the OSMC.
Eva counted 86 days down to the OSMC 2012 with Jörge Linge’s presentation on PNP4Nagios, while Marius looked at Connect, a framework for NodeJS that comes bundled with middleware plugins for all possible purposes.
Thilo then kicked off his blog series on Samsung Galaxy S3 as a mobile office and Phillip continued with Part 8 of his NSClient++ series, on using external and perl scripts.
We ended a great week by celebrating Sysadmin Day with a thank you cake and Vanessa’s reflections on our first B2Run.

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