NoSpamProxy mit Paessler PRTG überwachen

Letzte Aktualisierung am 01.07.2023, 13:07:32 Uhr

Inzwischen hat fast jedes Unternehmen ein Monitoring System im Einsatz. Die Standardthemen wie eingehender/ausgehender Datenverkehr, Status von Diensten, freier Arbeitsspeicher und Festplattenkapazität, Prozessorlast, etc…hat jeder auf dem Radar. Anders sieht es aus, wenn Fachanwendungen auf den jeweiligen Server betrieben werden. Hier taucht vor und nach der Implementierung immer die Frage auf: Habe ich alle relevanten Daten im Monitoring System erfasst? Oft merkt man erst bei einer Störung der Anwendung, dass man etwas vergessen. Dann nämlich, wenn das  Monitoring System keinen Alarm anzeigt. So auch in diesem Fall geschehen. 🙂

In dieser Umgebung kommt für die Abwehr von Malware/Spam das Produkt NoSpamProxy (NSP) von Net At Work zum Einsatz. Für die Überwachung der kompletten IT-Landschaft ist bereits PRTG aus dem Hause Paessler implementiert. Eines Tages schlugen über das Ticketsystem nach und nach  Nachfragen in der IT Abteilung auf. Verschickte E-Mails an externe Empfänger kommen dort nicht an. PRTG hat diesbezüglich keinen Alarm angezeigt: Exchange – online, NSP – online, Internetzugang – online, benutzerdefinierte SLA Probes – online. Es hat sich bei der genaueren Analyse herausgestellt, dass der Internet Service Provider Probleme mit dem Routing hatte. Was dazu geführt hatte, dass das NSP Gateway keine Verbindung zum gegenüberliegenden E-Mailserver aufbauen konnte. 🙁

Bei meinen Überlegungen und anschließender Suche im Internet bin ich auf das PowerShell Skript von Thomas Stensitzki gestoßen. Es ist bzw. war am Ende des Tages die einzig brauchbare Seite, welche mich meinem Ziel einen großen Schritt nähergebracht hat.  Das größte Manko an seinem PowerShell Skript ist meiner Meinung nach, dass er auf dem Server auf dem die NSP – Intranet Rolle läuft, auch eine PRTG Probe installiert hat. Der Sensor „Programm/Skript“ führt das hinterlegte Skript wird immer auf der PRTG Probe aus, dem das Gerät und somit auch Sensor zugeordnet ist.

Unsere Anforderungen hingegen waren wie folgt:

  • Auswertung der Nachrichtenverfolgung über alle NSP Gateways hinweg.
  • Auswertung der Nachrichtenverfolgung des angegebenen NSP Gateways.
  • Übergabe des Abfrageintervalls des PRTG Sensors an das Skript. Somit sind manuelle Anpassungen im PowerShell Skript nicht notwendig.

Entstanden ist folgendes PowerShell Skript bzw. PRTG Sensor. Die jeweils aktuelle Fassung steht auf meinem Git Repository zur Verfügung:

NoSpamProxy Version 13.x: Download NoSpamProxy Version 14.0.5: Download

Das Skript herunterladen und ggf. einen individuellen Dateinamen vergeben. Wichtig ist der Dateityp muss .ps1 sein. Die Datei auf der PRTG Probe in das Verzeichnis „.\Custom Sensors \EXEXML“ (z.B. C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXEXML) ablegen/abspeichern.

Anschließend die Weboberfläche von PRTG in einem Browser anrufen und anmelden. Zuerst auf der Probe bzw. in der entsprechenden Hierarchie ggf. den Server auf dem die NSP Intranet Rolle installiert als Gerät anlegen. Danach einen neuen Sensor dem Gerät hinzufügen. Im Assistenten den Sensortyp „Programm/Skript (Erweitert)“ auswählen.

Nun erscheint die Maske für die Allgemeinen- und Sensoreinstellungen.

Parameter:

