DB Zugriff auf einer Synology NAS (Fhem und DB auf dem NAS installiert)

Begonnen von mig2, 27 Januar 2018, 20:09:48

Vorheriges Thema - Nächstes Thema

mig2

Hoi zusammen,
ich habe aktuell eine laufende FHEM Installation auf einem PI. Da dieser langsam an seine Performencgrenze stösst. Möchte ich nun alles auf ein Synology DS1812+ zügeln. Zugleich möchte ich auf dem NAS einen DB Zugriff für die Logs einrichten.
Ich habe nun auf dem NAS das FHEM eingerichtet. Das läuft auch korrekt. Es sind aber noch keine Sensoren eingerichtet. Nun möchte ich den DB Zugriff einrichten. Auf dem NAS ist eine MARIADB10 mit dem User FHEM eingerichtet.
Von der Shell kann ich auf die DB Zugreifen.
Im Verzeichnis /usr/local/fhem/opt und dann mit dem Befehl ./mysql -u fhem - p fhemuser. Dies Funktioniert auch als fhem Benutzer auf der DB.

Im File db.config habe ich folgende Konfiguration
################################################################
%dbconfig= (
    connection => "mysql:database=fhem;host=localhost;port=3307",
    user => "fhem",
    password => "fhemuser",
);
################################################################


Wenn ich nun das dblog definiere "define logdb DbLog ./db.conf 1*:1*" wird der Eintrag angelegt. Aber eine Verbindung zur DB kann nicht hergestellt werden. Der State bleibt auf disconnect.

Kann jemand mir sagen, wie ich auf einer Synology den DB Zugriff korrekt einstelle? Unten ist noch der Auszug aus dem EventMonitor und das ganz fhem.cfg (ist klein)

Gruss Peter


Auszug aus dem EventMonitor:

2018-01-27 19:51:07 DbLog logdb waiting for connection
2018.01.27 19:51:07 3 : DbLog logdb - Creating Push-Handle to database mysql:database=fhem;host=localhost;port=3307 with user fhem2018-01-27 19:51:07 DbLog logdb install_driver(mysql) failed: Can't load '/usr/local/lib/perl5/vendor_perl/auto/DBD/mysql/mysql.so' for module DBD::mysql: libmysqlclient.so.18: cannot open shared object file: No such file or directory at /usr/local/lib/perl5/core_perl/DynaLoader.pm line 193.  at (eval 20) line 3. Compilation failed in require at (eval 20) line 3. Perhaps a required shared library or dll isn't installed where expected  at ./FHEM/93_DbLog.pm line 2271.
2018.01.27 19:51:07 3 : DbLog logdb - Error: 2018-01-27 19:51:07 DbLog logdb disconnected
2018-01-27 19:51:07 Global global DEFINED logdb

Hier das ganze fhem.cfg
attr global userattr DbLogExclude DbLogInclude cmdIcon devStateIcon devStateStyle icon sortby webCmd webCmdLabel:textField-long widgetOverride
attr global autoload_undefined_devices 1
attr global autosave 0
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global motd Messages collected while initializing FHEM:\
./log/fhem.save: Please define logdb first\
Please define logdb first\
\
Autosave deactivated
attr global statefile ./log/fhem.save
attr global updateInBackground 1
attr global verbose 3

define telnetPort telnet 7072 global

define WEB FHEMWEB 8083 global

define WEBphone FHEMWEB 8084 global
attr WEBphone stylesheetPrefix smallscreen

define WEBtablet FHEMWEB 8085 global
attr WEBtablet stylesheetPrefix touchpad

# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog

define autocreate autocreate
attr autocreate filelog ./log/%NAME-%Y.log

define eventTypes eventTypes ./log/eventTypes.txt

# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create
define logdb DbLog ./db.conf 1*:1*

RPi 3 - CUL 868 (Pigator) - ZWave (RaZberry2)
Homematic:HM-SEC-SC-2 / HM-SEC-SCo / HM-TC-IT-WM-W-EU / HM-ES-PMSw1-Pl-DN-R5
Z-Wave: FGR222 (010f-0302-1000) / FGS223 (010f-0203-1000) / FGD212 (010f-0102-1000) /FGKF601 (010f-1001-1000) / KeyFob / FGS212 (010f-0402-1002)

DS_Starter

Hallo Peter,

