[Modul] PRTG - PRTG in IPS einbinden und IPS in PRTG überwachen

SDK Version 2.20 Version 5.1
License Check Style Run Tests

Symcon-Modul: PRTG

Einbinden von PRTG Geräten und Sensoren in IPS.

Dokumentation

Inhaltsverzeichnis

1. Funktionsumfang

PRTG IO:

  • Schnittstelle zwischen den Device und Sensor Instanzen und PRTG.
  • Empfangen von Events aus PRTG.
  • Bereitstellen von IPS Systeminformation für einen PRTG-Sensor.
  • Abfragen von Graphen aus PRTG.

PRTG Konfigurator:

  • Auflisten alle in PRTG verfügbaren Geräte und Sensoren.
  • Erstellen von neuen PRTG-Instanzen in IPS.

PRTG Gerät:

  • Empfangen und darstellen des aktuellen Zustände in IPS.
  • Pausieren und Fortsetzen der Überwachung aus IPS über WebFront und PHP-Scripten.

PRTG Sensor:

  • Empfangen und darstellen des aktuellen Zustand in IPS.
  • Pausieren und Fortsetzen der Überwachung aus IPS über WebFront und PHP-Scripten.
  • Quittieren von Alarmmeldungen aus IPS über WebFront und PHP-Scripten.

2. Voraussetzungen

  • IPS 5.1 oder höher
  • PRTG

3. Software-Installation

IPS 5.1:
Bei privater Nutzung: Über den ‚Module-Store‘ in IPS.
Bei kommerzieller Nutzung (z.B. als Errichter oder Integrator) wenden Sie sich bitte an den Autor.

4. Einrichten der Instanzen in IP-Symcon

Details sind in der Dokumentation der jeweiligen Module beschrieben.

In der Dokumentation des PRTG IO: wird im Anhang erläutert wie eine Überwachung von IPS aus PRTG erfolgen kann.
Ebenso wird dort das Empfangen von Statusänderungen eines Sensors in IPS erläutert, damit IPS den Zustand zeitnah darstellen kann.

Es wird dingend empfohlen somit zuerst den PRTG IO: zu erstellen und fertig zu konfigurieren, sowie in PRTG alle gewünschten Einstellungen vorzunehmen, bevor weitere Instanzen in IPS über den PRTG Konfigurator: angelegt werden.

5. Anhang

1. GUID der Module

Modul Typ Prefix GUID
PRTG IO I/O PRTG {67470842-FB5E-485B-92A2-4401E371E6FC}
PRTG Configurator Configurator PRTG {32B8B831-91B2-44B5-9B66-9F1685647216}
PRTG Device Device PRTG {95C47F84-8DF2-4370-90BD-3ED34C65ED7B}
PRTG Sensor Device PRTG {A37FD212-2E5B-4B65-83F2-956CB5BBB2FA}

2. Hinweise

Der im PRTG IO: verwendete Benutzer sollte in PRTG Administrative Rechte bekommen, um die Überwachung zu steuern und Alarme quittieren zu können.
Die Kommunikation zwischen IPs und PRTG kann sowohl per HTTP als auch per HTTPS (SSL/TLS) erfolgen.
Hierzu ist PRTG und die URL im PRTG IO: entsprechend zu konfigurieren. Unverschlüsselte Übertragung sollte niemals zur Kommunikation mit einem externen PRTG-Server genutzt werden, da die Logindaten dann nicht verschlüsselt übertragen werden!

3. Changelog

Version 2.20:

  • Fehler im IPS-Sensor behoben, wenn PRTG ‚Keine Daten‘ als Nutzdaten übertragen hat.

Version 2.10:

  • Fehler im IPS-Sensor behoben, wenn Laufwerke keine Bezeichnung hatten
  • Fehler im IPS-Sensor behoben, wenn Pagefile genutzt wird

Version 2.00:

  • Release für IPS 5.1 und den Module-Store

Version 1.36:

  • Location Feld in create verschoben

Version 1.35:

  • Fehler im Konfigurator, wenn die Kategorie in der Kategorieauswahl nicht auf oberster Ebene war.
  • Fehlende Übersetzung ergänzt.
  • Konfigurator meldet wenn IO nicht aktiv ist.

Version 1.31:

  • Darstellungsfehler im Konfigurator beseitigt
  • Formen nutzen jetzt NumberSpinner mit Suffix anstatt IntervalBox

Version 1.30:

  • Fehlerbehandlung Datenaustausch überarbeitet
  • Konfigurator erstellt Instanz unterhalb von Kategorien mit dem Namen des jeweiligen Gerätes

