NEWS
Logs umleiten
-
Hallo zusammen,
ich habe einen Log-Sys Server auf meinem NAS am laufen.
Wie bekomme ich nun die LOG Meldungen umgebogen? `
Wir verwenden winston und der kann schon syslog. Ich habe aber das gar nicht ausprobiert. Wenn du das testen konntest, währe das super. Dafür:-
cd /opt/iobroker
-
npm install winston-syslog
-
/opt/iobroker/node_modules/iobroker.js-controller/lib/logger.js Zeile 10 (Kommentar löschen)
//require('winston-syslog').Syslog;muss sein.
require('winston-syslog').Syslog;- und dann /opt/iobroker/iobroker-data/iobroker.json editieren. log erweitern
"log": { "level": "info", "maxDays": 7, "transport": { "file1": { "type": "file", "enabled": true, "filename": "log/iobroker", "fileext": ".log", "maxsize": null, "maxFiles": null }, "syslog": { "type": "syslog", "enabled": true, "host": "The host running syslogd, defaults to localhost.", "protocol": "The network protocol to log over (e.g. tcp4, udp4, unix, unix-connect, etc)", "path": "The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X)" } } },Bitte host, protocol und path anpassen und iobroker neu starten.
Hier ist die Beschreibung von winston-syslog: https://github.com/winstonjs/winston-syslog
7666_k-sonnenmittag.png -
-
Hallo Bluefox,
ich habe die 2 Datei folgenden editiert
"syslog": { "type": "syslog", "enabled": true, "host": "192.168.178.194:514", "protocol": "UDP)", "path": ""Dann habe ich Biobroker gestoppt und wieder gestartet.
:oops:
Dann habe ich folgende Meldung bekommen:
root@cubietruck:/opt/iobroker# iobroker start Starting ioBroker controller daemon... /opt/iobroker/node_modules/iobroker.js-controller/node_modules/daemonize2/lib/daemonize.js:136 throw new Error(msg.error); ^ Error: SyntaxError: Unexpected string at Object.parse (native) at Object. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/controller.js:44:19) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at init (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/daemonize2/lib/wrapper.js:105:17) at process.title (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/daemonize2/lib/wrapper.js:38:9) at ChildProcess. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/node_modules/daemonize2/lib/daemonize.js:136:19) at ChildProcess.EventEmitter.emit (events.js:98:17) at handleMessage (child_process.js:318:10) at Pipe.channel.onread (child_process.js:345:11)</anonymous></anonymous>Was mache ich nun, da iobroker nicht läuft :cry:
Den path habe ich nicht angegeben, da es im NAS verwaltet wird.
Mit den Einstellungen verbiege ich die CCU2 Logs. Also generell geht es
-
Du hast Fehler in deinem JSON Datei. Zeige bitte die Datei.
8413_1terversuch.jpg -
{ "network": { "IPv4": true, "IPv6": true, "bindAddress": null, "useSystemNpm": true }, "objects": { "type": "file", "typeComment": "Possible values: 'file' - [port 9001], redis - [port 6379],$ "host": "127.0.0.1", "port": 9001, "user": "", "pass": "", "noFileCache": false, "connectTimeout": 2000 }, "states": { "type": "file", "typeComment": "Possible values: 'file' - [port 9000], 'redis' - [port 6379$ "host": "127.0.0.1", "port": 9000, "options": { "auth_pass": null, "retry_max_delay": 15000 } }, "log": { "level": "info", "maxDays": 7, "transport": { "file1": { "type": "file", "enabled": true, "filename": "log/iobroker", "fileext": ".log", "maxsize": null, "maxFiles": null } } }, "dataDirComment": "Always relative to iobroker.js-controller/", "dataDir": "../../iobroker-data/" } "log": { "level": "info", "maxDays": 7, "transport": { "file1": { "type": "file", "enabled": true, "filename": "log/iobroker", "fileext": ".log", "maxsize": null, "maxFiles": null }, "syslog": { "type": "syslog", "enabled": true, "filename": "log/iobroker", "fileext": ".log", "maxsize": null, "maxFiles": null }, "syslog": { "type": "syslog", "enabled": true, "host": "192.168.178.194:514", "protocol": "UDP)", "path": "" } } } -
Ich habe keine Ahnung, was du gemacht hast, aber es war total falsch.
Es muss so sein:
{ "network": { "IPv4": true, "IPv6": true, "bindAddress": null, "useSystemNpm": true }, "objects": { "type": "file", "typeComment": "Possible values: 'file' - [port 9001], redis - [port 6379],$", "host": "127.0.0.1", "port": 9001, "user": "", "pass": "", "noFileCache": false, "connectTimeout": 2000 }, "states": { "type": "file", "typeComment": "Possible values: 'file' - [port 9000], 'redis' - [port 6379", "host": "127.0.0.1", "port": 9000, "options": { "auth_pass": null, "retry_max_delay": 15000 } }, "log": { "level": "info", "maxDays": 7, "transport": { "file1": { "type": "file", "enabled": true, "filename": "log/iobroker", "fileext": ".log", "maxsize": null, "maxFiles": null }, "syslog": { "type": "syslog", "enabled": true, "host": "192.168.178.194:514", "protocol": "UDP", "path": "" } } }, "dataDirComment": "Always relative to iobroker.js-controller/", "dataDir": "../../iobroker-data/" } -
Mmmmh
habe jetzt das Bild (schaut auf die erste Zeile, da sieht man aus welchen Verzeichnis ich Biobroker aufrufe)
Aus dem iobroker Verzeichnis:
root@cubietruck:/opt/iobroker# ls install.sh iobroker iobroker-data log node_modules root@cubietruck:[b]/opt/iobroker# /opt/iobroker/iobroker start[/b] Starting ioBroker controller daemon... /opt/iobroker/node_modules/iobroker.js-controller/node_modules/daemonize2/lib/daemonize.js:136 throw new Error(msg.error); ^ Error: Error: Cannot find module 'winston' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object. <anonymous>(/opt/iobroker/node_modules/winston-syslog/lib/winston-syslog.js:14:15) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at ChildProcess. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/node_modules/daemonize2/lib/daemonize.js:136:19) at ChildProcess.EventEmitter.emit (events.js:98:17) at handleMessage (child_process.js:318:10) at Pipe.channel.onread (child_process.js:345:11) root@cubietruck:/opt/iobroker#</anonymous></anonymous>Aus dem root Verzeichnis:
root@cubietruck:/# ls bin dev home lost+found mnt proc run selinux sys usr boot etc lib media opt root sbin srv tmp var root@cubietruck:/# /opt/iobroker/iobroker start module.js:340 throw err; ^ Error: Cannot find module '/node_modules/iobroker.js-controller/iobroker.js' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:901:3 root@cubietruck:/# -
Ich habe keine Ahnung, was du gemacht hast, aber es war total falsch.
Es muss so sein:
{ "network": { "IPv4": true, "IPv6": true, "bindAddress": null, "useSystemNpm": true }, "objects": { "type": "file", "typeComment": "Possible values: 'file' - [port 9001], redis - [port 6379],$", "host": "127.0.0.1", "port": 9001, "user": "", "pass": "", "noFileCache": false, "connectTimeout": 2000 }, "states": { "type": "file", "typeComment": "Possible values: 'file' - [port 9000], 'redis' - [port 6379", "host": "127.0.0.1", "port": 9000, "options": { "auth_pass": null, "retry_max_delay": 15000 } }, "log": { "level": "info", "maxDays": 7, "transport": { "file1": { "type": "file", "enabled": true, "filename": "log/iobroker", "fileext": ".log", "maxsize": null, "maxFiles": null }, "syslog": { "type": "syslog", "enabled": true, "host": "192.168.178.194:514", "protocol": "UDP", "path": "" } } }, "dataDirComment": "Always relative to iobroker.js-controller/", "dataDir": "../../iobroker-data/" } ```` `Hallo,
habe ich so gemacht. Hier fehlt meiner Meinung aber noch einiges im Logger?
require('winston-syslog').Syslog; winston.add(winston.transports.Syslog, options);Wie werden die Optionen unter "syslog" ausgelesen?
"syslog": { "type": "syslog", "enabled": true, "host": "192.168.1.14", "port": "514", "protocol": "UDP", "path": "" }PS: Habe es mit Port hinter der Adresse und so wie oben probiert …
-
Hallo,
ich bin mir aktuell gar nicht mehr sicher, ob der logger überhaupt aufgerufen wird.
Muss ich dafür ggf. wo anders noch etwas konfigurieren?
var winston = require('winston'); var fs = require('fs'); var path = require('path'); var os = require('os'); try { require('winston-syslog').Syslog; } catch (ex) { console.log('No syslog support'); }Die Ausgabe "no syslog" taucht nicht auf.
Oder muss ich da noch etwas uploaden ?
Warum ist winston 2x installiert?
` > root@raspberrypi:/opt/iobroker# find . -name logger.js
./node_modules/iobroker.node-red/node_modules/mongodb/node_modules/mongodb-core/lib/connection/logger.js
./node_modules/iobroker.node-red/node_modules/node-red/node_modules/node-red-node-serialport/node_modules/serialport/examples/logger.js
./node_modules/iobroker.node-red/node_modules/node-red/node_modules/express/node_modules/connect/lib/middleware/logger.js
./node_modules/prompt/node_modules/winston/lib/winston/logger.js
./node_modules/iobroker.js-controller/node_modules/winston/lib/winston/logger.js
./node_modules/iobroker.js-controller/lib/logger.js
./node_modules/winston/lib/winston/logger.js `
-
Ich habe keine Ahnung, was du gemacht hast, aber es war total falsch.
Es muss so sein:
{ "network": { "IPv4": true, "IPv6": true, "bindAddress": null, "useSystemNpm": true }, "objects": { "type": "file", "typeComment": "Possible values: 'file' - [port 9001], redis - [port 6379],$", "host": "127.0.0.1", "port": 9001, "user": "", "pass": "", "noFileCache": false, "connectTimeout": 2000 }, "states": { "type": "file", "typeComment": "Possible values: 'file' - [port 9000], 'redis' - [port 6379", "host": "127.0.0.1", "port": 9000, "options": { "auth_pass": null, "retry_max_delay": 15000 } }, "log": { "level": "info", "maxDays": 7, "transport": { "file1": { "type": "file", "enabled": true, "filename": "log/iobroker", "fileext": ".log", "maxsize": null, "maxFiles": null }, "syslog": { "type": "syslog", "enabled": true, "host": "192.168.178.194:514", "protocol": "UDP", "path": "" } } }, "dataDirComment": "Always relative to iobroker.js-controller/", "dataDir": "../../iobroker-data/" } ```` `Hallo,
habe ich so gemacht. Hier fehlt meiner Meinung aber noch einiges im Logger?
require('winston-syslog').Syslog; winston.add(winston.transports.Syslog, options);Wie werden die Optionen unter "syslog" ausgelesen?
"syslog": { "type": "syslog", "enabled": true, "host": "192.168.1.14", "port": "514", "protocol": "UDP", "path": "" }PS: Habe es mit Port hinter der Adresse und so wie oben probiert … `
Hast du recht, da fehlt noch viel.. :o
2534_1.png