[Gratismodul] Programmierbares PRTG-Monitor Add-In

  • Hallo Miteinander


    Ich stelle hier neu ein Spielzeug vor, an dem ich am Arbeiten bin.


    Ich habe ein PRTG-Monitoring Add-In geschrieben, bei dem man im Starface Modul allerlei eigene Channels als Feedback geben kann.


    //edit: Um alle Infos zu Zentral aktuell halten zu können wurde der Text hier entfernt.


    Für alle Infos siehe:http://wiki.si-solutions.ch/de/prtg-monitor


    MfG


    Fabian

  • So ich hab bereits daran herumgewerkelt.


    Es gibt jetzt ein Kernmodul anwelches eigene Module angebaut werden können.


    Oben ist das Kernmodul, sowie 2 Demopakete.


    Es muss eine Instanz des Kerns Konfiguriert werden, danach können eigene Pakete mithilfe der Public Funktionen "GetPackage" und "AddResult" eigene Channels hinzufügen.



    Sicherlich würden sich andere Freuen, wenn ihr eure eigenen Pakete auch zur Verfügung stellen würdet.


    MfG


    Fabian

  • Hallo Fabian


    Erst mal Danke für das Modul!
    Ich habs es hier auf einer 6.5beta am Laufen.


    Wenn ich in PRTG beim XML-Sensor auf den optionalen Parameter LOGLOCATION verzichte geht der Sensor in den Fehlemodus und reklamiert ein fehlerhaftes XML Schema.
    Verwende PRTG 18.1.38.11958


    Kannst du das bei dir nachvollziehen?


    Gruss Christian

  • Hallo Christian


    Könntest du mir kurz den Content vom File:


    C:\ProgramData\Paessler\PRTG Network Monitor\Logs (Sensors)\Result of Sensor XXXX Posten? (Zensier ihn noch von IP-Adresse, PW usw...)


    Danke!


    MFG


    Fabian

  • Hallo Fabian


    Ist es für dich denkbar der Funktion "AddResultToPackage" noch einen weiteren Parameter mitzugeben und in deinem PRTG CustomSensor zu parsen?
    Denke dabei an den Wertetyp und die Option "Delta" um laufende Counter auszuwerten.


    Gruss Christian

  • Hallo Christian


    Ich werde dir eine Option verbauen.


    In der nächsten Version kannst du eine Map von erweiterten Parametern mitgeben.


    Grundsätzlich generiert das Modul ein XML in diesem Format:


    Code
    <prtg>
                <result>
                            <channel>First channel</channel>
                            <value>10</value>
                </result>
                <result>
                            <channel>Second channel</channel>
                            <value>20</value>
                </result>
         </prtg>


    Dieses Format ist vom PRTG Voraussgesetzt.


    Das Modul wird die Map dann als <ElementName, Wert> einfügen.


    Z.b. die Map mit den Werten:


    <"ShowChart", "1">
    <"VolumeSize", "One">


    Für eine Übersicht der möglichen Params siehe: https://prtg.paessler.com/api.…password=demodemo&tabid=7


    Erzeugt:


    Code
    <prtg>
                <result>
                            <channel>First channel</channel>
                            <value>10</value>
                            <showchart>1</showchart>
                            <volumesize>one</volumesize>
                </result>
         </prtg>


    Ist das I.O?


    MfG


    Fabian

  • Hallo Fabian


    Das ist perfekt!


    Funktioniert bei dir die Übergabe der Werteinheit (Unit) aus dem Modul an PRTG?
    Meine Kanäle werden nach dem ersten Einliefern eines Werts mit "#" versehen.


    Gruss Christian

  • Hallo Christian


    Zitat

    Meine Kanäle werden nach dem ersten Einliefern eines Werts mit "#" versehen.


    Daran Arbeite ich gerade ;) wird mit dem nächsten Release auch gefixt.


    MfG


    Fabian

  • So habs gefixt.


    Oben ist unter dem gleichen DL-Link die neuste Version zum herunterladen.


    Bitte vor dem Modulupdate, in der Modulinstanz des PRTG-Monitors im Tab "Konfiguration" den Dienst auf "Stoppen" stellen ==> Modul abspeichern, und nach dem Update wieder auf "Starten" ==> Speichern.


    Ausserdem habe ich 2 neue Demopakete hinzugefügt, Leitungen On/Offline, sowie eines für den freien Speicherplatz.


    Beim Demo-Paket "freier Speicherplatz" wird ausserdem die Map-Funktion demonstrativ genutzt, um die Grösseneinheit, in der der Speicherplatz dargestellt werden soll, einzustellen.


    AddResultToPackage hat 2 neue, und eine geänderte Variable bekommen.


    "Unit" ist nun nur noch aus dem Dropdown wählbar, um eine eigene Einheit Anzugeben, muss die Unit auf "Custom" gestellt werden, dann kann im neuen Feld "CustomUnit" eine beliebige Unit angewendet werden. Ist in Demonstrativ in jedem Demo Paket drinn.


    Der 2. neue Wert ist die "Additional Parameters", dort kann eine Map mit allen weiteren Parametern gemäss: https://prtg.paessler.com/api.…password=demodemo&tabid=7 gefüttert werden.


    Channels welche bereits mit der Einheit # versehen wurden, können vom Modul nicht mehr geändert werden. Die neuen Units funktionieren nur bei neu erstellten Channel.


    Ich habe bei mir den Sensor einfach gelöscht, und wieder eingerichtet, damit er bei allen Channels automatisch die Units übernimmt.



    Mfg


    Fabian

  • Hallo Fabian


    Vielen Dank, auch mit der Erweiterung klappt alles wie gewünscht. Counter lassen sich nun prima im Difference Mode auswerten.
    IF's sind schon mal im PRTG, more to come...


    Meine Werke werde ich in Kürze hier posten.


    Gruss Christian

  • Hallo Christian


    Zitat

    Meine Werke werde ich in Kürze hier posten.


    Das Freut mich.


    Ich habe gerade noch eine neue Version Releast, Das Passwort wird nun vor der Übertragung Gehasht.


    Zum Updaten muss das Modul, sowie die Client.jar ersetzt werden.


    Ausserdem habe ich dazu ein Repository auf Github eröffnet.


    https://github.com/Fabian95qw/PRTG-2-Starface dies ist vorausgesetzt, um den Sensor bei der PRTG zu Posten.


    Den Serverteil habe ich aber nicht mehr drin, da ich dazu immer noch keine Antwort von der Starface habe, ob man den Source-Code veröffentlichen darf oder nicht.


    MfG


    Fabian

  • So nochmal ein Update hierzu.


    Das Modul hat jetzt eine Channel zu Sensor Zuweisung. (Screenshots und Anleitungen werden noch geupdatet.)


    GetPackage() wurde zu GetPackage(Sensorname). Der Baustein muss also in euren Modulen geupdatet werden.


    Die Parameter im PRTG sind neu wie folgt:: %host [PORT] [PASSWORT] [SENSORNAME] [TRUSTALLCA] [LOGLOCATION]


    Somit lassen sich die Starface-Channels auf einzelne Sensoren Aufteilen wie hier:



    MfG


    Fabian

  • Hallo Fabian,
    ich wollte gerade mal mit dem aktuellen Downloadset starten welches ich mir heute (06.02.2019) heruntergeladen habe.
    Das Änderungsdatum der PRTGClient.jar der Starface.bat und PRTG_Monitor_v76.sfm ist vom 08.01.2019.
    Meiner virtuellen Starface in Version 6.5.1.5 habe ich das "PRTG Monitor" Modul eingebunden und dieses mit dem Namen aus dem Beispielvideo "Demosensor" konfiguriert.
    Der Port bleibt default auf 25590, das Kennwort enthält keine Sonderzeichen. Die Portöffnung ist per SSH gespeichert.


    Auf meinem PRTG Core Server (Version 18.4.47.1962+) habe ich die beiden erforderlichen Dateien in das besagte Verzeichnis kopiert. Ich nutze für diesen Test nun auch diesen Core Server als Probe, für diese Test Starface. Später werde ich entfernte Probes nutzen wollen, deshalb ist aktuell die Netzwerk Latenz etwas höher). Java habe ich auf dem PRTG Core Host ->Windows 2012R2 Server sowohl in der 8u201 x86 als x64 installiert.


    Das Gerät habe ich wie gewohnt in PRTG der Core Server Probe hinzugefügt. Dabei habe ich keine gültigen SSH oder sonstigen Credentials dem Gerät gespeichert.
    Beim Hinzufügen des Sensors nach Anleitung habe ich folgenden String in die Parameterzeile eingefügt:


    %192.168.0.17 25590 Schnell0815 Demosensor true


    wobei die IP Adresse die der Starface ist. Der Name "Demosensor" kommt wie oben von dir geschildert aus dem Konfigurierten Modul.
    Den Parameter "True" benötige ich da ich kein gültiges Zertifikat auf der Starface eingerichtet habe, zumindest keines welches einer CA entspricht dem mein Chrome Browser vertraut.


    Mein Problem ist nun, dass PRTG folgende Meldung an mich abgibt:


    Sensor
    XML-Programm-/Skriptsensor
    XML: Das zurückgelieferte XML entspricht nicht dem erwarteten Schema. (Code: PE233) -- JSON: Das zurückgelieferte JSON entspricht nicht der erwarteten Struktur (Invalid JSON.). (Code: PE231)


    Wo genau liegt hier der Fehler?
    Ich habe insgesamt folgende Fragen:


    1. Wie löse ich das Problem
    2. Welche Java Version benötige ich und reicht diese auf dem Core Server falls ich später von diversen Probes aus andere Systeme scannen lassen möchte?
    3. Die Einbindung weiterer Channel bekomme ich mit der obigen Anleitung nicht hin.



    Besten Dank und Grüße
    Christian

  • Hallo Christian


    Ich habe von jemand anderen auch eine Meldung erhalten, dass mit der neueren Java-Version der PRTG-Client gar keinen Output liefert, obwohl er es sollte.


    Du kannst die PRTGClient.jar auch von Hand ausführen. Einfach

    Code
    java -jar "C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXEXML\PRTGClient.jar" xxx.xxx.xxx.xxx Port Passwort Demosensor true

    in einem CMD Fenster / Powershell Fenster eingeben.
    Wenn es korrekt ablauft, müsste der Client eine XML-Datei ausgeben.
    Parallel könntest du Prüfen, was die Server Logfiles des PRTG-Monitor auf dem DEBUG Level liefert?


    Danke!


    MfG


    Fabian

  • So, 3 Bugfixes später habe ich alle Probleme mit der aktuellsten Java Version behoben, und ausserdem das Logging im PRTG-Client umgebaut.


    Sollten weitere Probleme auftreten, bitte einfach nochmals melden.


    MfG


    Fabian

  • Hallo nochmal,
    ich habe die beiden Files im PRTG Verzeichnis sowie das Modul durch die neuen Dateien ersetzt.
    Der Sensor wurde neu angelegt doch leider kommt auch hier nichts bei rum.


    Nutze ich die Kommandozeile oder Powershell zum ausführen des Scripts mit den Parametern erhalte ich keinerlei Rückmeldung, ich sehe aber dass die Ausführung eine kurze Zeit anhält bevor ich die nächsten Befehle eingeben kann.
    Benötigt Java ab Werk irgendwelche Sicherheitsfreigaben um vom PRTG Installationsverzeichniss von Laufwerk D:\ starten zu können? Ich habe in Java keine Optionen hierzu gefunden.


    Im Logverzeichniss unter:
    D:\PRTG Network Monitor\ProgramData\Logs\debug findet sich ebenfalls kein aktueller output.


    Beste Grüße
    Christian

  • Hallo Christian


    Das ist sehr Merkwürdig. Auf meiner virtuellen Maschine musste ich keinerlei Vorkehrungen treffen, um es zum laufen zu bringen.


    Kannst du bitte mal mit der aktuellsten Version des Clients: https://github.com/Fabian95qw/…ter/bin/client/Client.rar (Gestern Geupdatet) den Befehl:
    java -jar "C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXEXML\PRTGClient.jar" xxx.xxx.xxx.xxx Port Passwort Demosensor true true <== 2 mal true nacheinander Versuchen?


    Dort solltest du eigentlich einen Output erhalten.


    MfG


    Fabian

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!