Seite wählen

NETWAYS Blog

Microsoft Sharepoint Monitoring

Diese Woche habe ich mich mal wieder etwas in der Windows Welt herumgetrieben und einiges zum Thema Sharepoint Monitoring herausgefunden.
Da Sharepoint normalerweise in etwas größeren Firmen eingesetzt wird, und dann in der Regel auch entsprechend viele Mitarbeiter darauf zugreifen, ist der normale Windows Admin dazu angehalten eine wie auch immer topologisch aufgebaute Sharepoint Farm einzurichten. Diese kann aus mehreren Sharepointservern und einem MSSQL-Cluster im Hintergrund aufgebaut werden, aber auch andere Konstrukte und Topologien sind möglich.
Da man als Monitoring Guy aber nicht immer den vollen Einblick in die Planungen/Umsetzugen der Windowsabteilung hat möchte ich euch hier ein Plugin vorstellen, dass einem das Leben vereinfachen kann.
Das Plugin überwacht einem die komplette Sharepoint Farm mit einem einzigen check,
und das beste: Man muss nichts dafür wissen. Man muss sich nicht überlegen welche Komponenten man überwacht und auch nicht, welche Maschinen zu dem Konstrukt gehören. Soweit so gut:
Das Plugin bedient sich des „Sharepoint Health Analyzer“, welcher ab Sharepoint 2010 zur Verfügung steht. Dieser bringt schon einen Schwung an Checks mit, die sich allerdings noch im Nachgang mit der nötigen Expertise durch den Windows Admin erweitern lassen.
Das ganze wird eingebunden in ein ganz kurzes powershellscript, welches sich dann über nsclient++ aufrufen lässt.
Et voilà, c’est tout.
PS: Möchte man auch noch das powershellscript nicht selber schreiben kann man sich hier bedienen. Das Plugin könnte zwar noch ein paar Verbesserungen vertragen (–help usw.) Aber grundsätzlich tut es was es soll.
 
Bildquelle:

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.

Monitor WMI mit perl unter windows

Es gibt 1000 und einen Weg Windows zu überwachen. Heute möchte ich euch zeigen wie es möglich ist mit WMI und Perl an ein Fülle von Daten zu kommen.
Zuerst einmal muss perl unter Windows installiert werden. Auf perl.org bekommt man eine Übersicht welche Versionen es für Windows gibt. Ich bevorzuge Strawberry Perl für Windows, da es zu 100% OpenSource ist.
Wenn man nsclient benutzt kann man sich auch überlegen es in ein Unterverzeichnis zu installieren. Es reicht prinzipiell es dort hin zu kopieren und die richtigen Abhängigkeiten mit zu installieren. Vor allem Modul Win32::OLE ist hierbei wichtig. Im Beispiel-Command weiter unten liegt perl unterhalb von nsclient im verzeichnis „extra“
Wenn perl installiert ist braucht man noch das plugin. Ich habe eins geschrieben, dass check_wmi_range.pl heißt und diverse Werte nach bestimmten Regeln abruft,auswertet und ausgibt. Es lässt sich auf hier von netways.org herunterladen
Da das Plugin aufgerufen werden möchte sollte man ein paar commands in die nsclient.ini eintragen.
Ein allgemeines Command zum aufruf von perl scripten sieht so aus:
call_perl=extra\Perl\bin\perl.exe -I extra\perl\lib -I extra\perl\site\lib $ARG1$
Der Aufruf von check_wmi_range.pl sieht dann folgendermaßen aus:
define command {
command_line $USER1$/check_nrpe -u -t 40 -H $HOSTADDRESS$ -c call_perl -a 'scripts/check_wmi_range.pl -w "$ARG1$" -c "$ARG2$" -C "$ARG3$" -o "$ARG4$" $ARG5$'
command_name win-wmi-range
}

Die Hilfe zum plugin lässt mit ./check_wmi_range.pl –help aufrufen oder hier nachlesen.

