FHEM Forum

FHEM => Sonstiges => Thema gestartet von: mrpointblue am 19 März 2017, 22:49:04

Titel: Define dblog / Fhem stürzt ab
Beitrag von: mrpointblue am 19 März 2017, 22:49:04
Hallo,
nach Konfiguration meines MySQL Servers wollte ich nun dblog in fhem hinzufügen.

define dblog DbLog ./contrib/dblog/db.conf .*:.*

Leider stürzt fhem sofort ab und ist erst wieder nach start in der console erreichbar.
Leider gibt es keinen Log Eintrag im fhem.

Hat jemand eine Idee?
Ich verzweifle.

Danke
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: Otto123 am 19 März 2017, 22:56:53
Hi,

ich habe keine Ahnung von dblog, aber hast Du ansatzweise in der Doku gelesen?
https://fhem.de/commandref_DE.html#DbLog

Und vor allem den angepinnten Beitrag -> [Workshop] Umstieg von fhem.cfg auf configDB  (https://forum.fhem.de/index.php/topic,54055.0.html#new)

Gruß Otto
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: kumue am 19 März 2017, 23:00:50
bist du vorgegangen wie im wiki beschrieben ?

https://wiki.fhem.de/wiki/DbLog (https://wiki.fhem.de/wiki/DbLog)
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: mrpointblue am 19 März 2017, 23:18:21
Ja bin exakt vorgegangen.
Hab auch schon alles im Forum durchsucht.

Eigentlich kann man nicht wirklich viel falsch machen.

In der Doku ist es so beschrieben wie ich es durchgeführt habe.

@Otto: Verstehe nicht was die configDB damit zu tun hat. Bei MySQL verwende ich die db.conf die auch bei define mit  angegeben wird

define dblog DbLog ./contrib/dblog/db.conf .*:.*

--------------------------------------

Wenn ich aber die Umstellung auf configDB durchführe kommt folgender Fehler:

Can't open perl script "fhem.pl": No such file or directory
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: kumue am 19 März 2017, 23:31:09
aus welchen verzeichnis startest du perl fhem.pl configDB ?
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: Otto123 am 19 März 2017, 23:46:54
Zitat von: mrpointblue am 19 März 2017, 23:18:21

@Otto: Verstehe nicht was die configDB damit zu tun hat. Bei MySQL verwende ich die db.conf die auch bei define mit  angegeben wird

define dblog DbLog ./contrib/dblog/db.conf .*:.*

sorry das mit der configDB war mein Fehler, falsch gelesen.

Aber alleine dies  ./contrib/dblog/db.conf ist für mich höchst zweifelhaft. Es handelt sich hierbei um die die Beispieldatei, die man als Template an einen anderen Ort kopiert, dort bearbeitet und dann verwendet.

Gruß Otto
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: kumue am 19 März 2017, 23:50:22
Zitat von: Otto123 am 19 März 2017, 23:46:54
Aber alleine dies  ./contrib/dblog/db.conf ist für mich höchst zweifelhaft. Es handelt sich hierbei um die die Beispieldatei, die man als Template an einen anderen Ort kopiert, dort bearbeitet und dann verwendet.

ich denke schon, daß er die datei entsprechend "entkommentiert" hat.
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: Otto123 am 19 März 2017, 23:52:10
Zitat von: kumue am 19 März 2017, 23:50:22
ich denke schon, daß er die datei entsprechend "entkommentiert" hat.
Ich denke nicht, dass man die im contrib Ordner liegen lassen sollte.  :-X
Aber jeder wie er will...
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: kumue am 19 März 2017, 23:53:09
Auflösung sicher erst morgen  ;)
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: Otto123 am 19 März 2017, 23:57:56
genau, Gute Nacht  ;)
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: Benni am 20 März 2017, 07:11:19
Zitat von: Otto123 am 19 März 2017, 23:52:10
Ich denke nicht, dass man die im contrib Ordner liegen lassen sollte.  :-X
Aber jeder wie er will...

Na ja, funktionieren sollte es auch, wenn die Datei in contrib liegen bleibt.
Passieren kann der Datei dort eigentlich auch erst mal nix, da contrib ja nicht durch update aktualisiert wird.

Es könnte aber sein, dass dem user fhem dort, warum auch immer, die nötigen Rechte auf die Datei fehlen. Darüber könnte mal ein

ls -l ./contrib/dblog/db.conf

in der shell Aufschluß geben.
Nichts desto trotz würde ich die Datei auch nicht direkt aus contrib heraus verwenden, sondern besser direkt ins fhem Verzeichnis kopieren (Stichwort backup).

@mrpointblue:

Hast du denn die, für MySQL zusätzlich benötigten perl-Bibliotheken nach Wiki-Anleitung (https://wiki.fhem.de/wiki/DbLog#Beispiel:_Anlegen_und_Nutzung_einer_Mysql-Datenbank) installiert?


apt-get install mysql-server mysql-client libdbd-mysql libdbd-mysql-perl


Das ist die Installation, wie sie unter Ubuntu, bzw. unter debian funktionieren sollte. Andernfalls kannst du die auch mittels CPAN installieren (google hilft dir ggf. dabei ;) )

