Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)

Begonnen von hexenmeister, 06 Dezember 2013, 17:44:38

Vorheriges Thema - Nächstes Thema

Wernieman

Naja .. man kann mit Smart relativ einfach die temperatur der Festplatten ermitteln ... und die Veränderung deren sagt auch etwas über das System aus.

@oduudo
ich habe Deine Aussagen auch nicht auf mich bezogen, trotzem bringt mich so etwas auf die "Palme" und ich hätte beinahe nicht mehr geantwortet.

Ich weiß, das es kein Unix-Forum ist, nur leider googlen "die meisten" (was ich aus umfangreiher Forum Erfahrung, nicht nur hier, sagen kann) nicht. Sei froh, das sich hier noch kein rtfm geschrieben wurde ... ;o)
Mann kann nie sagen, ob jemand schon bei google geschaut hat und geht aus Erfahrung irgendwann davon aus, das derjenige es eben nicht tat, was leider zu 95% (oder mehr) zutrifft. Es trifft eben Leute wie dich, das man irgendwann so reagiert. Und Zusätzlich, frage Dich bitte, was hier wer von wem will.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

ahstax

Hallo miteinander,

gibt es mit SYSMON eine Möglichkeit, eine 128GB-SSD (SDA, SD1, SD2) zu monitoren, die via USB an einem RasPi 3 als einziger Datenträger (also keine SD-Karte) angeschlossen ist?
Root lässt sich auslesen, Vorgehen wie hier: https://wiki.fhem.de/wiki/SYSMON beschrieben...

Neugierige Grüße,
Andreas

hexenmeister

Was soll dagegen sprechen? Einfach, wie in Commandref beschrieben, den Mount-Point angeben.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

OdfFhem

#1623
Modulstand: 42_SYSMON.pm 17227 2018-08-29 19:58:18Z hexenmeister

Da sich die Werte starttime,starttime_text sowie fhemstarttime,fhemstarttime_text normalerweise nicht verändern, schlage ich folgende Moduländerung vor:

=== 1634-1636 === (getestet)
-      my $startTime = time()-$uptime;
-      $map->{+STARTTIME} = sprintf("%d",$startTime);
-      $map->{+STARTTIME_TEXT} = strftime("%d.%m.%Y %H:%M:%S", localtime($startTime));
+      my $startTime = int(time()-$uptime); # $uptime besitzt evtl. Nachkommastellen
+      my $old_STARTTIME = ReadingsVal($hash->{NAME},STARTTIME,undef);
+      if(!defined($old_STARTTIME) || (abs($startTime - $old_STARTTIME) > 1)) {
+        $map->{+STARTTIME} = sprintf("%d",$startTime);
+        $map->{+STARTTIME_TEXT} = strftime("%d.%m.%Y %H:%M:%S", localtime($startTime));
+      }
=== 1685-1687 === (UNGETESTET)
-    my $startTime = time()-$uptime;
-    $map->{+STARTTIME} = sprintf("%d",$startTime);
-    $map->{+STARTTIME_TEXT} = strftime("%d.%m.%Y %H:%M:%S", localtime($startTime));
+    my $startTime = int(time()-$uptime); # $uptime besitzt evtl. Nachkommastellen
+    my $old_STARTTIME = ReadingsVal($hash->{NAME},STARTTIME,undef);
+    if(!defined($old_STARTTIME) || (abs($startTime - $old_STARTTIME) > 1)) {
+      $map->{+STARTTIME} = sprintf("%d",$startTime);
+      $map->{+STARTTIME_TEXT} = strftime("%d.%m.%Y %H:%M:%S", localtime($startTime));
+    }
=== 1723-1725 === (getestet)
-    my $startTime = time()-$fhemuptime;
-    $map->{+FHEMSTARTTIME} = sprintf("%d",$startTime);
-    $map->{+FHEMSTARTTIME_TEXT} = strftime("%d.%m.%Y %H:%M:%S", localtime($startTime));
+    my $startTime = time()-$fhemuptime; # $fhemuptime besitzt evtl. Nachkommastellen
+    my $old_STARTTIME = ReadingsVal($hash->{NAME},FHEMSTARTTIME,undef);
+    if(!defined($old_STARTTIME) || (abs($startTime - $old_STARTTIME) > 1)) {
+      $map->{+FHEMSTARTTIME} = sprintf("%d",$startTime);
+      $map->{+FHEMSTARTTIME_TEXT} = strftime("%d.%m.%Y %H:%M:%S", localtime($startTime));
+    }

Sinn und Zweck der Moduländerung soll sein, dass man den ReadingsTimestamp dann auch für die "Altersbestimmung" nutzen kann.


Desweiteren habe ich noch folgenden "Schönheitsfehler" gefunden, der mich heute in FTUI einige Zeit beschäftigt hat:

=== 2342-2342 === (getestet)
-    $swap = sprintf("Total: %.2f MB, Used: %.2f MB,  %.2f %%, Free: %.2f MB", $total2, $used2, ($used2 / $total2 * 100), $free2);
+    $swap = sprintf("Total: %.2f MB, Used: %.2f MB, %.2f %%, Free: %.2f MB", $total2, $used2, ($used2 / $total2 * 100), $free2);



Viele Grüße

EDIT: Ich habe nochmals die if-Bedingung für den ersten Teil des Vorschlags angepasst - bedingt durch evtl. Nachkommastellen kann es ansonsten durch Auf- bzw- Abrunden zum häufigen Wechsel zwischen zwei Werten kommen.

frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

OdfFhem

Von timestamp-on-change-reading habe ich schon einmal gehört, aber bislang noch nirgendwo eingesetzt.

