Modul Win SNMP

Also die % ergeben sich aus der Einstellung in der Liste, weil es ja sein Kann das der Port 1Gbit hat und weil ich davon ausgehe das sich sowas normalerweise nicht ändert.

Hi Acer90,

wollte mal dein Modul testen. Leider Funktioniert bei mir nichts :frowning:

habe im Netz die OIDs von der USV gefunden.

zb. .1.3.6.1.4.1.318.1.1.1.4.2.1

bei Devices eingetragen:

usv.PNG

Muss ich unten noch was machen?

In der Console kommt eine Fehlermeldung:

05.02.2018 07:49:31 | TimerPool | USV Unten (SyncData): <br />
<b>Warning</b>:  Unknown request type: getbulk in <b>C:\IP-Symcon\modules\SymconModule\SymconSmnp\lib\snmp.php</b> on line <b>330</b><br />

Gruß

Hallo
So auf die Schnelle druebergeschaut. Du bist sicher , dass die oid mit einem Punkt beginnt?

Gesendet von iPad mit Tapatalk

Welches Protokoll verwendest du?
Sieht nach SNMP Version 1 aus.

Bitte Probiere mal die Testfunktion wird da etwas ausgegeben?
Sollte die gehen, bau ich dass nochmal extra für Version1 um, denn in Version eins gibt es leider kein getBulk. :frowning:
Und schreib mir mal bitte den Hersteller (APC?) und das Modell, wenn das geht.

@1007
OID fangen normalerweise immer mit einen Punkt(.) an, in meinen Modul ist das aber egal, da dieser automatisch hinzugefügt wird, wenn er nicht vorhanden ist.

Swen

Huhu - habe ein Synology NAS DS413j.

:slight_smile:
nas2.jpg
:rolleyes:

Mit einem Script mache ich es so:


<?
// HDD Info 	>	1 = Normal (The disk is functioning normally)
// 			2 = Initialized (The disk has system partitions but no data)
// 			3 = NotInitialized (The disk is not partitioned)
// 			4 = SystemPartitionFailed (Partitions on the disk are damaged)
// 			5 = Crashed (The disk is damaged)
// Update Info >	1 = Available
// 			2 = Unavailable
// 			3 = Connecting
// 			4 = Disconnected
// 			5 = Others
// Raid Info >	1 = Normal (RAID is functioning normally) 
// 			2 = Repairing
// 			3 = Migrating
// 			4 = Expanding
// 			5 = Deleting
// 			6 = Creating
// 			7 = RaidSyncing
// 			8 = RaidParityChecking
// 			9 = RaidAssembling
// 			10 = Canceling
// 			11 = Degrade (Degrade is shown when a tolerable failure of disk(s) occurs)
// 			12 = Crashed (RAID has crashed and is now read-only)

// Daten per SNMP holen
$status_hdd1_temp = exec('snmpget -c public -v1 -O qv 192.168.178.5 .1.3.6.1.4.1.6574.2.1.1.6.0'); 
$status_hdd2_temp = exec('snmpget -c public -v1 -O qv 192.168.178.5 .1.3.6.1.4.1.6574.2.1.1.6.1'); 
$status_hdd3_temp = exec('snmpget -c public -v1 -O qv 192.168.178.5 .1.3.6.1.4.1.6574.2.1.1.6.2'); 
$status_hdd4_temp = exec('snmpget -c public -v1 -O qv 192.168.178.5 .1.3.6.1.4.1.6574.2.1.1.6.3'); 
$status_nas_temp = exec('snmpget -c public -v1 -O qv 192.168.178.5 .1.3.6.1.4.1.6574.1.2.0'); 
$status_hdd1_info = exec('snmpget -c public -v1 -O qv 192.168.178.5 .1.3.6.1.4.1.6574.2.1.1.5.0'); 
$status_hdd2_info = exec('snmpget -c public -v1 -O qv 192.168.178.5 .1.3.6.1.4.1.6574.2.1.1.5.1'); 
$status_hdd3_info = exec('snmpget -c public -v1 -O qv 192.168.178.5 .1.3.6.1.4.1.6574.2.1.1.5.2'); 
$status_hdd4_info = exec('snmpget -c public -v1 -O qv 192.168.178.5 .1.3.6.1.4.1.6574.2.1.1.5.3'); 
$status_laufzeit_info = exec('snmpget -c public -v1 -O v 192.168.178.5 .1.3.6.1.2.1.25.1.1.0'); 
$status_firmware_info = exec('snmpget -c public -v1 -O qv 192.168.178.5 .1.3.6.1.4.1.6574.1.5.3.0');
$status_model_info = exec('snmpget -c public -v1 -O qv 192.168.178.5 .1.3.6.1.4.1.6574.1.5.1.0');
$status_sernumber_info = exec('snmpget -c public -v1 -O qv 192.168.178.5 .1.3.6.1.4.1.6574.1.5.2.0');
$status_update_info = exec('snmpget -c public -v1 -O qv 192.168.178.5 .1.3.6.1.4.1.6574.1.5.4.0');
$status_raid_info = exec('snmpget -c public -v1 -O qv 192.168.178.5 .1.3.6.1.4.1.6574.3.1.1.3.0');
$HDUnit = exec('snmpget -c public -v1 -O qv 192.168.178.5 .1.3.6.1.2.1.25.2.3.1.4.41');
$HDTotal = exec('snmpget -c public -v1 -O qv 192.168.178.5 .1.3.6.1.2.1.25.2.3.1.5.41');
$HDUsed = exec('snmpget -c public -v1 -O qv 192.168.178.5 .1.3.6.1.2.1.25.2.3.1.6.41');