Wenn die Bibliotheken fehlen, sollte das im FHEM-Log aber drin stehen, wenn sich das Modul DbLog nicht laden lässt, bzw. müsste eigentlich schon beim define eine entsprechende Fehlermeldung kommen und kein Absturz.

A propos: Wenn nichts im Log steht, könntest vor dem define und dem damit verbundenen Absturz auch mal noch

attr global verbose 5

setzen, dann steht wahrscheinlich etwas mehr drin.


Zitat von: mrpointblue am 19 März 2017, 23:18:21
Can't open perl script "fhem.pl": No such file or directory

Da verstehe ich nicht ganz. Der Fehler kann ja nicht beim define von dblog auftreten, sondern nur beim starten von fhem aus der shell heraus.
Wie rufst du denn fhem.pl auf, damit diese Fehlermeldung kommt? Und vor allem von wo aus und als welcher user? Befindest du dich beim Aufruf denn im richtigen Verzeichnis (Bei debian ist das für fhem normalerweise /opt/fhem)?

Ganz schön viele Fragen.
Bin auch mal auf die Auflösung(en) gespannt! ;)
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: Otto123 am 20 März 2017, 07:57:48
Zitat von: Benni am 20 März 2017, 07:11:19
Na ja, funktionieren sollte es auch, wenn die Datei in contrib liegen bleibt.
Passieren kann der Datei dort eigentlich auch erst mal nix, da contrib ja nicht durch update aktualisiert wird.
Moin,

klar habt ihr alle Recht, kann man machen. Allerdings mutmaße ich mal, da alle Beispiele sowohl in der commandref als auch im Wiki von einer db.conf im Ordner /opt/fhem/ ausgehen (was aus meiner Sicht auch Sinn macht)
-> nur die Hälfte , nur überflogen oder Doku gar nicht gelesen.
Und ob die Datei dann auch editiert wurde oder einfach noch im Originalzustand ist?

In meinem falsch verlinkten Workshop steht explizit drin, das man die db.conf kopieren soll.  8)

Gruß Otto
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: Benni am 20 März 2017, 08:26:29
Zitat von: Otto123 am 20 März 2017, 07:57:48
In meinem falsch verlinkten Workshop

Eben, der hat ja mit dblog erst mal nix zu tun, sondern gehört zu configDB wieso sollte den der TE gelesen haben?

Im Wiki zu DbLog (https://wiki.fhem.de/wiki/DbLog#Beispiel:_Anlegen_und_Nutzung_einer_Mysql-Datenbank) wird übrigens tatsächlich die Config-Datei direkt von contrib aus verwendet  :o
(Sollte man vielleicht mal umschreiben?)

Wie auch immer. Das ist ja jetzt nur Rechthaberei  ;D und bringt uns und den TE nicht weiter. Warten wir mal die Antwort(en) ab.
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: mrpointblue am 20 März 2017, 08:35:45
Hallo,
schonmal vielen Dank.

Ob die Datei im contrab liegt ist ja erstmal egal.
Hab das aber trotzdem direkt versucht, gleiches Ergebnis, Fhem stürzt sofort ab.
Wenn dann was nicht stimmt würde es im Log einen Fehler geben, oder bin ich da falsch?

MySQL läuft auf einem Server bzw. NAS und ist in der config entsprechend hinterlegt.

Die Zusätzlichen Bibliotheken im MySQL wurden angelegt selbst wenn dort etwas falsch wäre, sollte auch einen Fehlermeldung kommen und nicht ein kompletter Absturz bzw. ist es ja nichtmal möglich überhaupt erst eine Verbindung aufzubauen durch den Absturz.

Bei der abfrage der Rechte kommt folgendes. der db.conf
-rwxrw-rw- 1 pi pi 134 Mar 15 21:44 ./contrib/dblog/db.conf

attr global verbose 5
Bringt leider nichts, er stürzt sofort ab und schreibt nichts ins Log.

Waren ja noch ne menge Antworten. Danke
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: Benni am 20 März 2017, 08:40:28
Zitat von: mrpointblue am 20 März 2017, 08:35:45
Bei der abfrage der Rechte kommt folgendes. der db.conf
-rwxrw-rw- 1 pi pi 134 Mar 15 21:44 ./contrib/dblog/db.conf

Wie vermutet: Der user "fhem" hat keine Rechte auf die Datei. Fhem läuft normalerweise im Kontext des Users "fhem" nicht des Users "pi"

Du musst die Rechte anpassen. Etwa so:


sudo chown fhem:dialout ./contrib/dblog/db.conf


eventuell auch noch ein


sudo chmod 644 ./contrib/dblog/dblog.conf
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: mrpointblue am 20 März 2017, 09:05:59
Leider das gleiche.

Rechte sehen nun so aus
-rwxrwxrwx 1 fhem dialout 134 Mar 15 21:44 ./contrib/dblog/db.conf

Hab die Datei nochmal in fhem verschoben da kommt dann als Meldung
-rwxrwxrwx 1 fhem dialout 134 Mar 15 21:44 ./db.conf

Die dblog.conf gibt es nicht!? Wird die erst nach define angelegt?
Liegt da vielleicht der Fehler?

Leider stürzt fhem noch immer sofort ab.
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: betateilchen am 20 März 2017, 09:40:26

Zitat von: mrpointblue am 20 März 2017, 09:05:59
Die dblog.conf gibt es nicht!?

Wenn die Datei nur db.conf heißt, solltest Du nicht versuchen, auf dblog.conf zuzugreifen.
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: Otto123 am 20 März 2017, 10:05:34
Da ich sonst nichts sinnvolles zu diesem Thema beitragen kann habe ich wenigsten mal die Stellen im Wiki geändert.  ;)