Version 1.20:

  • Sensordaten eines SSL-Zertifikatssensor verursachten Fehler

Version 1.10:

  • SSL Checks sind desaktivierbar
  • Sensorwerte mit Laufzeit Tage verursachten Fehler

Version 1.0:

  • Erstes offizielles Release

4. Spenden

Die Library ist für die nicht kommerzielle Nutzung kostenlos, Schenkungen als Unterstützung für den Autor werden hier akzeptiert:

6. Lizenz

IPS-Modul:
CC BY-NC-SA 4.0

PRTG I/O

I/O zur Kommunikation mit PRTG
Dokumentation

Inhaltsverzeichnis

[ol]
[li]Funktionsumfang [/li][li]Voraussetzungen [/li][li]Software-Installation [/li][li]Einrichten der Instanzen in IP-Symcon [/li][li]Statusvariablen und Profile [/li][li]WebFront [/li][li]PHP-Befehlsreferenz [/li][li]Anhang[/li][LIST=1]
[li]Events von PRTG empfangen [/li][li]IPS in PRTG überwachen [/li][li]Changelog [/li][/ol]

[li]Lizenz [/li][/LIST]
1. Funktionsumfang

[ul]
[li]Schnittstelle zwischen den Device und Sensor Instanzen und PRTG. [/li][li]Empfangen von Events aus PRTG. [/li][li]Bereitstellen von IPS Systeminformation für einen PRTG-Sensor. [/li][li]Abfragen von Graphen aus PRTG. [/li][/ul]
2. Voraussetzungen

[ul]
[li]IPS 5.0 oder höher [/li][li]PRTG [/li][/ul]
3. Software-Installation

Dieses Modul ist Bestandteil der IPSPRTG-Library.
IPS 5.0:
Bei privater Nutzung: Über das ‚Module-Control‘ in IPS folgende URL hinzufügen.

git://github.com/Nall-chan/IPSPRTG.git

Bei kommerzieller Nutzung (z.B. als Errichter oder Integrator) wenden Sie sich bitte an den Autor.
4. Einrichten der Instanzen in IP-Symcon

Diese Instanz wird automatisch erzeugt sobald z.B. der PRTG Konfigurator: erstellt wird.
Alternativ ist das Modul im Dialog ‚Instanz hinzufügen‘ unter dem Hersteller ‚PRTG‘ zufinden.

Folgende Parameter sind in der Instanz zu konfigurieren:
Dabei sollte der Benutzer in PRTG Administrative Rechte bekommen, um die Überwachung zu steuern und Alarme quittieren zu können.


Konfigurationsseite:

|
|
|Open|bool|false|I/O öffnen oder schließen|
|Host|string||URL zum PRTG Webfront z.B. http://prtg:8081|
|Username|string||Benutzername in PRTG|
|Password|string||Passwort für den Benutzer|

5. Statusvariablen und Profile

Der I/O legt keine Statusvariablen und Profile an.
6. WebFront

Entfällt.
7. PHP-Befehlsreferenz

bool PRTG_GetGraph(integer $InstanzID, integer $Type, integer $SensorId, integer $GraphId, integer $Width, integer $Height, integer $Theme, integer $BaseFontSize, bool $ShowLegend)

Liefert ein PNG oder SVG Bild eines Graphen als String.
Im Fehlerfall wird eine Warnung erzeugt und false zurück gegeben.
Folgende Parameter stehen zur Verfügung:

[ul]
[li]$Type 1=PNG, 2=SVG [/li][li]$SensorId Objekt-ID des Sensors [/li][li]$GraphId Zeitbereich des Graphen: 0=live, 1=last 48 hours, 2=30 days, 3=365 days [/li][li]$Width Höhe des Graphen in Pixel. [/li][li]$Height Höhe des Graphen in Pixel. [/li][li]$Theme Darstellungstheme (0,1,2,3) [/li][li]$BaseFontSize Schriftgröße, 10 ist Standard. [/li][li]$ShowLegend true für Legende Anzeigen, fals zum verbergen. [/li][/ul]
8. Anhang

1. Events von PRTG empfangen

PRTG kann bei Statusänderungen eines Sensors eine Benachrichtigung an IPS senden, damit IPS den Zustand zeitnah darstellen kann und nicht um das Abfrageintervall verzögert in IPS dargestellt wird.

Hierzu zum zuerst in PRTG eine neue Benachrichtigung angelegt werden, mit folgenden Parametern:
Name: beliebig z.B. IPS Status: gestartet
Verschieben: Nachrichten während Pausenzustand verwerfen
Methode: Immer sofort benachrichtigen, nie zusammenfassen.
HTTP-Aktion ausführen: URL von IPS nach folgendem Schema eintragen:

http://<ips-ip>:<ips-port>/hook/PRTG<InstanzID>

z.B.

http://192.168.123.123:3777/hook/PRTG12345

Post-Daten:

%deviceid
%sensorid


Anschließend müssen noch Trigger definiert werden, welche diese Benachrichtigung auslösen.
PRTG vererbt Konfigurationen vom obersten Element nach unten. Somit können einzelne Objekte diese Benachrichtigung auslösen, oder auch alle.
Soll die Benachrichtung für alle Sensoren erfolgen, so ist werden die Trigger im Objekt 0 (oberstes Element im Gerätebaum von PRTG) unter Benachrichtigungen angelegt.
Hier sind vier Trigger anzulegen für die Zustände ‚Fehler‘, ‚Warnung‘, ‚Ungewöhnlich‘ und ‚Fehler (teilweise)‘.
Als Aktion wird immer die oben erzeugte Benachrichtigung ausgewählt. Auch wenn die Bedingung nicht mehr zutrifft.
Wird in IPS eine Benachrichtigung empfange, so wird dies im Reiter Debug mit ‚PRTG EVENT‘ ausgegeben.

2. IPS in PRTG überwachen

Die Instant stellt einen HTTP-Sensor für PRTG bereit welcher wie folgt in PRTG eingebunden werden kann:

[ul]
[li]Unterhalb des gewünschten Gerätes einen neuen Sensor hinzufügen. [/li][li]Im Suchfeld ‚HTTP Daten‘ eingeben und den Sensor ‚HTTP Daten (Erweitert)‘ auswählen. [/li][li]Als URL wird wieder der Webhook eingetragen:[/li]

http://<ips-ip>:<ips-port>/hook/PRTG<InstanzID>

z.B.

http://192.168.123.123:3777/hook/PRTG12345

[li]Anfragemethode bleibt auf GET [/li][/ul]
Nach dem erzeugen und speichern der Sensoreinstellungen dauert es einen Augenblick bis PRTG die ersten Werte darstellt.



3. Changelog

Version 1.0:

[ul]
[li]Erstes offizielles Release [/li][/ul]
9. Lizenz

IPS-Modul:
CC BY-NC-SA 4.0

PRTG Konfigurator Vereinfacht das Anlegen von verschiedenen PRTG-Instanzen in IPS.
Dokumentation Inhaltsverzeichnis

[ol]
[li]Funktionsumfang[/li][li]Voraussetzungen[/li][li]Software-Installation[/li][li]Einrichten der Instanzen in IP-Symcon[/li][li]Statusvariablen und Profile[/li][li]WebFront[/li][li]PHP-Befehlsreferenz[/li][li]Anhang[/li][li]Lizenz[/li][/ol]
1. Funktionsumfang

[ul]
[li]Auslesen und darstellen aller in PRTG und IPS bekannten Geräte und Sensoren.[/li][li]Einfaches Anlegen von neuen Instanzen in IPS.[/li][/ul]
2. Voraussetzungen

[ul]
[li]IPS 5.0 oder höher[/li][li]PRTG[/li][/ul]
3. Software-Installation Dieses Modul ist Bestandteil der IPSPRTG-Library.
IPS 5.0:
Bei privater Nutzung: Über das ‚Module-Control‘ in IPS folgende URL hinzufügen.

git://github.com/Nall-chan/IPSPRTG.git


Bei kommerzieller Nutzung (z.B. als Errichter oder Integrator) wenden Sie sich bitte an den Autor.
4. Einrichten der Instanzen in IP-Symcon Das Modul ist im Dialog ‚Instanz hinzufügen‘ unter dem Hersteller ‚PRTG‘ zufinden.

Es wird automatisch ein PRTGIO Instanz erzeugt, wenn noch keine vorhanden ist.
Erscheint im dem sich öffnenden Konfigurationsformular der Hinweis ‚Eine übergeordnete Instanz ist inaktiv‘, so ist zuerst der IO zu konfigurieren.

Dieser kann über die Schaltfläche ‚Gateway konfigurieren‘ erreicht werden.
Details zur Konfiguration des IO sind der Dokumentation des IO zu entnehmen.
Ist der IO korrekt verbunden, wird beim öffnen des Konfigurator oder nach dem betätigen der Schaltfläche ‚Update‘, folgendender Dialog angezeigt.
Über das selektieren eines Eintrages in der Tabelle und betätigen des dazugehörigen ‚Erstellen‘ Button, können einzelne Instanzen in IPS angelegt werden.
Alternativ können auch alle fehlenden Instanzen auf einmal erstellt werden.