Im aktuellen Fall würde es mir aber wohl auch nichts bringen, da es zwar ein event-on-change-reading gibt, die besagten Readings dort aber nicht enthalten sind bzw. sein sollen.

Die vorgeschlagene Moduländerung soll eigentlich nur dafür sorgen, dass die besagten Readings bzgl. der Aktualisierung wie einige andere (statische) Readings - z.B. cpu_model_name, perl_version, ... - behandelt werden.

hexenmeister

Habe kurz die Vorschkäge überfloge. Sind sinnvoll. Werde in den nächten Tagen einbauen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Tommy82

Hi,
ich habe heute diese Meldung im Log
2019.01.09 17:05:32.719 1: PERL WARNING: Use of uninitialized value in int at ./FHEM/42_SYSMON.pm line 3494.
2019.01.09 17:05:32.721 1: stacktrace:
2019.01.09 17:05:32.722 1:     main::__ANON__                      called by ./FHEM/42_SYSMON.pm (3493)
2019.01.09 17:05:32.722 1:     main::SYSMON_isProcFS               called by ./FHEM/42_SYSMON.pm (1188)
2019.01.09 17:05:32.723 1:     main::SYSMON_obtainParameters_intern called by ./FHEM/42_SYSMON.pm (1129)
2019.01.09 17:05:32.724 1:     main::SYSMON_obtainParameters       called by ./FHEM/42_SYSMON.pm (956)
2019.01.09 17:05:32.724 1:     main::SYSMON_blockingCall           called by FHEM/Blocking.pm (194)
2019.01.09 17:05:32.725 1:     main::BlockingStart                 called by FHEM/Blocking.pm (107)
2019.01.09 17:05:32.725 1:     main::BlockingCall                  called by ./FHEM/42_SYSMON.pm (905)
2019.01.09 17:05:32.726 1:     main::SYSMON_Update                 called by fhem.pl (3153)
2019.01.09 17:05:32.757 1:     main::HandleTimeout                 called by fhem.pl (650)

Woher kommt das?

Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

hexenmeister

Gute Frage. Beim Ausführen eines Befehl auf dem Betriebssystem (aus FHEM) kam nichts zurück. Vlt. wurde die asynchrone Ausführung wegen Timeout abgebrochen. Wenn das nur einmalig passiert ist, würde ich nicht weiter suchen. Passiert das oft, würde ich zunächst prüfen, ob 'freezes' vorliegen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Skell

Moin,

Frage zwischendurch zu den readings eth0 und wlan0:

Zitat
Netzwerkinformationen
Informationen zu den über die angegebene Netzwerkschnittstellen übertragene Datenmengen und der Differenz zu der vorherigen Messung.
Beispiele:
Menge der übertragenen Daten über die Schnittstelle eth0.
eth0: RX: 940.58 MB, TX: 736.19 MB, Total: 1676.77 MB

Um welche übertragenen Daten handelt es sich genau? Von wo nach wo bzw. zwischen was? Raspberry <-> Router? Router <-> angeschlossene clients?

Gruß

Wernieman

Es sind die Daten, welche über die direkte Schnitstelle gehen, also eth0 ist die lokale Ethernetschniststelle, wlan0 die WLAN-Schnitstelle.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Skell

Zitat von: Wernieman am 11 Januar 2019, 21:07:56
Es sind die Daten, welche über die direkte Schnitstelle gehen, also eth0 ist die lokale Ethernetschniststelle, wlan0 die WLAN-Schnitstelle.

Das ist mir bewusst, aber von welchem Gerät? Mich wundert das ich eine Datenübertragung über wlan habe, obwohl das wlan Modul vom Rasp nicht verbunden ist.

Deswegen frage ich mich, von welchem Gerät er die gemessenen Daten abgreift bzw. selbst misst.

Der Rasp selber ist via Ethernet an einem Router angeschlossen welcher über eth an einem weiteren Router angeschlossen ist. Ich habe keine FritzBox.

Ich möchte es verstehen an welchem Punkt er die Daten misst.

hexenmeister

Wie schon gesagt, Daten, die über die Schnittstelle gehen. Egal zu welchem Gerät.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

popy

Hallo.

Ich habe mit dem sysmon Modul auf meinem RPI3 ein Thema.
Es zeigt glaube ich nicht den korrekten Freien RAM an, alle anderen (total, used) stimmen.
Hier das ram reading des Moduls:


ram Total: 927.20 MB, Used: 134.26 MB, 14.48 %, Free: 264.75 MB


und zum gleichen Zeitpunkt die ausgaben von free.

free -V

pi@rfhem-pi:/opt/fhem/FHEM $ free -V
free from procps-ng 3.3.12


free

pi@rfhem-pi:/opt/fhem/FHEM $ free
              total        used        free      shared  buff/cache   available
Mem:         949452      134532      274048        6512      540872      749928
Swap:        102396           0      102396


free -w

pi@rfhem-pi:/opt/fhem/FHEM $ free -w
              total        used        free      shared     buffers       cache   available
Mem:         949452      129608      278972        6512       58944      481928      754852
Swap:        102396           0      102396


Sollte nicht available als freier speicher angezeigt werden (das ist schon die kernel Berechnung die neuen Applikationen zur Verfügung steht).
Da ich in ein Log den "Free:" Wert scheibe schaut das Diagramm auf den ersten Blick nicht so toll aus (Siehe Anhang).
Schaut man sich allerdings die Werte an, ist alle super.

Ist das so gewollt oder eine Inkompatibilität meiner free version mit dem Modul?

Danke
pOpY





Wernieman

Es ist free und nicht available ...

Damit k9ommen die Werte ungefähr bei Dir hin ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html