solectrus / hosting

Step-by-stypes guides for installing and hosting Solectrus
9 stars 4 forks source link

SOLECTRUS nicht mehr erreichbar #37

Closed ledermann closed 7 months ago

ledermann commented 7 months ago

habe gestern morgen das Update (wie gehabt nach Deiner Anleitung) auf die 14.2 gemacht - soweit so gut, lief auch alles zunächst. Plötzlich nachmittags zeigte Solectrus "Keine Verbindung" oben rechts. Also Log aktualisiert weil ich dachte der übliche NPU-Fehler - im Log war aber nichts zu sehen, also runter in den Keller - Verbindung am Speicher steht. Also nochmal sudo reboot und docker ps probiert - scheint alles zu laufen. Aber ich kann weder über die lokale IP noch über meine dynDNS auf meine Daten zugreifen (solectrus öffnet sich nicht mehr). Ich habe aber nichts am Router verändert, am Raspberry seit dem Update auf 14.2 auch nicht mehr. Die lokale IP kann ich anpingen im Heimnetzwerk - was kann ich tun ? Mein Senec und die Senec-App laufen also der V3 liefert Daten (log geht auch). Also stimmt irgendwas am Raspberry nicht !? Kann ich noch mehr testen um den Fehler einzugrenzen ? Ich verzweifel ohne mein Solectrus unterwegs :(

Originally posted by @OnkelMF in https://github.com/solectrus/solectrus/discussions/2710#discussioncomment-8078640

ledermann commented 7 months ago

@OnkelMF Ich habe das mal hierhin verschoben, um gemeinsam auf Fehlersuche zu gehen.

Bitte erst mal prüfen, ob die Container laufen, mit docker ps - Output bitte hier posten.

Dann Log der App prüfen, mit docker logs solectrus-app-1 (Name des Container ggfs. anpassen). Bitte aktuellen Ausschnitt aus dem Log hier posten, vermutlich werden da Fehlermeldungen zu finden sein, aus denen sich das weitere Vorgehen ableiten lässt.

OnkelMF commented 7 months ago

Werde ich machen wenn ich heute nach Hause komme - ich danke Dir :)

OnkelMF commented 7 months ago

docker ps:

CONTAINER ID   IMAGE                                         COMMAND                  CREATED        STATUS                         PORTS      NAMES
504811ca5219   ghcr.io/solectrus/solectrus:latest            "docker/entrypoint.s…"   34 hours ago   Restarting (1) 3 seconds ago              solectrus-app-1
9eaab2854687   ghcr.io/solectrus/senec-collector:latest      "/bin/sh -c 'bundle …"   34 hours ago   Up 17 hours                               solectrus-senec-collect          or-1
9bc70a37df7e   ghcr.io/solectrus/forecast-collector:latest   "/bin/sh -c 'bundle …"   34 hours ago   Up 17 hours                               solectrus-forecast-coll          ector-1
87fef0bbed6f   redis:7-alpine                                "docker-entrypoint.s…"   34 hours ago   Up 17 hours (healthy)          6379/tcp   solectrus-redis-1
40f83d4c76ce   influxdb:2.7-alpine                           "/entrypoint.sh infl…"   34 hours ago   Up 17 hours (healthy)          8086/tcp   solectrus-influxdb-1
a602ac87dad8   postgres:15-alpine                            "docker-entrypoint.s…"   34 hours ago   Up 17 hours (healthy)          5432/tcp   solectrus-db-1

Woran erkenne ich den "aktuellen Teil" des logs aus "docker logs solectrus-app-1"

Die Bildschirmausgabe in Putty ist ja riesig :(

ledermann commented 7 months ago

Ok, der App-Container läuft gar nicht, sondern startet wohl immer wieder neu ("Restarting"). Demnach sind die Logs wichtig, da wird der Grund zu sehen sein. Mit folgendem Kommando lassen sich die letzten 100 Zeilen ausgeben:

docker logs solectrus-app-1 --tail 100

Mehr zum Logging: https://docs.docker.com/engine/reference/commandline/logs/

OnkelMF commented 7 months ago
db (172.18.0.4:5432) open
PostgreSQL is up and running!
Preparing database...
Database is ready!
=> Booting Puma
=> Rails 7.1.2 application starting in production
=> Run `bin/rails server --help` for more startup options
A server is already running (pid: 1, file: /app/tmp/pids/server.pid).
Exiting
Starting SOLECTRUS...
Version: v0.14.2 - 2024-01-07T19:02:01+01:00 - v0.14.2
----------------
redis (172.18.0.7:6379) open
Redis is up and running!
influxdb (172.18.0.2:8086) open
InfluxDB is up and running!
db (172.18.0.4:5432) open
PostgreSQL is up and running!
Preparing database...
Database is ready!
=> Booting Puma
=> Rails 7.1.2 application starting in production
=> Run `bin/rails server --help` for more startup options
A server is already running (pid: 1, file: /app/tmp/pids/server.pid).
Exiting
Starting SOLECTRUS...
Version: v0.14.2 - 2024-01-07T19:02:01+01:00 - v0.14.2
----------------
redis (172.18.0.7:6379) open
Redis is up and running!
influxdb (172.18.0.2:8086) open
InfluxDB is up and running!
db (172.18.0.4:5432) open
PostgreSQL is up and running!
Preparing database...
Database is ready!
=> Booting Puma
=> Rails 7.1.2 application starting in production
=> Run `bin/rails server --help` for more startup options
A server is already running (pid: 1, file: /app/tmp/pids/server.pid).
Exiting
Starting SOLECTRUS...
Version: v0.14.2 - 2024-01-07T19:02:01+01:00 - v0.14.2
----------------
redis (172.18.0.7:6379) open
Redis is up and running!
influxdb (172.18.0.2:8086) open
InfluxDB is up and running!
db (172.18.0.4:5432) open
PostgreSQL is up and running!
Preparing database...
Database is ready!
=> Booting Puma
=> Rails 7.1.2 application starting in production
=> Run `bin/rails server --help` for more startup options
A server is already running (pid: 1, file: /app/tmp/pids/server.pid).
Exiting
Starting SOLECTRUS...
Version: v0.14.2 - 2024-01-07T19:02:01+01:00 - v0.14.2
----------------
redis (172.18.0.7:6379) open
Redis is up and running!
influxdb (172.18.0.2:8086) open
InfluxDB is up and running!
PostgreSQL is up and running!
Preparing database...
db (172.18.0.4:5432) open
Database is ready!
=> Booting Puma
=> Rails 7.1.2 application starting in production
=> Run `bin/rails server --help` for more startup options
A server is already running (pid: 1, file: /app/tmp/pids/server.pid).
Exiting
Starting SOLECTRUS...
Version: v0.14.2 - 2024-01-07T19:02:01+01:00 - v0.14.2
----------------
redis (172.18.0.7:6379) open
Redis is up and running!
influxdb (172.18.0.2:8086) open
InfluxDB is up and running!
db (172.18.0.4:5432) open
PostgreSQL is up and running!
Preparing database...
Database is ready!
=> Booting Puma
=> Rails 7.1.2 application starting in production
=> Run `bin/rails server --help` for more startup options
A server is already running (pid: 1, file: /app/tmp/pids/server.pid).
Exiting
Starting SOLECTRUS...
Version: v0.14.2 - 2024-01-07T19:02:01+01:00 - v0.14.2
----------------
redis (172.18.0.7:6379) open
Redis is up and running!
influxdb (172.18.0.2:8086) open
InfluxDB is up and running!
db (172.18.0.4:5432) open
PostgreSQL is up and running!
Preparing database...
Database is ready!
ledermann commented 7 months ago

Die relevante Zeile ist die hier:

A server is already running (pid: 1, file: /app/tmp/pids/server.pid).

War hier vielleicht ein Stromausfall o.ä. im Spiel? Versuche mal folgendes:

docker compose down
docker rm solectrus-app-1
docker compose up -d

https://docs.docker.com/engine/reference/commandline/rm/

Damit wird der Container gelöscht (und damit sein tmp-Ordner). Beim nächsten Start sollte es dann wieder funktionieren.

Ansonsten noch härter diese Möglichkeit:

docker compose down
docker system prune
docker compose up -d

https://docs.docker.com/engine/reference/commandline/system_prune/

OnkelMF commented 7 months ago

Hallo Georg,

eigentlich gab es keinen Ausfall. Ich saß ja am Mac als plötzlich „keine Verbindung“ erschien. Danach hab ich den Raspy aus und wieder angeschaltet aber das Problem lies sich nicht lösen. Sind nach Deiner Methode die alten Daten weg oder bleibt das bisherige Datenmaterial vorhanden ? Wäre schade sonst 😉

ledermann commented 7 months ago

"Keine Verbindung" klingt nach der Status-Anzeige von SOLECTRUS. Wenn die erscheint, kommen keine Daten mehr in InfluxDB an - SOLECTRUS selbst läuft aber weiterhin.

"Raspi aus und wieder an" könnte aber die Ursache sein, zumindest wenn du das auf die harte Tour mit dem Power-Schalter gemacht hast. Auch ein Raspi will korrekt heruntergefahren werden.

Zu meinem Vorschlag: Nein, da geht nichts verloren. Wenn der Container gelöscht wird (mit docker rm), dann sind nur temporäre Dinge weg, das ist völlig unkritisch. Alles Wichtige steckt in den Volumes von PostgreSQL und InfluxDB. Der zweite Vorschlag mit docker system prune löscht zwar mehr, aber auch nichts Kritisches. Genaueres findet sich in den beiden Links.

OnkelMF commented 7 months ago

hmm das Verzeichnis kann ich irgendwie nicht löschen:

Error response from daemon: No such container: solectrus-app-1

egal ob im Verzeinis Solectrus oder im Root-Verzeichnis.

Aber allein

docker compose down und dann docker compose up -d

haben das Problem gelöst - wo auch immer es her kam ich kann wieder an mein Solectrus und bin glücklich !

Danke !!

ledermann commented 7 months ago

Prima, freut mich!

Nur als Ergänzung: Mit docker rm wird kein Verzeichnis gelöscht, sondern ein beendeter Docker-Container. Ich bin irgendwie davon ausgegangen, dass du ein "down & up" bereits versucht hattest. Denn mit docker compose down werden normalerweise auch die Container gelöscht.