Als erster Parameter muss „%device“ eingegeben werden. PRTG speichert den Computernamen des übergeordneten Geräts in der Variablen %device. Grund dafür ist, dass ich den Computername im PowerShell Skript in eine Variable gepackt habe. Gerade wenn man unabhängige NSP Instanzen in seiner Landschaft hat, ist das PowerShell Skript flexibel und muss nicht unnötig oft dupliziert werden.

Als zweiter Parameter muss der Intervall in Minuten angegeben werden. Hintergrund ist, dass der Sensor natürlich nicht bei jeder Abfrage die gesamte Nachrichtenverfolgung des NSPs auswerten soll. Sondern nur Einträge, die seit der letzten Ausführung des Sensors erfasst worden sind. Wird der Abfrageintervall des Sensors nur alle 30 Minuten ausgeführt, so muss natürlich auch der dieser Parameter geändert werden. Wichtig ist, dass der Wert in Anführungszeichen steht! Bis dato gibt es in PRTG keine Variable für den Abfrageintervalls des Sensors.

Als dritter Parameter kann optional noch der Computername angegeben werden, auf dem die NSP Gateway Rolle läuft. Somit kann explizit für den angegeben Server die Statistik abgerufen und ausgewertet werden. Dies macht meiner Meinung nach Sinn, wenn man mehrere NSP Gateways im Einsatz hat und diese zudem über verschiedene Internetleitungen agieren.

%device "5"

Sicherheitskontext:

Nach einer PRTG Standardinstallation wird der dazugehörige Dienst „PRTG Probe Service“ unter dem Benutzer „Lokales System“ ausgeführt. Mit diesem Systembenutzer ist es nicht möglich, eine PowerShell Remoteverbindung auf einen entfernen Server aufzubauen. Daher muss die zweite Option ausgewählt werden. In 99% der Fälle ist bereits entsprechende Zugangsdaten im übergeordneten Gerät bzw. in der Hierarchie konfiguriert. Denn Sensoren für Windows-Systeme (z.B. WMI) greifen auf dieselben Zugangsdaten zurück.

Sind alle Einstellungen und ein schöner Name für den Sensor vergeben, kann der Sensor erstellt werden.

Nachstehend ein Screenshot des Sensors, wenn dieser eingebunden ist. In diesem Fall handelt es sich um meine Testumgebung, wo natürlich ohne Lizenz Schlüssel für NSP und E-Mailserver auch nichts zu sehen ist. 😉

Der Code bzw. Sensor ist sozusagen noch BETA. Ich habe diesen in zwei verschiedenen Umgebungen bisher im Einsatz. Somit würde ich mich natürlich freuen, wenn sich weitere Tester finden lassen. Viel Spaß beim Ausprobieren. 🙂

Abonnieren
Benachrichtige mich bei
18 Comments
neueste
älteste
Inline Feedbacks
View all comments
Adrian Men
29.09.2023 08:48

Hallo – leider taucht bei mir folgende Fehlermeldung auf:

The access has been denied. To resolve this issue, check your Credentials for Windows Systems in the device settings. (code: PE095)

die Zugangsdaten sind aber 100% richtig und in der Firewall wird auch nichts blockiert hinsichtlich DMZ.

Der Gatewayserver ist mit IP eingerichtet und die Parameter stehen so wie oben beschrieben beim Sensor hinterlegt.

Vieleicht hat jemand eine Idee ?

Vielen Dank !

Adrian Men
Reply to  Daniel
29.09.2023 10:54

Hallo Daniel, nein der Gateway-Server steht in der DMZ – die Intranet-Rolle ist im Lokalen Netz – ebenfalls der PRTG Server. Der Sensor muss doch auf die Gateway Rolle zeigen oder?

Danke & Gruß
Adrian

David
29.06.2023 17:07

Ich erhalte diesen Fehler, wo könnte das Problem liegen?

XML: Das zurückgelieferte XML entspricht nicht dem erwarteten Schema. (Code: PE233) — JSON: Das zurückgelieferte JSON entspricht nicht der erwarteten Struktur (No mapping for the Unicode character exists in the target multi-byte code page). (Code: PE231)

Björn Wunschik
02.01.2023 17:13