HELP
check_wmi_range.pl 0.55 - checks one wmi object per instance against a threshold
Options are:
  -c, --critical                  Enter the critical threshold
  -w, --warning                   Enter the warning threshold
  -C  --class                     Enter the WMI class
  -o  --object                    Enter the WMI object
  -e  --exclude                   Enter a regex to exclude instances
        to exclude more than one instance write -e "(instance1|instance2)"
  -i  -- include                  Enter a regex to include instances
        other Instances will be skipped
  -t  --no_Total                  hide the _Total instance
  -z  --zero                      hide zero values
  -s  --sleep                     run twice and sleep between the iterations <time to sleep>
  -I  --idle-contra-indicator     designed for proc_process. Check's if there's enough idle time left <threshold>
        It becomes critical if the real idle time of the last free core falls below threshold
  -n, --no-perf-data              no performance data
  -v  --verbose                   verbose mode
  -h, --help                      display this help and exit
      --usage                     display a short usage instruction
  -V, --version                   output version information and exit
Requirements:
 A fully qualified wmi String consists of \Class\Instance\Object\Value
 This plugin uses perl and DBD::WMI to get values from multiple WMI Instances for each object.
 A working WMI counter is for example Win32_PerfFormattedData_Tcpip_NetworkInterface\<InstanceName>\BytesTotalPersec
 In most cases you want to exclude the "_Total" instance ( -t).
Examples:
 Physical disktime:
  Class = Win32_PerfFormattedData_PerfDisk_PhysicalDisk
  Object = percentdisktime
  cmd: perl -w check_wmi_range.pl -w 10 -c 20 -C Win32_PerfFormattedData_PerfDisk_PhysicalDisk -o percentdisktime -t
 Interface Traffic:
  Class = Win32_PerfFormattedData_Tcpip_NetworkInterface
  Object = BytesTotalPersec
  cmd: perl -w check_wmi_range.pl -w 1000000 -c 1500000 -C Win32_PerfFormattedData_Tcpip_NetworkInterface -o BytesTotalPersec
 Process CPU usage:
  Class = Win32_PerfFormattedData_Perfproc_Process
  Object = PercentProcessorTime
  cmd: perl -w check_wmi_range.pl -w 10 -c 20 -C Win32_PerfFormattedData_Perfproc_Process -o PercentProcessorTime -t -e Idle -z -I 60
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.

Weekly Snap: Upcoming Webinars, Bareos & NSClient++ tips

weekly snap26 – 30 August ended the month with much activity from our training and events team, online shop and consulting corner plus a backup migration to boot.
On events, Eva counted 57 days to the OSMC 2013 with Pierre Wallemaqc’s presentation on “PMp – Another Approach to Configuring Nagios” as Christian announced the dates for our first round of NETWAYS webinar classes on OpenNebula, LConf and Puppet.
Christoph then lamented the failed funding attempt for the Ubuntu Edge smartphone on Indiegogo and continued the NSClient++ series with his contribution on NSClient++ with SSL.
In the meantime, Martin S migrated our backup systems from Bacula to Bareos (Backup Archiving Recovery Open Sourced).
Finally, from our online shop, Georg introduced our “product trial” policy and latest product to hit our store shelves – the Wiesemann & Theis web thermograph.

nsClient++ mit ssl Teil 1/2