5. Statusvariablen und Profile Der Konfigurator besitzt keine Statusvariablen und Variablenprofile.
6. WebFront Der Konfigurator besitzt keine im WebFront darstellbaren Elemente.
7. PHP-Befehlsreferenz Der Konfigurator besitzt keine Instanz-Funktionen.
8. Anhang Changlog:
Version 1.0:

[ul]
[li]Erstes offizielles Release[/li][/ul]
9. Lizenz IPS-Modul:
CC BY-NC-SA 4.0

PRTG Device Einbindung eines PRTG-Gerätes in IPS.
Dokumentation Inhaltsverzeichnis

[ol]
[li]Funktionsumfang[/li][li]Voraussetzungen[/li][li]Software-Installation[/li][li]Einrichten der Instanzen in IP-Symcon[/li][li]Statusvariablen und Profile[/li][li]WebFront[/li][li]PHP-Befehlsreferenz[/li][li]Anhang[/li][li]Lizenz[/li][/ol]
1. Funktionsumfang

[ul]
[li]Empfangen und darstellen des aktuellen Zustände in IPS.[/li][li]Pausieren und Fortsetzen der Überwachung aus IPS über WebFront und PHP-Scripten.[/li][/ul]
2. Voraussetzungen

[ul]
[li]IPS 5.0 oder höher[/li][li]PRTG[/li][/ul]
3. Software-Installation Dieses Modul ist Bestandteil der IPSPRTG-Library.
IPS 5.0:
Bei privater Nutzung: Über das ‚Module-Control‘ in IPS folgende URL hinzufügen.
git://github.com/Nall-chan/IPSPRTG.git
Bei kommerzieller Nutzung (z.B. als Errichter oder Integrator) wenden Sie sich bitte an den Autor.
4. Einrichten der Instanzen in IP-Symcon Das Anlegen von neuen Instanzen kann komfortabel über den PRTG Konfigurator: erfolgen.
Alternativ ist das Modul im Dialog ‚Instanz hinzufügen‘ unter dem Hersteller ‚PRTG‘ zufinden.

Es wird automatisch ein PRTGIO Instanz erzeugt, wenn noch keine vorhanden ist.
Erscheint im dem sich öffnenden Konfigurationsformular der Hinweis ‚Eine übergeordnete Instanz ist inaktiv‘, so ist zuerst der IO zu konfigurieren.
Dieser kann über die Schaltfläche ‚Gateway konfigurieren‘ erreicht werden.
Details zur Konfiguration des IO sind der Dokumentation des IO zu entnehmen.
Folgende Parameter sind in der Instanz zu konfigurieren:


Konfigurationsseite:

|
|
|id|integer||PRTG ObjektID des Gerätes|
|AutoRename|bool|true|Instanz automatisch an den Namen in PRTG anpassen|
|ShowActionButton|bool|true|Aktionsbutton zum pausieren der Überwachung|
|ReadableState|bool|true|Status als Klartext in String-Variable|
|DisplaySensorState|bool|true|Statusvariablen für Zustände des Sensoren|
|DisplayTotalSensors|bool|true|Statusvariablen mit Anzahl aller Sensoren|
|Interval|integer|60|Abfrageintervall in Sekunden|

5. Statusvariablen und Profile Folgende Statusvariablen werden automatisch angelegt.
|
|
|Status|integer|State|Status des Gerätes|
|Status Klartext|string|ReadableState|Status des Gerätes als String wie er von PRTG übertragen wird|
|Steuerung|integer|ActionButton|Pause / Resume Button zum Steuern der Überwachung|
|Sensoren Anzahl|integer|TotalSens|Anzahl aller Sensoren des Gerätes|
|Sensoren OK|integer|UpSens|Anzahl der Sensoren im Zustand OK|
|Sensoren Warnung|integer|WarnSens|Anzahl der Sensoren im Zustand Warnung|
|Sensoren Ungewöhnlich|integer|UnusualSens|Anzahl der Sensoren im Zustand Ungewöhnliche Daten|
|Sensoren Unbekannt|integer|UndefinedSens|Anzahl der Sensoren im Zustand Unbekannt|
|Sensoren Teilweise Fehlerhaft|integer|PartialDownSens|Anzahl der Sensoren im Zustand Teilweise Fehlerhaft|
|Sensoren Fehlerhaft|integer|DownSens|Anzahl der Sensoren im Zustand Fehlerhaft|
|Sensoren Fehlerhaft (bestätigt)|integer|DownAckSens|Anzahl der Sensoren im Zustand Fehlerhaft (bestätigt)|
|Sensoren Pausiert|integer|PausedSens|Anzahl der Sensoren im Zustand Pausiert|