// Daten berechnen
$status_laufzeit_info_cut = substr($status_laufzeit_info, -20,35);
$HDFree = ((($HDTotal - $HDUsed) * $HDUnit / 1024 / 1024 / 1024 / 1000 / 100 * 97.65));
$HDTotal2 = $HDTotal * $HDUnit / 1024 / 1024 / 1024 / 1000 / 100 * 97.65 ;
$HDUsed2 = $HDUsed * $HDUnit / 1024 / 1024 / 1024 / 1000 / 100 * 97.65;

// Zeitstempel für letzten Refresh
$time = exec('sudo date');

// Daten Variablen schreiben
SetValueInteger(34393 /*[Infos Webfront\Synology NAS\Temperatur HDD1]*/, $status_hdd1_temp); 
SetValueInteger(55303 /*[Infos Webfront\Synology NAS\Temperatur HDD2]*/, $status_hdd2_temp);
SetValueInteger(18355 /*[Infos Webfront\Synology NAS\Temperatur HDD3]*/, $status_hdd3_temp);
SetValueInteger(28059 /*[Infos Webfront\Synology NAS\Temperatur HDD4]*/, $status_hdd4_temp);
SetValueInteger(38448 /*[Infos Webfront\Synology NAS\NAS Temperatur]*/, $status_nas_temp);
SetValueInteger(16639 /*[Infos Webfront\Synology NAS\Info HDD1]*/, $status_hdd1_info);
SetValueInteger(44269 /*[Infos Webfront\Synology NAS\Info HDD2]*/, $status_hdd2_info);
SetValueInteger(48617 /*[Infos Webfront\Synology NAS\Info HDD3]*/, $status_hdd3_info);
SetValueInteger(59728 /*[Infos Webfront\Synology NAS\Info HDD4]*/, $status_hdd4_info);
SetValueString(34409 /*[Infos Webfront\Synology NAS\NAS Laufzeit]*/, $status_laufzeit_info_cut);
SetValueString(27747 /*[Infos Webfront\Synology NAS\Letzter Refresh]*/, $time);
SetValueFloat(25695 /*[Infos Webfront\Synology NAS\NAS Speicher verfügbar]*/, $HDTotal2);
SetValueFloat(32104 /*[Infos Webfront\Synology NAS\NAS Speicher frei]*/, $HDFree);
SetValueFloat(42040 /*[Infos Webfront\Synology NAS\NAS Speicher benutzt]*/, $HDUsed2);
SetValueString(38368 /*[Infos Webfront\Synology NAS\NAS Firmware]*/, $status_firmware_info);
SetValueString(50609 /*[Infos Webfront\Synology NAS\NAS Model]*/, $status_model_info);
SetValueString(37271 /*[Infos Webfront\Synology NAS\NAS Seriennumer]*/, $status_sernumber_info);
SetValueInteger(31503 /*[Infos Webfront\Synology NAS\Info Firmware Update]*/, $status_update_info); 
SetValueInteger(38959 /*[Infos Webfront\Synology NAS\Info RAID]*/, $status_raid_info); 


//Testausgabe
//echo "$time
$data";
//echo "$status_laufzeit_info_cut
$status_hdd1_temp";  

?>

edit:
Den hier hab ich noch:
http://global.download.synology.com/download/Document/MIBGuide/Synology_DiskStation_MIB_Guide.pdf

Hi Swen,

ja das ist Version 1

wenn ich auf Test Klicke, bekomme ich diese Info:

Name: apcE88EAF

Gruß

Super dann bau ich das für dich noch um.
Das sollte kein Problem sein :smiley:

@qwik hatte ich vorher auch in etwa genau so.
Performance mäßig ist das aber nicht so Schön.

Brauche mit den neuen Skript für 189 Abfragen ca. 120ms.

Swen

@qwik hatte ich vorher auch in etwa genau so.
Performance mäßig ist das aber nicht so Schön.

Ich kann dir jetzt grade nicht folgen? Ist bei mir alles ok? Erstellt die Client Instanz keine Variablen mit meinen angelegten Devices?:confused:

Also dein Skript mach das ja über das aufrufen von

exec('snmpget -c public -v1 -O qv 192.168.178.5 .1.3.6.1.4.1.6574.2.1.1.6.0'); 

Was ja soweit richtig ist.
Die Sache mit der Laufzeit des Skriptes kommt von exec (exec — Führt ein externes Programm aus).
PHP: exec - Manual

Das aufrufen von externen Programmen dauert unter Windows deutlich längerer als wenn ich diese direkt über php ausführe. Weiter Vorteil ist es, dass es auch auf allen anderen Systemen läuft.

Swen

Hi,

in der Zwischenzeit habe ich Spaß halber mal den oberen Script Probiert.

$status_model_info = exec('snmpget -c public -v1 -O qv 192.168.68.53 .1.3.6.1.4.1.318.1.1.1.1.1.1.0');
SetValue(39518, $status_model_info);

Die Variable wird nicht befühlt :confused:
Es kommen auch keine Fehlermeldungen.

Mache ich etwas Falsch?

In der USV ist alles Eingestellt.

Gruß

Mache ich etwas Falsch?

Wenn du mein Script meinst, musst du noch was installieren zuerst:
https://www.symcon.de/forum/threads/28050-SNMP-Client-Ger%C3%A4te-Status-von-NAS-%28QNAP-Synology%29-oder-SNMP-Servern-allg-auslesen?p=314844#post314844

…ach du meinst mein Script! :smiley: …jetzt hab ich es! …deswegen dachte ich mir ja ich versuch es mal mit dem Modul. Musst du noch was einbauen im Bezug auf mich? Oder wie bekomme ich jetzt die Laufzeit mit deinem Modul in eine Variable? :rolleyes:

…ach du meinst mein Script! …jetzt hab ich es! …deswegen dachte ich mir ja ich versuch es mal mit dem Modul. Musst du noch was einbauen im Bezug auf mich? Oder wie bekomme ich jetzt die Laufzeit mit deinem Modul in eine Variable?

Also ich muss noch Änderungen für SNMP Version 1 Durchführen, da Version1 kein getBulk kann, dass versuche ich heute Abend mal eben zu ändern.
Ich erstelle in laufe der Woche noch ein neuen Thread, da dieser Thread für das IPS Win SNMP Client ist. Wohin wir hier schon über das Neue Modul reden IPS SNMP Client.
alles weitere findest du hier. https://www.symcon.de/forum/threads/34888-Modul-Win-SNMP?p=350563#post350563 Mit der Anleitung. :smiley:

@sewo
Auf welchen Betriebsystem läuft dein IPS?

IPS Läuft auf Win Server 2012R2

Gruß

Deshalb geht auch das Skript von qwik bei dir nicht.

Gedulde dich bitte bis heute Abend, dann kannst du morgen testen.
Da ja die allgemeine Abfrage bei dir Klappt.

Swen

Alles gut :smiley: habe es nicht eilig.

Gruß

So das Update für die SNMP Version 1 ist raus.
Bitte einmal testen ob es geht.

Hi Swen,

dein Modul ist der Hammer :smiley: Läuft Super

Habe meine Daten die ich haben wollte.

Habe aber eine Frage :o

Die Daten für Spannungen, Temperaturen kommen als Integer. Ist das von der USV so vorgegeben?
Float währe schöner da die Profile schon vorhanden. 228.8V sieht halt besser aus als 229V. :slight_smile:

Gruß und Danke für die Mühe

Hier mal eine kleine liste:

Integer: Signed 32bit Integer (values between -2147483648 and 2147483647).
Integer32: Same as Integer.
UInteger32: Unsigned 32bit Integer (values between 0 and 4294967295).
Octet String: Arbitrary binary or textual data, typically limited to 255 characters in length.
Object Identifier: An OID. Bit StringRepresents an enumeration of named bits. This is an unsigned datatype.
IpAddress: An IP address.
Counter32: Represents a non-negative integer which monotonically increases until it reaches a maximum value of 32bits-1 (4294967295 dec), when it wraps around and starts increasing again from zero.
Counter64: Same as Counter32 but has a maximum value of 64bits-1.
Gauge32: Represents an unsigned integer, which may increase or decrease, but shall never exceed a maximum value.
TimeTicks Represents an unsigned integer which represents the time, modulo 232 (4294967296 dec), in hundredths of a second between two epochs.
Opaque: Provided solely for backward-compatibility, its no longer used.
NsapAddress: Represents an OSI address as a variable-length OCTET STRING.

Ich glaube das sagt schon vieles darüber aus, oder? :smiley:
kann aber sein das du eine Ausgabe in mV findest.

Bei meinen Switch gibt es eine Ausgabe in Volt und eine in MilliVolt

Hi Swen,

passt schon :smiley:

Hauptsache ich habe die Date :loveips:

Gruß und Danke