SNMP Modul

Hallo zusammen,

super geniales Modul. Vielen Dank dafür.
Die Zusammenarbeit mit dem Konverter von mib in oidlibs funktioniert gut, so dass man sich auch Teile des Baumes anzeigen kann.

Aber:

Eine kleine Korrektur müsst Ihr meines Erachtens noch machen:
Das Häkchensetzen erstellt sofort eine Variable und das häkchen entfernen löscht sie sofort.
Das widerspricht Euren eigenen Modulrules und - ganz wichtig - es führt zu Datenverlust wenn man mal eine Variable achiviert und dann versehentlich auf das Häkchen kommt.
Weiterhin hat man ein Problem wenn die Variable verknüpft oder anderweitig verwendet wird, dann ist alles pfutsch.

Vielleicht könnte man irgendwo ein Häkchen setzen, dass Variablen nicht gelöscht werden. Es würde ja reichen ein Präfix („to_delete“) vor den Varnamen zu setzen, gelöscht ist es dann manuell ganz schnell.

Beste Grüße
Tom

Nö, dazu wird hier nix geschrieben:

Aber vielleicht wäre eine Warnmeldung vorher ganz nett :sweat_smile:
Michael

Wir können ja mal schauen, ob da eine Warnmeldung oder Bestätigung einbaubar ist.

paresy

Ok ihr habt recht, ich hatte das mit dem Punkt „Eine Instanz sollte niemals automatisch Variablen im Archiv aktivieren“ falsch in Erinnerung.

Das ist zwar jetzt offtopic, aber Variablen, die man Archiviert oder die mit anderen Aktionen verknüpft sind, dürften auf keinen Fall gelöscht werden. Unter Umständen findet man einen verschwundenen Trigger erst nach Wochen, weil man sich wundert, dass gar keine Meldungen mehr kommen.

Die Idee mit der Warnmeldung finde ich sehr gut, wenn sie abbrechbar ist und nur erscheint, wenn die Variable archiviert oder referenziert ist.

Grüße Tom

Hallo zusammen,
ich habe noch eine Frage zum Modul: ich habe bei manchen Geräten einen Abbruch des Walkes mit einer Fehlermeldung:

A non-numeric value encountered in /var/lib/symcon/modules/.store/de.symcon.snmp/libs/vendor/freedsx/asn1/src/FreeDSx/Asn1/Encoder/BerEncoder.php on line 550

Warning: A non-numeric value encountered in /var/lib/symcon/modules/.store/de.symcon.snmp/libs/vendor/freedsx/asn1/src/FreeDSx/Asn1/Encoder/BerEncoder.php on line 559

Warning: A non-numeric value encountered in /var/lib/symcon/modules/.store/de.symcon.snmp/libs/vendor/freedsx/asn1/src/FreeDSx/Asn1/Encoder/BerEncoder.php on line 560
The requested OID (1.3.6.1.4.1.5040.1.1.1.3.4.1.12.1) cannot be returned (NoSuchName).

Nach dieser Meldung bricht der Walk komplett ab und die Liste ist leer, obwohl schon 80 OID’s gefunden wurden. Könnte man einen solchen Wert einfach überspringen? So kommt man an gar keine Werte heran.

Viele Grüße
Tom

Da ich davon ausgehe, dass Acer90 sein Modul mittelfristig nicht weiter pflegen wird oder es sogar schon aus dem Store verschwunden ist:
Besteht die Möglichkeit, auch mittels des offiziellen Moduls nur Nutzer, Passwort, Host zu speichern und weiterhin über Scripte die Abfragen zu triggern?

Ich habe jetzt ganz viel rumprobiert, komme aber leider zu keinem Ergebnis. Ich versuche auf eine USV-Management Karte zuzugreifen. Mit dem Tool Paessler SNMP Tester 5.2.1 habe ich Zugriff auf die Karte, kann die aus der MIB generierte OIDLIB scannen und auf alle SNMP Adressen zugreifen. Dort funktioniert auch der Walk.
Mit dem Symcon Modul bekomme ich aber nach unterschiedlicher „Laufzeit“ und hin und wieder auch Hochzählen von 100…200 immer nur die Meldung „No message received from host.“
Es werden keine OIDs angezeigt. Die OIDlib habe ich problemlos laden können, hat aber auch nichts geholfen. Ich habe alle Versionen V1/V2/V3 probiert und unterschiedliche Start-OIDs, um ggf. den Walk einzugrenzen… leider ohne Erfolg.
Gibt es irgendwo Log-Dateien oder andere Hinweise, die weiterhelfen könnten?
Danke…