Guten Tag und ein gesundes neues Jahr! Vielen Dank für die Arbeit! Allerdings bin ich mit dem neuen Skript in ein Problem gelaufen, das vielleicht auch für andere relevant sein könnte. Ich habe unseren NSP vor Weihnachten auf die aktuelle 14.0.2 gehoben und heute das aktualisierte Skript in unser PRTG eingebaut. Beim Update des NSP auf die 14 wird ein neuer O365-Konnektor angelegt ( https://docs.nospamproxy.com/Server/14/Suite/de-de/Content/update-information/14/changes-and-recommendations-version-14.htm ganz unten ) und mein PRTG ist jetzt der Meinung, das zum Konnektor gehörende Zertifikat sei seit 738521 Tagen abgelaufen. Dieser automatisch angelegte Konnektor ist nicht bearbeitbar, ich kann ihm kein Zertifikat zuordnen und sehe… Weiterlesen »

Björn Wunschik
Reply to  Daniel
03.01.2023 11:26

Hi Daniel,

Vielen Dank für Deine schnelle Reaktion!

Ja, es ist ein eingehender Sendekonnektor. Mit der geänderten Version Deines Skriptes wird er nicht mehr erfaßt und das Problem ist damit verschwunden. Ich sende Dir trotzdem gleich noch Screenshots des Konnektors.

Vielen Dank nochmal für Deine Arbeit an dem Skript! Ich finde es sehr nützlich.

Einen schönen Tag noch!
Björn Wunschik

Nico
13.12.2022 10:38

Hallo Daniel, danke für Deine Hilfe! Ich habe gerade Dein 14er Skript (wir haben NSP von 13 auf 14 aktualisiert) wie beschrieben in PRTG eingebunden und der Benutzer, der das Skript ausführt, ist Mitglied in den Gruppen „NoSpamProxy Configuration Administrators“ und „NoSpamProxy Monitoring Administrators“. Der Sensor steht nun im Status Fehler und in der Übersicht sehe ich nur zwei Kanäle: Ablauf der NSP Lizenz mit einem Wert von – 738.501 Tage und Ausfallzeit ohne Werte. Hast Du eine Idee was ich falsch gemacht haben könnte?

stefan seidl
27.10.2022 10:49

hallo, ich versuche geradem eine nsp server via prtg zu überwachen und erhalte immer die meldung: -„Server existiert nicht!“
jemand nen tipp warum? hab alles, mehrfach, brav nach anleitung eingerichtet.
danke
Server existiert nicht!“

Frank Carius
27.09.2019 11:50

Nett geschrieben und vor allem die Set-PrtgResult-Funktion hat es mir angetan :-). Du schreibst, dass man auf dem NSP dann eine PRTG Probe installieren müsste. Und du verwendest „Invoke-command“, wozu die Rollen aber auch erreichbar sein müssten. Es geht vielleicht eleganter (je nach Sichtweise) ich würde das Skript einfach per Windows Taskplaner alle x Monuten auf dem PC laufen lassen, auf dem die NSP Commandlets vorliegen und die Ergebnisse per HTTP-Push an PRTG posten. https://www.msxfaq.de/tools/prtg/prtghttppushsensoren.htm. Ich nehme ihr Posting mal zum Anlass mal zu schauen, was wir vielleicht ins Produkt einbauen können. NoSpamProxy hat aber schon heute Windows Performance Counter… Weiterlesen »

Jan Jäschke
25.09.2019 08:36

Hallo Herr Wydler,

es freut mich sehr zu sehen, dass Sie Ihre Arbeit und Ihr erarbeitet Wissen mit der Öffentlichkeit teilen.
Ich freue mich schon drauf Ihr Skript in meiner Testumgebung auszuprobieren 🙂

Außerdem habe ich mir die Freiheit genommen Ihren Beitrag in unserem Forum zu verlinken (https://forum.nospamproxy.com/showthread.php?tid=17). Es ist ein hervorragendes Beispiel was mit dem NSP unter der Haube alles möglich ist.

Ich freue mich schon auf weitere Beiträge von Ihnen. 🙂

Mit freundlichen Grüßen,
Jan Jäschke

Produktmanager der Net at Work GmbH