AvrLogger : Thermallogger und Visualisierung Tool

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
129
Punkte
89
… ich sage mal … „erwischt“ :eek: … ich gebe dir in allen Punkten Recht.

Das „Ur“-Script hat tatsächlich, nicht viel mehr gemacht, als die Werte in eine CSV-Datei zu schreiben. Daraus ist nach und nach AvrLogger entstanden, so wie es jetzt ist.

By the way: Ich finde es hoch interessant dein (und andere) Meinungen / Wünsche / Vorstellungen zu lesen. Ich liebe diesen Input. Ich finde es ebenfalls äußerst interessant, solche Tests zu machen.

Du hast mich mit dem Satz: (Zitat)
nur alle xx Stunden auf die HDD schreiben? Im Falle eines Stromausfalles verliert man zwar die Daten, aber das sollte wohl dann das geringste Problem sein.
auf eine Idee gebracht. Ca. 95% von AvrLogger habe ich schon vorbereitet, um alles im Speicher zu halten. Wenn das eine Option ist, im „worst case“ Werte von XX-Stunden zu verlieren und auf eine „automatische“ Aktualisierung des Plot’s zu verzichten, dann sehe ich da eine Möglichkeit, für XX-Stunden auf HDD-Schreibzugriffe zu verzichten.

Ich stelle mir das gerade so vor:
AvrLogger bekommt einen weiteren Schalter / Select-Box mit dem man die Ruhezustandsunterstützung für 1h / 2h / 3h / 6h / 12h – Stunden „aktiviert“. Wenn dieser Schalter aktiviert ist: Werden nur noch sich „langsam“ ändernden Werte abgefragt: Thermal-Status; HDD Temperatur(en) und einen gemittelten Load der letzten Minute (1.3.6.1.4.1.2021.10.1.5.1 = laLoadInt.1 / 1. minute Load).
Der Plot (die Grafik) wird nur alle XX-Stunden aktualisiert und gleichzeitig die gesammelten Werte gespeichert. Die Grafik in der GUI wird „nicht“ mehr automatisch alle paar Min. aktualisiert sondern nur auf Anforderung ala Button „aktualisieren“. Damit kann ich auf alle „Signale“ zwischen cron / GUI / Daemon verzichten und die Abfrageintervalle auf >= 1 Minute setzen.

Ich denke dass bekomme ich hin. :cool:
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234
Das hört sich gut an.

Der Personenkreis, der eine durchlaufende DS hat, lässt es out-of-the-box durchgehend laufen und schreiben. Der Personenkreis, dem der Ruhezustand auch wichtig ist, kann den Schalter setzen.

Ich werfe da noch den TIpp ein, dass Schreiben von der Uhrzeit abhängig zu machen, z.B. das Schreiben gezielt um eine bestimmte Uhrzeit vorzunehmen, So kann man sich das auf eine Zeit legen, wo die DS sowieso immer wach ist.
 
Zuletzt bearbeitet:

PsychoHH

Benutzer
Mitglied seit
03. Jul 2013
Beiträge
2.967
Punkte für Reaktionen
4
Punkte
78
Habe mir das Tool nun auch mal angesehen, sieht ziemlich gut aus und läuft.

Was mich aber gewundert hat, dass selbst ein "unangemeldeter" Login möglich ist.
Ich habe mir dann die Funktion für den Access angesehen, sobald der Cross Schutz im DSM aktiviert ist, bekommst du per authenticate.cgi keine Ausgabe auf der Konsole
und es wird praktisch nichts gecheckt oder hat dies mal bei dir geklappt?


Evtl. kannst du das "Ruhezustandproblem" wie folgt lösen.
Ein Script welches im Hintergrund von der index.cgi ausgeführt wird bzw. per Startscript und die Daten sammelt und nach x Zeit in eine Datei schreibt.
Solange das Script sich nicht auf ein volume befindet, sollten die Festplatten herunterfahren und das Script auch im Ruhezustand laufen.
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
129
Punkte
89
öhm ... dass hat mal funktioniert, ist eingebaut ... prüfe ich mal.

Jo ... ein Konzept dafür steht, baue ich gerade ein. Die Einstellungen dazu sind in der GUI bereits eingebaut ... ich hab mal eine „Demo“ auf meinen Server abgelegt, diese beinhaltet auch alle vorher beschriebenen Änderungen. Ist bitte aus als „TEST“-Version zu sehen.

Nachtrag:

Hm ... ich hab dass mit dem Aufruf ohne angemeldetem Benutzer getestet ... bei mir kommt ohne Anmeldung nur die Fehlerseite: "Es tut uns Leid, die von Ihnen gesuchte Seite konnte nicht gefunden werden."

Ich teste das so: MeineIP/webman/3rdparty/AvrLogger/index.cgi

Oder hab ich da was falsch verstanden?
 
