jokay / docker-ccu-historian

Multi-platform Docker image for CCU-Historian.
https://hub.docker.com/r/xjokay/ccu-historian
MIT License
12 stars 6 forks source link

Abfrage der Datenbank per Grafana #13

Closed MoosHam closed 4 years ago

MoosHam commented 4 years ago

Moin, Danke für das Klasse Docker-Teil! Läuft auch auf Anhieb, allerdings habe ich es nicht hinbekommen, auf die Datenbank auf Port 5435 zuzugreifen. Kenne mich mit Docker noch nicht so gut aus, aber es sieht so aus, dass dieser Port auch gar nicht EXPOSED ist.

Wäre das möglich, das zu ergänzen? Habe nämlich schon Grafana in einem anderen Container laufen und möchte die Daten von CCU Historian gerne anzuapfen :-)

Vielen Dank, MoosHam

jokay commented 4 years ago

Hellu

Danke fürs Feedback 👍🏼

Die Ports 8082, 9092 und 5435 sind nun auch exposed.

Ist ab sofort im neusten container image enthalten und kann mittels docker pull xjokay/ccu-historian:latest geholt werden.

MoosHam commented 4 years ago

Super, vielen Dank für die schnelle Umsetzung! Port 8082 funktioniert auch, leider kann ich trotzdem in Grafana nicht auf den Postgresql zugreifen: ständig: read tcp 172.x.x.x:49664->192.168.x.x:5435: read: connection reset by peer

habe schon alle möglichen Varianten für Database durch, eigentlich sollte es ja diese sein: "/database/history"

eine Idee?

jokay commented 4 years ago

Ich hab das selber so nicht konfiguriert, aber die config params database.pgEnable und database.pgAllowOthers sind korrekt gesetzt (siehe auch Liste aller Optionen) und auch das Port-Mapping (z.B. 5435:5435) für den Container selber?

jokay commented 4 years ago

Habs mal getestet.

Wenn ich folgende Werte verwende, funktioniert der Login via UI (:8082):

sample-db

Default-Passwort: ccu-historian.

Der Prefix der Url entspricht dem Wert vom config param database.dir='/database'.

MoosHam commented 4 years ago

PERFEKT! Danke, das wars! database.pgEnable und database.pgAllowOthers in der Config von Hand auf true gesetzt, neu gestartet und funzt.

Kaum machts man richtig, klappts auch schon :-)

Der Login über port 8082 hat übrigens auch ohne die beiden Parameter schon funktioniert. Nur extern halt nicht...

Nochmal vielen Dank für den Docker und die rasche Hilfe!

MoosHam commented 4 years ago

image

also in Grafana klappt das wunderbar: image

Noch nicht genug Daten... Keine Ahnung was die Fehlermeldungen sagen sollen. So wie ich das verstanden habe, liegt hinter CCU-Historian eine H2 Datenbank, die nach aussen postgresql spricht. Aber in details steck ich nicht drin.

das hier ist eine beispiel query

select ts_to_unix(ts) as time, value as TempVorlauf from D_BIDCOS_RF_PEQxxxxxxx_1_TEMPERATURE where ts >= unix_to_ts($unixEpochFrom()) and ts < unix_to_ts($unixEpochTo())

bs0001 commented 1 year ago

Ich habe nach wie vor das Problem, dass ich bei der Einrichtung der datasource in Grafana die Fehlermeldung erhalte: db query error: failed to connect to server - please inspect Grafana server log for details

Die config-Parameter in der ccu-historian.config sind korrekt gesetzt (database.pgEnable und database.pgAllowOthers sowie database.dir='/database'). Per Konsole kann ich mich auf die Datenbank connecten und auch SQLs ausführen.

Die Ports im Docker der ccu-historian sind auch korrekt eingestellt. Per ccu-historian Oberfläche kann ich über die URL mit dem Port 8085 auch Charts erstellen lassen. image

image

Fehlermeldung im Protokoll: logger=tsdb.postgres t=2023-02-16T21:23:45.541938283Z level=error msg="Query error" err="read tcp 172.17.0.4:55832->192.168.1XX.XX:5435: read: connection reset by peer"

IP 192.168.1XX.XX = Synology NAS

Woran kann es noch liegen?

VG Bernd

bs0001 commented 1 year ago

Ich konnte das Problem nun wie folg lösen. Problem war, dass ich meine CCU-H-Daten nicht unter volume2/docker liegen habe, sondern auf einem anderen freigegeben Ordner im volume2. Das hatte zur Folge, dass ich in die Config-Datei reinschreiben konnte, was ich wollte, er hat sie schlichtweg nicht gelesen. Nun habe ich ausschließlich die Config-Datei unter volume2/docker/config abgelegt und diesen Pfad in der Anlage des Dockercontainers angegeben, was dann als Effekt hatte, dass ich all meine Einstellungen im Protokoll des Dockercontainers sehen konnte, dass diese gelesen und verarbeitet werden.

Hier ein Ausschnitt meines Einrichtungsskriptes für den Dockercontainer: docker run -d --restart always --name=ccu-historian \ -v /volume2/SmXXX/PRD/CCU-H/ccu-historian/data:/database \ -v /volume2/SmXXX/PRD/CCU-H/ccu-historian/:/opt/ccu-historian \ -v /volume2/SmXXX/PRD/CCU-H/ccu-historian/config:/opt/ccu-historian/config \

Das hilft hoffentlich denjenigen weiter, die ein ähnliches Problem haben.

jokay commented 1 year ago

@bs0001 danke für die Info. Normalerweise wird doch in den Logs beim Start angezeigt, welche config geladen wird?