Zitat
2018.01.27 19:51:07 3 : DbLog logdb - Creating Push-Handle to database mysql:database=fhem;host=localhost;port=3307 with user fhem2018-01-27 19:51:07 DbLog logdb install_driver(mysql) failed: Can't load '/usr/local/lib/perl5/vendor_perl/auto/DBD/mysql/mysql.so' for module DBD::mysql: libmysqlclient.so.18: cannot open shared object file: No such file or directory at /usr/local/lib/perl5/core_perl/DynaLoader.pm line 193.  at (eval 20) line 3. Compilation failed in require at (eval 20) line 3. Perhaps a required shared library or dll isn't installed where expected  at ./FHEM/93_DbLog.pm line 2271.

Dir fehlen benötigte Softwarekomponenten. Ich nehme an du hast FHEM direkt auf der Syno, also nicht in einer virtuellen Umgebung wie VMM oder Docker, installiert. Das ist mit ziemlicher Sicherheit ein Synology spezifisches Problem.
Um nicht bei jedem Update von Synology wieder vor Problemen zu stehen, würde ich persönlich FHEM nur in einer virtualisierten Umgebung (z.B. Debian) auf der Syno betreiben.

Ansonsten würde ich dir empfehlen deinen Beitrag in den NAS-Bereich (https://forum.fhem.de/index.php/board,30.0.html) zu verschieben. Dort werden solche Themen behandelt. (Button unten links)

EDIT: die DB kann dagegen ruhig die on-Board MariaDB sein. Das läuft einwandfrei.

Grüße
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

mig2

Guten Morgen,
das mit der Virtuellen Installation bin ich gar nicht drauf gekommen.
Werde mal dies so Probieren. Das wird mich wohl die nächsten 1-2 Wochen beschäftigen.

Vielen Dank für den Typ.

Gruss Peter
RPi 3 - CUL 868 (Pigator) - ZWave (RaZberry2)
Homematic:HM-SEC-SC-2 / HM-SEC-SCo / HM-TC-IT-WM-W-EU / HM-ES-PMSw1-Pl-DN-R5
Z-Wave: FGR222 (010f-0302-1000) / FGS223 (010f-0203-1000) / FGD212 (010f-0102-1000) /FGKF601 (010f-1001-1000) / KeyFob / FGS212 (010f-0402-1002)

justme1968

auf der synology sollte man nicht das perl das mitgeliefert wird verwenden.

wenn es eine intel synology ist: am besten active perl. das kommt mit allen nötigen modulen, lässt sich per ppm aktualisieren und wird bei
synology updates nicht angefasst. such mal im forum. da findest du mehr zur installation.

wenn es keine intel synology ist: schau ob es active perl für deine cpu gibt. wenn nicht: nimm opkg. damit kannst du ebenfalls einfach komponenten nachinstallieren.

ipkg ist nicht mehr zu empfehlen da komplett veraltet.

nur für fhem eine virtuelle umgebung aufsetzen ist nicht nötig.

docker hat netzwerk technisch zu viele einschränkungen.

mit dem virtuellen debian bekommst du leidest update probleme bzw. bist auf alte versionen festgenagelt.

der synology virtual machine manager wäre eine möglichkeit, für fhem ist der der overhead aber absolut unnötig.

active perl ist zu empfehlen. 
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

DS_Starter

Hallo Andre,

Zitat
auf der synology sollte man nicht das perl das mitgeliefert wird verwenden.

wenn es eine intel synology ist: am besten active perl. das kommt mit allen nötigen modulen, lässt sich per ppm aktualisieren und wird bei
synology updates nicht angefasst.

Das wäre auch für mich eine interresaante Variante.
Aber muss man in dem Fall nicht das mitgelieferte Perl-Paket deinstallieren ?  Soviel ich weiß, möchten andere Syno Standardpakete dass das Perl-Paket installiert ist.

Wie sind denn deine Erfahrungen damit ?

LG,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

der-Lolo

ActivePerl funktioniert super - wenn man aber aus dem Paket von Martin Fischer FHEM installiert ist das Syno Perl eine abhängigkeit - man muss es also installieren. Händisch kann man die Pfade dann zwar anpassen sodass das ActivePerl verwendet wird, der Syno Sicherheitsberater erkennt dies aber und entdeckt ein Sicherheitsrisiko.
Ausserdem ist es mir schon zweimal passiert nach einem Syno update das FHEM nicht mehr startete weil Syno das Startscript nicht beachtet.

Ich habe es leider auch immer noch nicht geschafft eine DB zum loggen einzubinden, weder mySQL noch SQLite lassen sich problemlos einbinden.

Ich denke mittlerweile auch über eine virtuelle umgebung nach...

justme1968

das synology perl brauchst du wegen der abhänigkeiten. active perl installierst du einfach zusätzlich. danach musst du nur drauf achten das du das fhem start script auf die richtige perl version umbiegst.

mySQL ist meiner meinung nach für fhem komplett oversized. ich verwende seit jahren sqlite aus opkg mit active perl auf einer intel synology und das geht absolut problemlos. diverse updates und migrationen zwischen synology modellen eingeschlossen.

zu docker: gerade was logging in eine db oder netzwerk netzwerk dinge wie z.b. für sonos angeht: es macht nur probleme wenn man nicht wirklich drin steckt. 'normale' beschreibungen passen alle nicht mehr. meine meinung ist: das lohnt sich nicht und schaffte mehr probleme als es löst.

der virtual machine manager ist da sicher besser. hat aber mehr overhead (wichtig bei modellen mit wenig hauptspeicher). und es ist eigentlich nicht nötig. fhem ist fast völlig sef contained und hat keine externen abhängigkeiten. einfach das fhem verzeichnis kopien und gut ist. und niemand weiss ob synology nicht lizenzgebühren verlangt wenn er aus der beta phase raus ist.


was den sicherheisberater angeht: der ist sowieso mit vorsicht zu genießen. eine warnung das der ssh port nicht verändert wurde grenzt an panik mache. viel wichtiger ist es kein ssh mit password zuzulassen. und darauf weisst er leider nicht hin.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

der-Lolo

Nach dem upgrade auf 8GB Arbeitsspeicher ist dieser hoffentlich nicht mehr das problem - so performant wie auf der Syno hatte ich fhem noch nie dauerhaft am laufen, ich habe zwar noch das problem das die Arbeitspeicher auslastung stetig wächst, aber das umgehe ich aktuell dadurch das ich fhem etwa wöchentlich update und danach durchstarte.. Meist hat FHEM nach einer Woche etwa 3,5GB Arbeitsspeicher für sich beschlagnahmt. Ich bekomme leider nicht raus woran das liegt - hatte auch schon einen eigenen thread dazu eröffnet, ich vermute einen zusammenhang mit dem Modbus TCP Modul von ChrisD, kann aber auf dieses Modul beim besten willen nicht verzichten.
DB Log steht für mich zur Zeit auf höchster Prio - aber ich bin aktuell froh wenn ich mal eine Stunde zeit habe um zu schauen ob im System noch alles stabil läuft. Grundlegende funktionen habe ich ja - der rest kommt eben nach und nach.
Docker habe ich mir so gut wie aus dem kopf geschlagen, mir ist das thema zu komplex, ich versuche glaube ich mal mein glück mit VMM wenn ich das nächste mal ein paar zusammenhängende Tage Zeit für gebastel habe...


DS_Starter

Meine Syno habe ich auch auf 8GB gepimpt.
Zur Zeit habe ich einen extra NUC mit allen möglichen VM's laufen. Aber liebäugle ebenfalls mit dem VMM um wieder alles auf der Syno zentral zu haben.
Allerdings läuft es so mit dem ESX sehr gut (siehe footprint), deswegen nicht oberste Prio es zu verändern. Außerdem braucht VMM zwingend btrfs Dateisystem und eine Migration gibt es m.W. nach nicht.

Bin bekennender MySQL/MariaDB-Fan ;) ... gab noch nie Probleme damit.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

justme1968

das mit dem fhem speicherverbrauch muss an einem bestimmten modul liegen. mein fhem braucht auch nach monaten nicht mehr als 1gb hauptspeicher. auch wenn meine syno aktuell 48gb hauptspeicher hat und es kein problem wäre :)
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

der-Lolo

Diese Ram probleme habe ich https://forum.fhem.de/index.php/topic,78596.msg705697.html#msg705697 hier versucht zu beschreiben...
Leider stürzt fhem ab wenn ich "fhemdebug memusage" aufrufe..
Seit diesem problem gehts bei der Fehlersuche nicht mehr weiter...