Zuletzt bearbeitet:

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234
Das Thema Ruhezustand kann man wohl vergessen, da die Platten aufwachen, wenn man sie per smartctl abfragt.

Ich habe das gerade getestet. SSH-Fenster war auf, ich habe gewartet bis die HDDs in den Ruhezustand gewechselt sind und habe dann per smartctl abgefragt.
Rich (BBCode):
 smartctl -d ata -a /dev/sda
Das volle Ergebnis kam erst nach ca. 10s und die Festplatten liefen wieder.
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
129
Punkte
89
Probier es mal mit:

Rich (BBCode):
snmpwalk -v 2c  -c syno -O qv 127.0.0.1 1.3.6.1.4.1.6574.2.1.1.6

smartctl nutze ich garnicht :) sondern den genannten Aufruf per snmpwalk.

Nachtrag:

Eine Möglichkeit gibt es noch:

Rich (BBCode):
hdparm -C /dev/sda

Damit wird der Laufwerksstatus abgefragt. Das "könnte" ich notfalls vor der Temperaturabfrage einbauen.

Nachtrag:

Es kann sein das diese Tests über die Konsole / Terminal grundsätzlich nicht funktionieren, weil die DS ein "bash_history.log" führt und die wird nach jeder Eingabe im Terminal aktualisiert.
 
Zuletzt bearbeitet:

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234
Beim Betrieb der Festplatten und dem Absetzen von
Rich (BBCode):
 snmpwalk -v 2c  -c syno -O qv 127.0.0.1 1.3.6.1.4.1.657
erhalte ich ein
Rich (BBCode):
31
32
Funktioniert also.

Nun habe ich gewartet bis die HDDs in den Ruhezustand wechseln und habe den Befehl wieder abgesetzt.
Das Ergebnis war:
Rich (BBCode):
0
0
und die HDDs wachten auch auf.

Es kann natürlich sein, dass die HDDs z.B. wegen der History aufwachen, aber das nutzt auch nichts, da das Ergebnis = 0 war.
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
129
Punkte
89
Kannst du nochmal die OID: 1.3.6.1.4.1.6574.1.2.0 testen ... diese liefert den "Thermal-Status" der DS.

Wenn da auch "0" zurück kommt ... dann macht es, aus meiner Sicht, keinen Sinn den Ruhezustand "aktive" zu unterstützen, weil eh keiner Werte zurück kommen.

Nachtrag:

Eine Möglichkeit wäre, dass ich den Status der HDDs mit "hdparm -C /dev/sdX" prüfe und AvrLogger, sobald eine der HDDs den Status != active/idle hat, ebenfalls in einen Ruhezustand geht und keine Werte mehr loggt.
 
Zuletzt bearbeitet:

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234
Hmm..., das sieht gar nicht gut aus für den Ruhezustand.

Kannst du nochmal die OID: 1.3.6.1.4.1.6574.1.2.0 testen ... diese liefert den "Thermal-Status" der DS.
Wenn die HDDs laufen, kommt da sofort der Wert (bei mir zwischen 40 und 45).
Wenn die HDDs nicht laufen, dauert es ca. 3s, dann kommt gar kein Wert und die Festplatten wachen auf.