user@docker:/home/services/ccuhistorian# docker logs ccuhistorian-app-1
2023-02-17 08:38:31|INFO   |xjokay/ccu-historian 3.3.0
2023-02-17 08:38:31|INFO   |Running database maintenance 'clean' (removes all data before 2022-02-17) ...
2023-02-17 08:38:33|INFO   |CCU-Historian V3.3.0
2023-02-17 08:38:33|INFO   |(C)MDZ (info@ccu-historian.de)
2023-02-17 08:38:34|INFO   |Starting base services
2023-02-17 08:38:34|INFO   |Connecting to database
2023-02-17 08:38:34|INFO   |Starting database web server
2023-02-17 08:38:34|INFO   |Starting cleaning of time series date before Thu Feb 17 00:00:00 CET 2022
2023-02-17 08:38:34|INFO   |Summary: 0 entries from 0 dropped (0.0 %); 0 seconds
2023-02-17 08:38:34|INFO   |Cleaning completed
2023-02-17 08:38:35|INFO   |Running database maintenance 'recalc' ...
2023-02-17 08:38:36|INFO   |CCU-Historian V3.3.0
2023-02-17 08:38:36|INFO   |(C)MDZ (info@ccu-historian.de)
2023-02-17 08:38:37|INFO   |Starting base services
2023-02-17 08:38:37|INFO   |Connecting to database
2023-02-17 08:38:37|INFO   |Starting database web server
2023-02-17 08:38:37|INFO   |Starting recalculation of compressed data points
2023-02-17 08:38:38|INFO   |Summary: 0 entries from 0 dropped (0.0 %); 0 seconds
2023-02-17 08:38:38|INFO   |Recalculation completed
2023-02-17 08:38:38|INFO   |Running database maintenance 'compact' ...
2023-02-17 08:38:39|INFO   |CCU-Historian V3.3.0
2023-02-17 08:38:39|INFO   |(C)MDZ (info@ccu-historian.de)
2023-02-17 08:38:40|INFO   |Starting base services
2023-02-17 08:38:40|INFO   |Starting compaction of database
2023-02-17 08:38:40|INFO   |Dumping database to temp.sql
2023-02-17 08:38:40|INFO   |Restoring database from temp.sql
2023-02-17 08:38:40|INFO   |Compaction of database completed
2023-02-17 08:38:40|INFO   |Starting CCU-Historian using the following config:
                           |---
                           |database.dir='/database'
                           |database.webAllowOthers=true
                           |devices.device1.address='192.168.1.101'
                           |devices.device1.type=CCU3
                           |devices.device1.plugin1.type=CUXD
                           |devices.historianAddress='192.168.1.100'
                           |devices.historianBinRpcPort=2099
                           |devices.historianXmlRpcPort=2098
                           |webServer.historianAddress='192.168.1.100'
                           |---
2023-02-17 08:38:42|INFO   |CCU-Historian V3.3.0
2023-02-17 08:38:42|INFO   |(C)MDZ (info@ccu-historian.de)
2023-02-17 08:38:43|INFO   |Starting base services
2023-02-17 08:38:43|INFO   |Connecting to database
2023-02-17 08:38:43|INFO   |Starting database web server
2023-02-17 08:38:43|INFO   |Setting up device 1
2023-02-17 08:38:43|INFO   |Creating HM script client for http://192.168.1.101:8181/tclrega.exe
2023-02-17 08:38:43|INFO   |Setting up plug-in 1
2023-02-17 08:38:43|INFO   |Configured following interfaces: BidCos-RF, HmIP-RF, SysVar, CUxD
2023-02-17 08:38:43|INFO   |Starting interfaces
2023-02-17 08:38:43|INFO   |Starting BIN-RPC server on port 2099
2023-02-17 08:38:43|INFO   |Starting XML-RPC server on port 2098
...
bs0001 commented 1 year ago

ja, schon klar. Wenn es beim ersten Mal gleich korrekt funktioniert, dann sieht man das und versteht es auch. Durch das, dass ich dabei bin, meine CCU-H vom Raspi auf die Synology zu verlagern im Docker Container, war es mein erster Versuch. Durch das, dass ich die ganzen Parameter bei der Erstellung des Docker-Containers mitgegeben habe, wurde auch die CCU-H-DB erreichbar, Von daher dachte ich, die Config wird gezogen. Nach ein paar Tests war es es klar, dass dem nicht so war. Das war dann auch der ausschlaggebende Punkt, wo ich das Problem suchen konnte. Von daher bin ich nun froh, dass der Zugriff mit Grafana nun auch funktioniert, so dass ich mich nun um die Inhalte kümmern kann. Danke im Übrigen für Dein Projekt hier!!

bs0001 commented 1 year ago

Hallo zusammen,

nachdem ja die Verbindung zur ccu-historian DB aus Grafana erfolgreich war bin ich nun an dem Punkt, dass ich keine Tabellen angezeigt bekomme. SQL-Statements werden dagegen problemlos ausgeührt. Hab auch schon diverse Sachen aus im Netz gesucht aber so wirklich sicher bin ich mir nicht, was ich ausführen soll, damit mir in der Dropdownbox die verfügbaren Tabellen angezeigt werden. Ich hoffe, jemand hat einen Tipp. image

VG Bernd

jokay commented 1 year ago

Ich nehme an das hier hast du bereits im Detail angeschaut?

Insbesondere den Hinweis betreffend Spaltenname VALUE.

bs0001 commented 1 year ago

na klar. Aber genau bei dem Punkt wird nicht drauf eingegangen. SQL ist kein Problem, das funktioniert ja. Nur queries bauen mit dem Query Builder funktioniert nicht, da keine Tabellen angezeigt werden.