Profile
:

|
|
|PRTG.Sensor|integer|State|
|PRTG.Action|integer|ActionButton|

6. WebFront Die direkte Darstellung und Steuerung im WebFront ist möglich.

7. PHP-Befehlsreferenz

bool PRTG_RequestState(integer $InstanzID)

Liest den Zustand des Gerätes von PRTG.
Wurde der Befehl erfolgreich ausgeführt, wird true zurück gegeben.
Im Fehlerfall wird eine Warnung erzeugt und falsezurück gegeben.

bool PRTG_SetResume(integer $InstanzID)

Setzt die Überwachung des Gerätes in PRTG fort.
Wurde der Befehl erfolgreich ausgeführt, wird true zurück gegeben.
Im Fehlerfall wird eine Warnung erzeugt und falsezurück gegeben.

bool PRTG_SetPause(integer $InstanzID)

Pausiert die Überwachung des Gerätes in PRTG.
Wurde der Befehl erfolgreich ausgeführt, wird true zurück gegeben.
Im Fehlerfall wird eine Warnung erzeugt und falsezurück gegeben.

bool PRTG_SetPauseEx(integer $InstanzID, string $Message)

Pausiert die Überwachung des Gerätes in PRTG mit einer in ‚$Message‘ übergebenen Meldung.
Wurde der Befehl erfolgreich ausgeführt, wird true zurück gegeben.
Im Fehlerfall wird eine Warnung erzeugt und falsezurück gegeben.

bool PRTG_SetPauseDuration(integer $InstanzID, integer $Minutes)

Pausiert die Überwachung des Gerätes in PRTG für die in ‚$Minutes‘ angegebene Zeit in Minuten.
Wurde der Befehl erfolgreich ausgeführt, wird true zurück gegeben.
Im Fehlerfall wird eine Warnung erzeugt und falsezurück gegeben.

bool PRTG_SetPauseDurationEx(integer $InstanzID, integer $Minutes, string $Message)

Pausiert die Überwachung des Gerätes in PRTG mit einer in ‚$Message‘ übergebenen Meldung für die in ‚$Minutes‘ angegebene Zeit in Minuten.
Wurde der Befehl erfolgreich ausgeführt, wird true zurück gegeben.
Im Fehlerfall wird eine Warnung erzeugt und falsezurück gegeben.

8. Anhang Changlog:

Version 1.0:

[ul]
[li]Erstes offizielles Release[/li][/ul]
9. Lizenz IPS-Modul:
CC BY-NC-SA 4.0

PRTG Device Einbindung eines PRTG-Sensors in IPS.
Dokumentation Inhaltsverzeichnis

[ol]
[li]Funktionsumfang[/li][li]Voraussetzungen[/li][li]Software-Installation[/li][li]Einrichten der Instanzen in IP-Symcon[/li][li]Statusvariablen und Profile[/li][li]WebFront[/li][li]PHP-Befehlsreferenz[/li][li]Anhang[/li][li]Lizenz[/li][/ol]
1. Funktionsumfang

[ul]
[li]Empfangen und darstellen des aktuellen Zustand in IPS.[/li][li]Pausieren und Fortsetzen der Überwachung aus IPS über WebFront und PHP-Scripten.[/li][li]Quittieren von Alarmmeldungen aus IPS über WebFront und PHP-Scripten.[/li][/ul]
2. Voraussetzungen

[ul]
[li]IPS 5.0 oder höher[/li][li]PRTG[/li][/ul]
3. Software-Installation Dieses Modul ist Bestandteil der IPSPRTG-Library.
IPS 5.0:
Bei privater Nutzung: Über das ‚Module-Control‘ in IPS folgende URL hinzufügen.

git://github.com/Nall-chan/IPSPRTG.git


Bei kommerzieller Nutzung (z.B. als Errichter oder Integrator) wenden Sie sich bitte an den Autor.
4. Einrichten der Instanzen in IP-Symcon Das Anlegen von neuen Instanzen kann komfortabel über den PRTG Konfigurator: erfolgen.
Alternativ ist das Modul im Dialog ‚Instanz hinzufügen‘ unter dem Hersteller ‚PRTG‘ zufinden.

Es wird automatisch ein PRTGIO Instanz erzeugt, wenn noch keine vorhanden ist.
Erscheint im dem sich öffnenden Konfigurationsformular der Hinweis ‚Eine übergeordnete Instanz ist inaktiv‘, so ist zuerst der IO zu konfigurieren.
Dieser kann über die Schaltfläche ‚Gateway konfigurieren‘ erreicht werden.
Details zur Konfiguration des IO sind der Dokumentation des IO zu entnehmen.
Folgende Parameter sind in der Instanz zu konfigurieren:


Konfigurationsseite:

|
|
|id|integer||PRTG ObjektID des Sensor|
|AutoRename|bool|true|Instanz automatisch an den Namen in PRTG anpassen|
|ShowActionButton|bool|true|Aktionsbutton zum pausieren der Überwachung|
|ShowAckButton|bool|true|Aktionsbutton zum Quittieren des Alarm|
|ReadableState|bool|true|Status als Klartext in String-Variable|
|AutoRenameChannels|bool|true|Statusvariablen der Kanäle automatisch an den Namen in PRTG anpassen|
|UseInterval|bool|true|Abfrageintervall aus Interval benutzen, sonst PRTG-Intervall nutzen|
|Interval|integer|60|Abfrageintervall in Sekunden|

5. Statusvariablen und Profile Folgende Statusvariablen werden automatisch angelegt.
Zusätzlich werden dynamisch Statusvariablen für die einzelen Kanäle erstellt.
|
|
|Status|integer|State|Status des Sensor|
|Status Klartext|string|ReadableState|Status des Sensor als String wie er von PRTG übertragen wird|
|Steuerung|integer|ActionButton|Pause / Resume Button zum Steuern der Überwachung|
|Alarmsteuerung|integer|AckButton|Bestätigen Button zum Quittieren des Alarm|


Profile
:

|
|
|PRTG.Sensor|integer|State|
|PRTG.Action|integer|ActionButton|
|PRTG.Ack|integer|AckButton|
|PRTG.ms|float|Sensorvariablen|
|PRTG.Intensity|float|Sensorvariablen|
|PRTG.No|integer|Sensorvariablen|
|PRTG.MByte|float|Sensorvariablen|
|PRTG.Sec|integer|Sensorvariablen|
|PRTG.MBitSec|integer|Sensorvariablen|
|PRTG.kBitSec|integer|Sensorvariablen|
|PRTG.IpS|integer|Sensorvariablen|
|PRTG.IpM|integer|Sensorvariablen|
|PRTG.Items|integer|Sensorvariablen|

6. WebFront Die direkte Darstellung und Steuerung im WebFront ist möglich.
Hier ein Beispiel eines HTTP Sensors für IPS.

7. PHP-Befehlsreferenz

bool PRTG_RequestState(integer $InstanzID)

Liest den Zustand des Gerätes von PRTG.
Wurde der Befehl erfolgreich ausgeführt, wird true zurück gegeben.
Im Fehlerfall wird eine Warnung erzeugt und falsezurück gegeben.

bool PRTG_SetResume(integer $InstanzID)

Setzt die Überwachung des Gerätes in PRTG fort.
Wurde der Befehl erfolgreich ausgeführt, wird true zurück gegeben.
Im Fehlerfall wird eine Warnung erzeugt und falsezurück gegeben.

bool PRTG_SetPause(integer $InstanzID)

Pausiert die Überwachung des Gerätes in PRTG.
Wurde der Befehl erfolgreich ausgeführt, wird true zurück gegeben.
Im Fehlerfall wird eine Warnung erzeugt und falsezurück gegeben.

bool PRTG_SetPauseEx(integer $InstanzID, string $Message)

Pausiert die Überwachung des Gerätes in PRTG mit einer in ‚$Message‘ übergebenen Meldung.
Wurde der Befehl erfolgreich ausgeführt, wird true zurück gegeben.
Im Fehlerfall wird eine Warnung erzeugt und falsezurück gegeben.

bool PRTG_SetPauseDuration(integer $InstanzID, integer $Minutes)

Pausiert die Überwachung des Gerätes in PRTG für die in ‚$Minutes‘ angegebene Zeit in Minuten.
Wurde der Befehl erfolgreich ausgeführt, wird true zurück gegeben.
Im Fehlerfall wird eine Warnung erzeugt und falsezurück gegeben.

bool PRTG_SetPauseDurationEx(integer $InstanzID, integer $Minutes, string $Message)

Pausiert die Überwachung des Gerätes in PRTG mit einer in ‚$Message‘ übergebenen Meldung für die in ‚$Minutes‘ angegebene Zeit in Minuten.
Wurde der Befehl erfolgreich ausgeführt, wird true zurück gegeben.
Im Fehlerfall wird eine Warnung erzeugt und falsezurück gegeben.

bool PRTG_AcknowledgeAlarm(integer $InstanzID)

Bestätigt den Alarm des Sensor in PRTG.

Wurde der Befehl erfolgreich ausgeführt, wird true zurück gegeben.
Im Fehlerfall wird eine Warnung erzeugt und falsezurück gegeben.

bool PRTG_AcknowledgeAlarmEx(integer $InstanzID, string $Message)

Bestätigt den Alarm des Sensor in PRTG mit einer in ‚$Message‘ übergebenen Meldung.
Wurde der Befehl erfolgreich ausgeführt, wird true zurück gegeben.
Im Fehlerfall wird eine Warnung erzeugt und falsezurück gegeben.

8. Anhang Changlog:

Version 1.0:

[ul]
[li]Erstes offizielles Release[/li][/ul]
9. Lizenz IPS-Modul:
CC BY-NC-SA 4.0

Hinweis zu den Profilen

Sollten Profile bei den Sensoren fehlen, so bitte eine kurze Info mit Auszug aus dem Reiter Debug wo man die gelieferten Daten des Sensors erkennen kann.
Ich kann diese Profile dann ergänzen.
Michael

Hallo
Danke fuer das Super Modul. Hab bis jetzt PRTG ueber Syslog in IPS.
Die ersten Test laufen einwandfrei. Hab einen Sensor und ein Device einzeln
erstellt.

Hier meine Problem bisher:
Konnte keine Verbindung zum PRTG-Server aufbauen weil ich ueber HTTPS ging.
Hab dann umgestellt auf HTTP , damit ist OK.
Im Konfigurator funktioniert das einzelne Erstellen aber „Alle Erstellen“ funktioniert
bei mir nur mit Fehler.

Error: Error: Uncaught TypeError: Argument 1 passed to PRTGSensor::ConvertRuntime() must be of the type integer, float given, called in C:\Program Files (x86)\IP-SYMCON\modules\IPSPRTG\libs\VariableHelper.php on line 66 and defined in C:\Program Files (x86)\IP-SYMCON\modules\IPSPRTG\libs\VariableHelper.php:6

Einfach zu viele Sensoren. Knapp 100 ?
Und alle werden direkt im Tree angelegt. Das krieg ich nie sortiert :wink:
Sollten man die Sensoren unter die Devices erstellen ?

Bitte :slight_smile:

Https setzt ein gültiges Zertifikat vorraus und somit auch den Host-Namen aus dem Zertifikat.
Eventuell werden selbst-signierte per default abgelehnt. Dies kann ich aber noch ergänzen bzw. als Option mit in den IO einbauen.
Bei mir steht im Zertifikat nur der Name, darum funktioniert z.B. https://<ip> nicht, aber https://<hostname>

An zu viel wird es nicht liegen, eher weil ein Sensor einen komischen Wert als Typ ‚Laufzeit‘ liefert.
Den Fehler hatte ich einmal gesehen, aber nie nachstellen können.
Wenn du den betreffenden Sensor gefunden hast, hätte ich gerne einen Auszug vom Debug der Instanz :slight_smile:

Geht nicht. Der Konfigurator ist IPS intern und erstellt immer alles im root (wie alle IPS Konfiguratoren).
Aber anhand der Info-Spalte solltest du es zuordnen können.
Dort steht bei einem Sensor das dazugehörige Device.
Bei einem Device die Gruppe in welcher das Device in PRTG einsortiert wurde.

Edit:
Ich habe bei ConvertRuntime erstmal den Typ rausgenommen. Damit sollte der Fehler weg sein.
Aber ob die Werte stimmen, kann ich nicht prüfen von unterwegs.
Eigentlich sollen Werte in Tagen als ganzzahlige Sekunden übertragen werden :smiley:
Michael

Das krieg ich mit einem Script hin .
Den Boeswicht mit Runtime krieg ich heute abend bestimmt raus.

Gesendet von iPad mit Tapatalk

Dann aber kein Update machen :slight_smile:
Sonst tritt der Fehler nicht mehr auf.

Michael

So hab jetzt muehselig von unterwegs mit dem iPad den Boesewicht gefunden.
Die Variable ins Log geschrieben und den ganzen $Valuewert.
Es kommt ein 3,63071e+06 in der Variablen an ( lastvalue_raw ).
Hier das Log :

 22.05.2018 16:15:29 | 00000 | CUSTOM  | VariableHelper.php   | 3,63071e+06
22.05.2018 16:15:29 | 00000 | CUSTOM  | PHP                  | Error: Error: Uncaught TypeError: Argument 1 passed to PRTGSensor::ConvertRuntime() must be of the type integer, float given, called in C:\Program Files (x86)\IP-SYMCON\modules\IPSPRTG\libs\VariableHelper.php on line 68 and defined in C:\Program Files (x86)\IP-SYMCON\modules\IPSPRTG\libs\VariableHelper.php:6
Stack trace:
#0 C:\Program Files (x86)\IP-SYMCON\modules\IPSPRTG\libs\VariableHelper.php(68): PRTGSensor->ConvertRuntime(3630712)
#1 C:\Program Files (x86)\IP-SYMCON\modules\IPSPRTG\PRTGSensor\module.php(250): PRTGSensor->ConvertValue(Array)
#2 C:\Program Files (x86)\IP-SYMCON\modules\IPSPRTG\PRTGSensor\module.php(230): PRTGSensor->DecodeChannelData(Array)
#3 C:\Program Files (x86)\IP-SYMCON\modules\IPSPRTG\PRTGSensor\module.php(168): PRTGSensor->RequestChannelState()
#4 C:\Program Files (x86)\IP-SYMCON\scripts\__generated.inc.php(551): PRTGSensor->RequestState()
#5 C:\Windows\System32\-(1): PRTG_RequestState(46363)
#6 {main}
  thrown
   Error in Script C:\Program Files (x86)\IP-SYMCON\modules\IPSPRTG\libs\VariableHelper.php on Line 6
  134 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   33 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
  121 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_PhpErrorHandler)
      in IPSLogger_PhpFatalErrorHandler
22.05.2018 16:15:29 | 46363 | ERROR   | TimerPool            | Serverzustand (RequestState): array(5) {
  ["objid"]=>
  int(10)
  ["objid_raw"]=>
  int(10)
  ["lastvalue"]=>
  string(6) "42 Tg."
  ["lastvalue_raw"]=>
  float(3630712)
  ["name"]=>
  string(17) "Alter der Version"
}

Gesendet von iPad mit Tapatalk

Komisch das es ein Float ist.
Steht der Wert auch im Debug der Instanz?
Serverzustand des Server habe ich auch, prüfe ich bei mir mal gegen :slight_smile:
Michael

Im Debug der Instanz steht der Wert 3634072 etc …

Gesendet von iPad mit Tapatalk

Hab einfach mal ein intval() in das Modul eingebaut und
Jetzt ist Ruhe im Meldungsfenster und in der Instanz steht
Auch der richtige Wert fuer „Alter der Version“.

Gesendet von iPad mit Tapatalk

Oh man… wie blöd von mir :banghead:

Ich hatte letzten noch einen Fehler, das gelegentliche Float Werte als integer erkannt wurden.
Immer wenn sie zufällig keine Nachkommastellen enthalten haben, trat dabei ein Fehler auf.
Daraufhin hatte ich float als default genommen und dann überall, außer natürlich bei der ConverTime-Methode, in den richtigen Typ konvertiert. :banghead:

Fix für SSL habe ich auch fertig. Übersetzung fehlt noch und dann ist das ca in einer Stunde online :slight_smile:

Michael

Danke. Immer gerne die Zusammenarbeit um Fehler zu finden.

Gesendet von iPad mit Tapatalk

Hallo
Hab noch einen Boesewicht gefunden.
Hab einen Sensor (SSL-Zertifikatssensor (Port 443) ) . Der liefert einen Integerwert
anstatt eines Strings. Tage bis Ablauf Zertifikat .
Dadurch gibt es in VariableHelper.php einen Fehler Zeile 32

        if (strpos($Value['lastvalue'], ' ') === false) {

.
Hab davor mal folgendes eingefuegt.

$Value['lastvalue'] = (string)$Value['lastvalue'];

MfG

Danke für den Fund.
Den Sensor hatte ich noch gar nicht eingerichtet :smiley:
Toll dass hier jetzt die Einheit Tage (Tg.) in dem Datensatz fehlt :banghead:
Ich hatte mich früher in meinen Scripten schon immer mit den konvertieren der Werte und erkennen der Profile ausgetobt und gedacht ich habe es jetzt ‚einigermaßen‘ elegant gelöst. Da haut ein neuer Sensor keine Einheit raus, und es paßt schon wieder nicht. Tolle API :frowning:
Zumal dieser Sensor bei Ja/Nein Werten immer lastvalue_raw 0 ausgibt. :rolleyes:

Ich stelle gleich ein Update online.

Michael

Tolles Modul. Vielen Dank dafür!

Grüße
galleto

Das überfordert mich leider. Die $InstanzID ist wohl eine aus IPS, vermutlich die des Devices? Die $SensorId ist dann welche? Hab bissl probiert (PRTG und IPS), aber laufe immer in eine Fehlermeldung.

Am besten wäre ein kleines Beispiel. :smiley:

Dank und grüße
galleto