Gruß Otto
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: betateilchen am 20 März 2017, 10:09:17
Wiki ist wie ein goldenes Fußkettchen: hübsch, aber nutzlos.
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: mrpointblue am 20 März 2017, 10:26:04
Hallo,
1. also die db.conf liegt nun direkt im fhem Verzeichnis.
2. folgendes steht drin
%dbconfig= (
    connection => "mysql:database=fhem;host=192.168.2.12;port=3306",
    user => "fhem",
    password => "passwort", );

3.Das define ist wie folgt:
define logdb DbLog ./db.conf .*:.*
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: Otto123 am 20 März 2017, 13:14:52
Hi,

ich habe das Beispiel aus dem Wiki (https://wiki.fhem.de/wiki/DbLog#Beispiel:_Anlegen_und_Nutzung_einer_Mysql-Datenbank) mal durchgespielt und die Beschreibung noch etwas konkretisiert. Ist so genau wie dort beschrieben nachvollziehbar und läuft. Nichts stürzt ab.

Ich wollte ja schon immer mal dblog machen :)

@mrpointblue läuft denn der mysql Server überhaupt? Geht ein connect von der Kommandozeile im System wie im Wiki beschrieben (von der Maschine wo fhem läuft)? Ist die Datenbank angelegt?

Gruß Otto
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: betateilchen am 20 März 2017, 13:51:44
Ist denn Dein mysql Server so konfiguriert, dass er auf 192.168.2.12 hört? Standardmäßig tut er das nämlich nicht.
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: Otto123 am 20 März 2017, 14:20:47
und hat der user fhem den Remote Zugriff? Standardmäßig hat er das nämlich nicht.  ;)

@betateilchen Kann es sein, wenn etwas von dem zutrifft was wir beide gerade vermuten, dass dann FHEM nicht "abstürzt" sondern die Oberfläche im define Prozess quasi endlos stecken bleibt?
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: betateilchen am 20 März 2017, 14:22:25
Zitat von: Otto123 am 20 März 2017, 14:20:47
@betateilchen Kann es sein, wenn etwas von dem zutrifft was wir beide gerade vermuten,

keine Ahnung, was Du vermutest...
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: Otto123 am 20 März 2017, 14:25:05
Zitat von: betateilchen am 20 März 2017, 14:22:25
keine Ahnung, was Du vermutest...
Na der remote Zugriff geht nicht, warum auch immer. User, Netzwerk bind-address, firewall ...
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: mrpointblue am 20 März 2017, 14:29:47
Hy,
das klingt schonmal logisch.

Unter User im MySQL ist fhem als User angelegt mit allen Rechten und als Host '%'.
Das sollte den Zugriff von überall gestatten.

Allerdings komm ich tatsächlich vom pi nicht auf die Datenbank. (MySQL läuft auf einer Synology NAS DS216j)

Da komme ich jetzt aber auch irgendwie nicht weiter.
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: Otto123 am 20 März 2017, 14:38:22
Dann prüfe mal die config (/etc/mysql/my.cnf) -> bind-address
Hört per default nur auf 127.0.0.1
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: mrpointblue am 20 März 2017, 16:04:42
Hallo laut my.cnf sollte es eigentlich passen.

[client]
port = 3306
socket = /run/mysqld/mysqld.sock

[mysqld]
bind-address = 0.0.0.0
port = 3306
socket = /run/mysqld/mysqld.sock
skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 240K
innodb_data_home_dir = /var/packages/MariaDB/target/mysql
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/packages/MariaDB/target/mysql
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
innodb_file_per_table = 1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M

[mysqlhotcopy]
interactive-timeout

# Please add your custom configuration to here:
!include /var/packages/MariaDB/etc/my.cnf
~                                           
Titel: Antw:Define dblog / Fhem stürzt ab
Beitrag von: betateilchen am 20 März 2017, 17:27:15
Zitat von: mrpointblue am 20 März 2017, 16:04:42
Hallo laut my.cnf sollte es eigentlich passen.

Nö.

Kommentiere mal die bind= Zeile aus. Und achte darauf, dass hier  /var/packages/MariaDB/etc/my.cnf nix drinsteht, was vorherige Einstellungen überschreibt.