NEWS
Journal-Log erstellen
-
Hallo zusammen,
ich oute mich mal wieder als NodeRed-Beginner und hoffe, dass meine Anfrage korrekt plaziert ist
Ich nutze Node-Red samt Dashboard um einige Funktionen u.A. mein Monitoring abzudecken. Das funktioniert tadellos.Mein Ziel ist es, im Dashboard eine Art "Journal" bzw. "LOG/History" zu erstellen. Ich möchte mir die letzten Schaltvorgänge und aktivitäten aus anderen Logs anzeigen lassen.
Es würde mir reichen, wenn ich alles im Linux in eine Log-Datei schreibe und mir im Dashboard die letzten 50 Zeilen Dieser Datei anzeigen lasse.
Mit dem Tail-Node funktioniet das an sich, alledings immer nur mit der letzten Zeile:
Hat jemand eine Idee, wie ich entweder einen tail - 50 /pfad-zur.log ausgeben kann. Oder gibt es bessere Ansätze, um eine neue Textzeile einem Bestehenden Text-Node hinzuzufügen?
Freue mich auf eure Rückmeldungen.
Grüße
Tomily -
tail -n 50 /opt/iobroker/log/iobroker.current.log
-
Vielen Dank für die schnelle Rückmeldung.
Die Beschreibung dazu ist jetzt leider nicht ganz so arg langeWo packe ich die Zeile rein? In den tail-Node?
Angenommen meine Infos stehen in der datei /var/log/ping.log, dann wäre der entsprechende Befehl folgender?tail -n 50 /var/log/ping.log//log/iobroker.current.log ?
1000 Dank für eine kurze Erklärung deines Befehls.
Grüße
-
@tomily sagte in Journal-Log erstellen:
Die Beschreibung dazu ist jetzt leider nicht ganz so arg lange
Angenommen meine Infos stehen in der datei /var/log/ping.log
Wo stand denn, dass du eine eigene logdatei nutzen wolltest und nicht den aktuellen ioBroker-log?
-
@tomily sagte in Journal-Log erstellen:
tail -n 50 /var/log/ping.log//log/iobroker.current.log ?
NEIN.
Der wäre dann so:
tail -n 50 /var/log/ping.log
Wobei du den Pfad natürlich noch anpassen musst.
-
@homoran
Mit dieser Zeile wollte ich das egtl ausdrücken:"Es würde mir reichen, wenn ich alles im Linux in eine Log-Datei schreibe und mir im Dashboard die letzten 50 Zeilen Dieser Datei anzeigen lasse."
Wenn das mißverständlich war tut es mir leid.
Ich bin natürlich auch offen für andere Lösungsvorschläge. Allerdings will ich mir nicht das Standard-Log anzeigen lassen, sondern dieses selbst gestalten.Aus meiner Sicht geht das am einfachsten mit einer selbst gebastelten Log-Datei, weleche Angezeigt wird. Dann bin ich unabhängig und kann aus unterschiedlichen Scripten in das LOG schreiben.
Oder Alternativ evtl. mit einem Node, welches einem bestehenden Text eine Zeile hinzufügt.
-
@tomily Welches LOG willst du denn jetzt anzeigen lassen?
Das reine ioBroker log oder das Linux System log oder beides in einem?
Vielleicht ist es das was du suchst: https://forum.iobroker.net/topic/3863/iobroker-logging-zu-syslog/14
-
sorry- ich bin mit nodered nicht so "befreundet" - die tail node scheint das nicht zu können - ich habe dir einen linuxbefehl darstellen woillen
habe versucht mit dem exec -node in nodered was zu bekommen - check ich leider nicht wirklich
aber wir sind ja in iobroker
daher ein leines blockly für den befehl - du musst natürlich dein file wieder eingeben - das sschreibt einen datenpunkt und diesen kannst du in nodered nutzen
-
@liv-in-sky
Danke Dir. Das ist allerdings nicht, das was ich suche@wendy2702
Weder noch:Ich erstelle mir in anderen Scripten eine eigene LOG-Datei. Beispiel:
/var/log/ping.logIm NodeRed-Dashboard möchte ich nun die letzten N-Zeilen der Datei/ var/log/ping.log anzeigen lassen.
-
Dann ist das der Befehl:
tail -n 50 /var/log/ping.log
Wie man das allerdings in NodeRed bekommt kann ich dir auch nicht sagen.
-
@wendy2702
Einen tail auf eine Datei unter Linux machen ist kein Problem. Die Frage war ja, wie ich das Ergebnis ins Node-Red Dashboard bekomme.Danke trotzdem. Vielleicht hat ja noch jemand ne Idee.
-
@tomily sagte in Journal-Log erstellen:
inen tail auf eine Datei unter Linux machen ist kein Problem.
Hab ewig nicht mehr mit node-red gearbeitet. Aber dafür ist doch der function-node, oder?
-
@homoran
Wieso antwortet Ihr dann auf eine NodeRed-Frage in der Node-Red Kategorie?Habe es wie in meinem ersten Screenshot per tail-Node und auch per exec-node nicht hinbekommen.
Aus diesem Grund habe ich mich an euch gemeldet.Vielleicht findet sich ja bei Gelegenheit noch jemand, der das in NodeRed abbilden kann.
Danke euch trotzdem!
-
@tomily sagte in Journal-Log erstellen:
Wieso antwortet Ihr dann auf eine NodeRed-Frage in der Node-Red Kategorie?
weil du auf dem Handy die Kategorie nicht siehst!
-
-
@tomily sagte in Journal-Log erstellen:
@wendy2702
Einen tail auf eine Datei unter Linux machen ist kein Problem.Sicher ?
@tomily sagte in Journal-Log erstellen:
tail - 50 /pfad-zur.log
@tomily sagte in Journal-Log erstellen:
tail -n 50 /var/log/ping.log//log/iobroker.current.log ?
@tomily sagte in Journal-Log erstellen:
@homoran
Wieso antwortet Ihr dann auf eine NodeRed-Frage in der Node-Red Kategorie?Sorry, kommt nicht mehr vor
-
@liv-in-sky
Danke. Das hilft schonmal, weil ich gesehen habe, dass ich den EXEC-Node in meinem Beispiel falsch konfiguriert habe.
Leider funktioniert es noch nicht ganz.Hab im Tail mal einen Pfad zu einer Test-Logdatei angegeben und im Function-Node eine doppelte Zeile entfernt. Da kam bei mir ein Fehler. Hast du Lust nochmal drüber zu schauen?
Hier der minimals abgeänderte Stand:
[ { "id": "37365980.457a5e", "type": "tab", "label": "TEST", "disabled": false, "info": "" }, { "id": "69747f35.56185", "type": "debug", "z": "37365980.457a5e", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 770, "y": 80, "wires": [] }, { "id": "761ec9ef.a184b8", "type": "exec", "z": "37365980.457a5e", "command": "tail", "addpay": true, "append": "-n 50 /opt/iobroker/log/iobroker.2021-02-08.log", "useSpawn": "false", "timer": "", "oldrc": false, "name": "", "x": 290, "y": 80, "wires": [ [ "e5eb10bd.53bc78" ], [], [] ] }, { "id": "649f8f7b.18614", "type": "inject", "z": "37365980.457a5e", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "", "payloadType": "date", "x": 100, "y": 80, "wires": [ [ "761ec9ef.a184b8" ] ] }, { "id": "e5eb10bd.53bc78", "type": "function", "z": "37365980.457a5e", "name": "", "func": "var b=Buffer.from(msg.payload);\nvar s=b.toString();\nvar out=s;\nmsg.payload= out;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "x": 540, "y": 80, "wires": [ [ "69747f35.56185" ] ] } ]
-
der fehler sagt mit im moment nix - aber da ja eine ausgabe kommt, liegt es vielleicht am inject-node
-
@tomily liegt daran:
damit kann man einen befehl mitgeben, was bei uns ja nicht nötig ist - da inject nur timestamp
-
@liv-in-sky
Danke. Ich denke wir sind der Sache auf der SpurAllerdings ist es wie verhext, da ich in der Debug-Anzeige gar keine Ausgabe bekomme.
Wenn ich gleichzeitig per putty einen tail auf die selbe datei mache, sehe ich aber, dass dort Einträge kommen.Mache ich Grundlegend etwas falsch?
Kannst du mir von deinem jetzigen Flow, nochmal einen export machen?