NEWS
[gelöst] - Zabbix (FritzBox etc.)
-
Der Vollständigkeit halber hier nun das komplette Script in Zabbix, um die Anzahl der Portweiterleitungen zu ermitteln:
const params = JSON.parse(value); var requestBody = '<?xml version="1.0" encoding="utf-8"?>' + '<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">' + ' <s:Header>' + ' <h:InitChallenge xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">' + ' <UserID>' + params.username + '</UserID>' + ' </h:InitChallenge>' + ' </s:Header>' + ' <s:Body>' + ' <u:' + params.action + ' xmlns:u="' + params.urn + '" />' + ' </s:Body>' + '</s:Envelope>'; const action = params.urn + '#' + params.action; // Initialize challenge with Fritz!Box var url = 'http://' + params.ip + ':49000' + params.url; const request = new HttpRequest(); request.addHeader('Content-Type: text/xml; charset="utf-8"'); request.addHeader('User-Agent: AVM UPnP/1.0 Client 1.0'); request.addHeader('SoapAction: ' + action); var response = request.post(url, requestBody); var statusCode = request.getStatus(); if (statusCode != 200) { throw 'Error ' + statusCode + ' initializing authentication!'; } else { // Calculate authentication const nonce = XML.query(response, '//Nonce/text()'); const realm = XML.query(response, '//Realm/text()'); const secret = md5(params.username + ':' + realm + ':' + params.password); const auth = md5(secret + ':' + nonce); // Get values with authentication requestBody = '<?xml version="1.0" encoding="utf-8"?>' + '<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">' + ' <s:Header>' + ' <h:ClientAuth xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">' + ' <Nonce>' + nonce + '</Nonce>' + ' <Auth>' + auth + '</Auth>' + ' <UserID>' + params.username + '</UserID>' + ' <Realm>' + realm + '</Realm>' + ' </h:ClientAuth>' + ' </s:Header>' + ' <s:Body>' + ' <u:' + params.action + ' xmlns:u="' + params.urn + '" />' + ' </s:Body>' + '</s:Envelope>'; response = request.post(url, requestBody); var statusCode = request.getStatus(); if (statusCode != 200) { throw 'Error ' + statusCode + ' sending authenticated request!'; } else { return(XML.query(response, 'number(//NewForwardNumberOfEntries/text())')); } }Die Parameter "ip", "username" und "password" sollten klar sein.
Was zusätzlich noch benötigt wird:
"action" = "GetForwardNumberOfEntries"
"url" = "/upnp/control/layer3forwarding"
"urn" = "urn:dslforum-org:service:Layer3Forwarding:1"Jetzt werde ich nach und nach die Doku von AVM durchgehen, und sehen was da sinnvoll nutzbar ist.
Das Ganze werde ich dann als Template für Zabbix veröffentlichen.
Wie gesagt: Wer Vorschläge hat, darf die gerne äußern.Aktueller Zwischenstand:

-
-
@codierknecht argh, Version 6.4. Da müsste ich noch eben warten bis 7.0 raus ist ... ich setze in dem Bereich nur die LTS-Versionen ein.
-
@bananajoe sagte in [gelöst] - Zabbix (FritzBox etc.):
Version 6.4
Lässt sich das unter 6.0 importieren, wenn man einfach im XML die Versionsnummer runterdreht?
Oder hat sich zu 6.4 das Format maßgebend geändert? -
@codierknecht Kollege testet gerade
Könnte reichen, ansonsten sagt er einem was ihn stört -
Wenn man einmal weiß wie es geht ... wer einen Hammer hat, sieht eine Welt voller Nägel

Mittlerweile sind's > 80 Items

Obwohl so eine Fritte eigentlich recht "unkommunikativ" ist. Kein SNMP, kein Telnet, kein SSH. -
@bananajoe sagte in [gelöst] - Zabbix (FritzBox etc.):
Da müsste ich noch eben warten bis 7.0 raus ist
Just for info:
7.0 LTS ist draußen ...
-
Was ist neu in Zabbix 7.0?
https://www.youtube.com/watch?v=60Zy3bw-wOs -
die honeycomb find ich cool
-
Vielen Dank für das Template funktioniert 1a. Nur eins was mir dabei aufgefallen ist. Hat man den PushService aktiviert bekommt man alle x-Sekunden eine Nachricht. Ich verwende upnp schon mit fritzinfluxdb (https://github.com/bb-Ricardo/fritzinfluxdb) auf die gleiche Weise nur da bekommt man nur 1x ne Mail bei der Erstanmeldung/Neustart. Sicherlich der Unterschied in der Programmiersprache

Soll nur als Hinweis dienen und vielen Dank für deine Mühe.

-
@schittl sagte in [gelöst] - Zabbix (FritzBox etc.):
bekommt man alle x-Sekunden eine Nachricht
Das dürfte an Deiner Einstellung "Bei Anmeldungen von Apps ..." liegen.
Es wird ja - je nach eingestelltem Intervall der Items - immer wieder eine Anmeldung an der Fritte durchgeführt.