Sicherheit durch Verschlüsselung ist nicht nur auf den meisten Internetseiten und und im Emailverkehr (zumindest vom Client zum Server) mittlerweile Standard. Auch innerhalb von Unternehmen laufen immer mehr Verbindungen über SSL ab.
Im Monitoring sollte Sicherheit eigentlich ganz oben auf der Agenda stehen, jedoch ist gerade beim Windows Monitoring mit check_nrpe und ganz besonders check_nt nicht alles zum besten bestellt. Währen check_nrpe wenigstens eine grundlegende Verschlüsselung bietet sendet check_nt seine Daten in Klartext.
Heute möchte ich euch daher zeigen wie man eine Sichere Verbindung mit nsclient++ herstellt. Hierbei wird nsclient++ auf dem Windows Host als Server/Agent eingesetzt und auf Icinga-Seite als Client.
Zur Verschlüsselung und Authentifizierung wird SSL mit CA und Zertifikaten engesetzt.
Als erstes muss man sich auf Linux Seite nsclient++ kompilieren. Das ist nicht schwer, hält jedoch ein paar Fallstricke bereit. Ich beschreibe den Vorgang hier exemplarisch für ein Debian System,
Zuerst installieren wir die notwendigen Abhängigkeiten.
aptitude install -y git build-essential cmake python libssl-dev libboost-all-dev python-dev libprotobuf-dev protobuf-compiler
# Und zusätzlich
aptitude install libcrypto++-dev libcrypto++9
aptitude install libzmq1 libzmq-dev
aptitude install libtinyxml2-dev libtinyxml2.6.2

Jetzt können wir den Git Snapshot herunterladen. Auf grund eines Problems im aktuellen Source Code greifen die dabei auf den 0.4.1 Branch zurück.
git clone https://github.com/mickem/nscp.git
git checkout 0.4.1
# aktuellen Branch anzeigen:
git branch

Um einem weiteren kleinen Bug zu entgehen muss noch eine Datei im jetzt entstandenen Verzeichnis umbenannt werden.cd nscp/build
mv FindTinyXML2.cmake FindTINYXML2.cmake
Es ist tatsächlich wahr. Linux ist case-sensitive. Weil in dem libtinyxml2 Paket die Datei tinyxml2.cpp fehlt besorgen wir uns schnell eine neue und kopieren sie ins richtige Verzeichnis. Bei der Gelegenheit nehmen auch gleich noch eine passende tinyxml2.h mit.
wget https://raw.github.com/leethomason/tinyxml2/master/tinyxml2.cpp
wget https://raw.github.com/leethomason/tinyxml2/master/tinyxml2.h
mv tinyxml2.cpp /usr/include/
mv tinyxml2.h /usr/include/

Nach diesen ganzen Vorarbeiten kann es jetzt an das eigentliche kompilieren gehen. Zuerst erstellen wir ein neues Verzeichnis und wechseln hinein. Das ganze sollte folgendermaßen aussehen.
mkdir build
tree -L 1
.
├── build     # build verzeichnis
└── nscp      # git snapshot
cd build

Hier wird jetzt konfiguriert und anschließend kompiliert.
cmake ../nscp
make
# and check it
make test

Damit ist der Client fertig, jetzt ist der Windows Agent an der Reihe. Hier muss nichts kompiliert werden. Benutze einfach das fertige zip oder msi Paket von nsclient.org und installiere es.
Im nächsten Teil der Serie wird nsclient++ konfiguriert um SSL Verschlüsselung und Authentifizierung zu benutzen. Außerdem werde ich ein paar Überwachungsbeispiele angeben.

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.

Weekly Snap: EDBC & EventDB, LCOV & Open Source Survey

weekly snap22 – 26 April released event-monitoring tools, highlighted NSClient++ features and code coverage tools and shared survey results on open source.
Jannis released EDBC 0.1.0 Beta and EventDB 2.0.5 Beta to enable users to automatically recognize ‘clear events’ and acknowledge all related problem events.
Gunnar then discovered LCOV for ‘code coverage’ statistics on C-/C++ programs as Christoph finished the NSClient++ series with part 10 on the latest features worth looking at.
Bernd followed with a presentation on The Future of Open Source from Black Duck Software’s recent survey.
Finally, we welcome Blerim our newest addition to the Managed Services team, while we bid Birger a final farewell, who is finishing his sabbatical and time with NETWAYS.