Gibt es zu den zuletzt gemeldeten „Problemen“ ggf. schon Lösungsansätze? Die Idee dieses Moduls ist klasse, es geht letztlich nur um die Walk Funktion, die scheinbar wenig fehlertolerant ist. Bei Abbruch bleiben halt gar keine Ergebnisse übrig, in diesem Fall kann das Modul gar nicht verwendet werden.
Ich habe mir aktuell über ein SNMP2MQTT Docker Image beholfen, da kann ich (wie im alten acer90?) Modul die OIDs von Hand eintragen. Allerdings nur lesend und nicht schreibend… was beim Überwachen meiner USV allerdings auch nicht ganz so tragisch ist.
Aber es wäre cool, wenn ich stattdessen das originäre Symcon-Modul ans Rennen bekäme…
Danke schon mal vorweg fürs Kümmern!

Eine kurze Ergänzung noch: Ich habe es jetzt mit einem ganz kleinen „Ast“ der OIDLIB geschafft 10 OIDs zu erhalten. Diese werden alle als Float angelegt, obwohl sie vom Typ unsigned in der OIDLIB hinterlegt sind und es sich eigentlich um Integer-Werte handelt - gibt es hier eine Möglichkeit das zu beeinflussen?

Moin Moin,

ich möchte mich etwas mehr mit snmp beschäftigen und habe mir dazu das Symcon SNMP Modul installiert und den SNMP Walk installiert. Nun komme ich nicht mehr weiter…

Es wird immer, egal was ich tue die folgende Fehlermeldung angezeigt.

Ich habe mit der Synology und dem Nun/Proxmox Server getestet. Die SNMP Server laufen, denn ich kann mit einem MIP_Brwoser die Daten auslesen., aber irgendwas passt da in IPS noch nicht.

Vielleicht hab Ihr ja noch einen Tipp…

Danke und Gruß Michael

Was hast du denn für eine OID Datei hochgeladen? Hast du die entsprechend mit dem Tool vorbereitet?

Für die Synology habe ich die Synology-MIB importiert. Aber für einen „Walk“ ist das doch egal oder nicht. Da soll er doch alles lesen. Ich weiß, das ist seehehr viel, aber für den Anfang…

Wie gesagt, bin ich noch ein SNPM-Frischling.

Gruß Michael

Du kannst keine MIB Importieren. Das Modul unterstützt nur ein Spezialformat, dass man selbst erstellen muss.

Dem Walk ist das auch nicht egal. Übrigens: Die OID Datei wird komplett in die Settings entfaltet. So hatte meine blötzlich statt ~900kb dann ca. 49MB.

ok… dann muss ich wohl noch ne Menge lesen und verstehen.

Danke Dir und Gruß Michael

Edit: Hat nun geklappt und es wurde ein kompletter „walk“ durchgeführt.

So, habe mir mal den Quellcode angesehen… ich habe erst einmal die Schrittweite für den bulkRead auf 10 statt 100 geändert, um genauer zu sehen, wann der Walk abbricht. Dann habe ich mit dem Paessler MIB Importer die letzte gültige OID gesucht und die in der SnmpClient.php hart rein „codiert“. Die Routine ist bereits auf eine Start- und Endadresse vorbereitet, allerdings gibt es derzeit (noch) kein Eingabefeld für die Endadresse. Ich hatte vorweg festgestellt, dass auch das Paessler SnmpView-Tool beim Walk über das Ziel hinaus schießt (also über die letzte gültige Adresse hinweg) und dann natürlich keine Antworten mehr kommen…
So hat es jetzt tatsächlich geklappt alle OIDs gelistet zu bekommen.

Ich habe jetzt im Konfigurationsdialog ein „Ende bei“ Eingabefeld mit eingefügt und den Code dahingehend geändert, dass die End-OID ausgewertet, also berücksichtigt wird. Ich habe allerdings keine Ahnung, wie ich diese Änderung irgendwie weitergeben kann, sodass sie ggf. in eine neue Version einfließt (ich habe die Änderungen halt direkt im Source des Moduls auf meiner Symbox vorgenommen) :man_shrugging:

Ich bin jetzt für meinen Teil zufrieden :sunglasses:
Über das zusätzliche Eingabefeld, kann ich den Walk auf eine Endadresse begrenzen und ich werte inzwischen auch das Feld „Units“ aus der eingelesenen OIDlib Datei mit aus, sodass ich bei der Anlage der Variablen entsprechend darauf reagieren kann und sowohl den Typ , als auch das Variabenprofil festlegen kann.
Screenshot Konfig-Seite mit Endadresse


Screenshot Walk-Ergebnisse mit zusätzlichem Feld „Units“

Screenshot Variablen, nach Auswertung der Units-Spalte aus der OIDlib

2 „Gefällt mir“

Cool! Magst du evtl dein Modul als zip hier hochladen? Dann könnten wir versuchen dies ins offizielle rein zu ziehen wenn es für dich ok ist?

paresy

1 „Gefällt mir“

Hi, klar, mache ich… aktuell bastele ich aber noch an einer Kleinigkeit, wenn das durch ist, lade ich die Dateien als ZIP hoch.
VG Mirko

1 „Gefällt mir“

Kannst du auch die von acers Modul bekannte SNMP_Walk($InstanceID, $startOID, $count); einbauen?