Status der HDDs mit "hdparm -C /dev/sda"
Dies weckt auch die HDDs auf.
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
129
Punkte
89
... dann ... mit deinen Ergebnissen ... sehe ich den Ruheuzstand einer DS, zusammen mit AvrLogger, erstmal in weite Ferne rücken.
Schade ... ich hatte gedacht, jetzt haben wir es :(

Ich lege das jetzt erstmal auf Eis ... vielleicht kommt ja noch von irgend einer Seite "die" Idee / Lösung.

Danke für die Tests und den Gedankenaustausch!!
 

PsychoHH

Benutzer
Mitglied seit
03. Jul 2013
Beiträge
2.967
Punkte für Reaktionen
4
Punkte
78
Ja so prüft man es.


Kannst ja mal ein Script in ein Verzeichnis welches nicht auf der Hdd liegt ablegen und per cron starten.

Ssh Verbindung muss aber getrennt sein, sonst geht der Ruhezustand nicht.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234

PsychoHH

Benutzer
Mitglied seit
03. Jul 2013
Beiträge
2.967
Punkte für Reaktionen
4
Punkte
78
Bei mir gehen die Hdd nicht aus bei einer aktiven ssh Verbindung :/

Glaub /tmp z.B.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234
Da im Ruhezustand der HDDs kein Datenabruf möglich ist, entfällt die Notwendigkeit einen Weg zu finden, ob man den Start der HDDs verhindern kann.
Ich werde daher nicht weiter in dieser Richtung rumprobieren. Es wäre reine Zeitverschwendung.

Ich habe mir für meinen Anwendungsfall folgendes überlegt:
Ich starte per Aufgabenplaner morgens den AvrLogger und stoppe ihn abends wieder. So kann die DS nachts schlafen gehen. Das hat auch den Vorteil, dass die DS tagsüber gar nicht schläft und immer ohne Verzögerung ansprechbar ist.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234
Hmm... gestern Abend wurde AvrLogger um 22 Uhr gestoppt, heute Morgen um 9 Uhr gestartet.

Dann verschiebt AvrLogger einfach die Daten von gestern auf heute Nacht. :(

Hier ein Bild, Aufmerksamkeit unten auf die Zeitachse. Bild links ist der Screenshot von gestern, Bild rechts ist der Screenshot von heute kurz nach 9 Uhr.
zeitstrahl.jpg

Erwartet habe ich eigentlich, dass die Zeiten von 22 Uhr bis 9 Uhr leer bleiben und er einfach ab 9 Uhr weiter loggt.


Nachtrag1:
Dies ist Version 1.0.2-11. Ich habe gerade gesehen, dass eine neue Version angeboten wird. Ich werde die mal installieren.


Nachtrag2:
Version 1.0.3-02 habe ich nun ohne Altdaten frisch installiert.
Was macht der Wert SMA genau?
 
Zuletzt bearbeitet:

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
129
Punkte
89
Das ist kein Fehler … das ist so gewollt.

Der Grund ist folgender: AvrLogger zeigt im Plot „keine echte(n) Zeit(en) an“ und ordnet einen Wert auch keiner Zeit zu, das heißt, die einzelnen Werte haben keinen Zeitstemple.
Daraus ergibt sich, dass keine „Offlinezeiten“ erfasst und auch nicht dargestellt werden. Die Zeitleiste unten ist „keine“ echte Zeit, sondern zeigt unter dem letztem Plotwert nur die Zeit an, zu der die Grafik das letzte Mal aktualisiert wurde. Man muss sich vorstellen, die Plotwerte und die Zeit dazu, sind „Betriebstunden“. Zeitlich approximiert über die Anzahl der ermittelten Werte und Abfrageintervall.

Ich hatte zu Anfang versucht jeden Wert mit einem, „echten“-Zeitstempel zu versehen und im Plot diese korrekt anzuzeigen. Ich habe das sehr schnell wieder verworfen, weil der damit verbundene Rechenaufwand, gewaltig angewachsen ist und ich rede nicht von ein paar Prozent.

Die momentane Lösung ist vielleicht „unglücklich“ … aber dafür gibt es ja diesen Tread und du hast vielleicht eine Idee?? :eek:
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
129
Punkte
89
Da im Ruhezustand der HDDs kein Datenabruf möglich ist, entfällt die Notwendigkeit einen Weg zu finden, ob man den Start der HDDs verhindern kann.
Ich werde daher nicht weiter in dieser Richtung rumprobieren. Es wäre reine Zeitverschwendung.

Ich habe mir für meinen Anwendungsfall folgendes überlegt:
Ich starte per Aufgabenplaner morgens den AvrLogger und stoppe ihn abends wieder. So kann die DS nachts schlafen gehen. Das hat auch den Vorteil, dass die DS tagsüber gar nicht schläft und immer ohne Verzögerung ansprechbar ist.

Könnte ich einbauen ... dann würde ein Umweg über den Aufgabenplaner entfallen.

So langsam muss ich mir eine Prioritätenliste anlegen :-D ... momentan kämpfe ich damit das der snmpwalk-Aufruf für den System-Load Faktor 10 mehr Zeit benötigt als der Thermal-Status. Beide Aufrufe machen "exakt" das gleiche nur mit unterschiedlicher OID und dennoch ... Faktor 10 Unterschied.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
129
Punkte
89
Der (die) Zeitschalter / Steuerung ist so gut wie fertig:

Zeitschalter.jpg

Ich muss nur noch die start-stop Scripts daran anpassen und die „Verriegelung“ testen.

Zeitbereiche in der DB mit 0er Daten füllen.

Das klingt nach eine guten Idee. Muss dazu nur die „Offline-Zeit“ ermitteln und dann für diesen Zeitraum die „erwartete“ Anzahl an Werten auffüllen und sicherstellen das kein Wert kleiner ist als der min. Wert der entsprechenden Achsskalierung.

Das wird funktionieren, wenn in der „Offline-Zeit“ keine Timings in „Avr-Config“ und in „Plot-Config“ die Achs min. Wert „nicht“ verändert werden.

Ist so gut wie eingebaut. :cool:
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234
Wow..., wenn man bei der Entwicklung von Windows so schnell wie du gewesen wäre, hätten wir im Jahre 2005 schon Windows 10 gehabt und WIndows wäre durch die 13 nachfolgenden Jahre heute ein perfektes Betriebssystem. :)

Ich bin gespannt wie es mit dem Zeitschalter läuft. Ich teste das dann sofort aus.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat