fhem / fhem-docker

A basic Docker image for FHEM house automation system, based on Debian Linux.
https://fhem.de/
MIT License
85 stars 27 forks source link

health report failed #236

Closed juniorfux closed 2 months ago

juniorfux commented 3 months ago

Seit dem letzten Update schlägt der Health Check unter Docker fehl. Der Container wird von Autheal in Dauerschleife gebootet.

CheckMK berichtet:

Health status: StartingWARN, Last health report: Cannot read url file /tmp/health-check.urlsWARN, Health test: CMD-SHELL /health-check.sh`

sidey79 commented 3 months ago

Welches Image und mit welchen Parametern hast Du das Image gestartet?

juniorfux commented 3 months ago

Image habe ich das letzte, vor dem Update vor ca 6 Tagen bestand der Fehler nicht.

Seit dem habe ich den Container neu erstellt und die temp. Verzeichnisse dabei gelöscht, bringt nichts. 

 

Gestartet wird es aus eine compose:

 

 fhem:     ports:        - "8083:8083"     image: fhem/fhem

    container_name: fhem     networks:       - fhem     volumes:       - /docker/data/fhem:/opt/fhem     restart: always     environment:       TZ: "Europe/Berlin"

 

Gruß

 

Manuel

Gesendet: Dienstag, 04. Juni 2024 um 20:05 Uhr Von: "sidey79" @.> An: "fhem/fhem-docker" @.> Cc: "juniorfux" @.>, "Author" @.> Betreff: Re: [fhem/fhem-docker] health report failed (Issue #236)

 

Welches Image und mit welchen Parametern hast Du das Image gestartet?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

sidey79 commented 3 months ago

Ich nehme an, folgendes Image läuft dann:

https://hub.docker.com/layers/fhem/fhem/4.0.0-bullseye/images/sha256-4796285fd47404e5120c347e943b0dcbccf722ddea2d411f30cea057d1a88c8b?context=explore

Wie sind deine Fhemweb Instanzen konfiguriert? Ist der Zugriff von Localhost erlaubt?

juniorfux commented 3 months ago

Leider nein, läuft nicht :(

Ähm, weiß nicht...

 

define WEB FHEMWEB 8083 global setuuid WEB 5d69704a-f33f-162e-483a-de01443ff95b1648 attr WEB JavaScripts codemirror/fhem_codemirror.js hausautomatisierung-com/custom.js attr WEB alias WEB (8083) attr WEB codemirrorParam { "lineWrapping": true, "height": "auto" } attr WEB confirmDelete 0 attr WEB confirmJSError 0 attr WEB editConfig 1 attr WEB group Web-Access attr WEB icon it_i-net attr WEB longpoll websocket attr WEB menuEntries DOIFtools,/fhem?detail=DOIFtools,haus-automatisierung.com,https://haus-automatisierung.com/ attr WEB plotWeekStartDay 1 attr WEB room System attr WEB roomIcons Homekit:audio_audio Log:edit_paste Logfile:edit_paste System:it_nas Interfaces:it_network Save.config:message_attention Tablet-UI:smartphone Everything:it_i-net Unsorted:unknown Commandref:system_fhem Remote.doc:message_mail Edit.files:edit_copy Select.style:edit_open Event.monitor:edit_settings DOIFtools:helper_doiftools haus-automatisierung.com:it_internet attr WEB stylesheetPrefix dark attr WEB title { if ($FW_room) { "FHEM: $FW_room" } elsif ($FW_detail) { "FHEM: $FW_detail" } else { "FHEM" } }

attr WEB hiddenroom Everything

 

define WEBphone FHEMWEB 8085 global setuuid WEBphone 5c6456d3-f33f-b032-b0bf-e79e2bbfb29193a3 attr WEBphone alias WEBphone (8085) attr WEBphone csrfToken none attr WEBphone group Web-Access attr WEBphone icon it_i-net attr WEBphone longpoll 1 attr WEBphone room System attr WEBphone stylesheetPrefix smallscreen

das der Auszug aus der config  

Gesendet: Mittwoch, 05. Juni 2024 um 12:29 Uhr Von: "sidey79" @.> An: "fhem/fhem-docker" @.> Cc: "juniorfux" @.>, "Author" @.> Betreff: Re: [fhem/fhem-docker] health report failed (Issue #236)

 

Ich nehme an, folgendes Image läuft dann:

https://hub.docker.com/layers/fhem/fhem/4.0.0-bullseye/images/sha256-4796285fd47404e5120c347e943b0dcbccf722ddea2d411f30cea057d1a88c8b?context=explore

Wie sind deine Fhemweb Instanzen konfiguriert? Ist der Zugriff von Localhost erlaubt?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

tarnkappe81 commented 3 months ago

Ich hab das gleiche Problem. Die Ursache ist, dass die Datei /tmp/health-check.urls nicht erstellt wird. Per "echo "http://localhost:8083/fhem" > /tmp/health-check.urls" kann man es temporär fixen, natürlich nur bis der Container neu erstellt wird.

sidey79 commented 3 months ago

Und wenn Sie erstellt ist, hat sie dann einen Inhalt?

Was bekommst Du denn wenn Du:

list DockerImageInfo

in FHEM ausführst?

tarnkappe81 commented 3 months ago

Sorry, verstehe die Frage nicht. Sobald die Datei erstellt ist mit o.g. Inhalt, klappt der Health-Check wieder. Und genau darum ging es doch, oder?

sidey79 commented 3 months ago

Okay, ändert sich der Inhalt in der Datei oder bleibt es so wie Du sie angelegt hast?

Das List würde mich vielleicht der Ursache etwas näher bringen. Mit den Fhemweb Instanzen von oben habe ich es nachgestellt. Alles funktioniert einwandfrei und automatisch.

tarnkappe81 commented 3 months ago

Die Datei wird nicht verändert. Funktioniert zuverlässig solange der Container nicht zerstört wird.

"list DockerImageInfo" kenne ich gar nicht und funktioniert auch nicht bei mir. Liegt vielleicht daran, dass ich vorher kein Docker für FHEM benutzt habe und die Konfiguration übernommen hatte.

sidey79 commented 3 months ago

@tarnkappe81 Ohne das dockerImageInfo funktioniert es nicht.

Wie bist Du vorgegangen? Container gestartet und dann eine andere FHEM Config eingespielt?

tarnkappe81 commented 3 months ago

Puh, weiß ich nicht leider nicht mehr. Schon länger her. Aber ich habs inzwischen gefunden und manuell eingerichtet:

Internals: CFGFN
FUUID 6660c933-f33f-2685-629d-d7214512b76f78c5 INFO_DIR /tmp NAME DockerImageInfo NR 193 NTFY_ORDER 50-DockerImageInfo RESULT_FILE /tmp/health-check.result STATE Initialized TYPE DockerImageInfo URL_FILE /tmp/health-check.urls eventCount 1 READINGS: 2024-06-05 22:23:15 container.cap.e audit_write,chown,dac_override,fowner,fsetid,kill,mknod,net_bind_service,net_raw,setfcap,setgid,setpcap,setuid,sys_chroot

 2024-06-05 22:23:15   container.cap.i none

 2024-06-05 22:23:15   container.cap.p audit_write,chown,dac_override,fowner,fsetid,kill,mknod,net_bind_service,net_raw,setfcap,setgid,setpcap,setuid,sys_chroot

 2024-06-05 22:23:15   container.hostname 9ee52ef264cb

 2024-06-05 22:23:15   container.hostnetwork 0

 2024-06-05 22:23:15   container.privileged 0

 2024-06-05 22:23:15   id.gid          6061
 2024-06-05 22:23:15   id.gname        fhem
 2024-06-05 22:23:15   id.groups       [ "fhem": 6061, "tty": 5, "mail": 8, "dialout": 20, "audio": 29, "video": 44, "bluetooth": 6001, "gpio": 6002, "i2c": 6003 ]
 2024-06-05 22:23:15   id.uid          6061
 2024-06-05 22:23:15   id.uname        fhem
 2024-06-05 22:23:15   image.created   2024-05-30T11:40:22.403Z
 2024-06-05 22:23:15   image.description A full blown Docker image for FHEM house automation system, based on Debian Perl -bullseye.
 2024-06-05 22:23:15   image.documentation https://github.com/fhem/fhem-docker/blob/90726b917c3fb8c9189d81aab561b7418f5ba809/README.md
 2024-06-05 22:23:15   image.licenses  MIT
 2024-06-05 22:23:15   image.revision  90726b917c3fb8c9189d81aab561b7418f5ba809
 2024-06-05 22:23:15   image.source    https://github.com/fhem/fhem-docker/
 2024-06-05 22:23:15   image.title     fhem-linux/arm64
 2024-06-05 22:23:15   image.url       https://hub.docker.com/r/fhem/fhem-linux/arm64
 2024-06-05 22:23:15   image.vendor    FHEM
 2024-06-05 22:23:15   image.version   4.0.0-bullseye
sidey79 commented 3 months ago

ok, jetzt sollte die Datei /tmp/health-check.urls automatisch erstellt werden.

Mal schauen ob mir was bezüglich fehlendem DockerImageInfo einfällt.

juniorfux commented 3 months ago

Sorry, ich habe den Faden verloren... Ja, ich habe den Container erstellt und im mount-Verzeichnis lag bereits (m)eine fhem.cfg. Mit "echo "http://localhost:8083/fhem" > /tmp/health-check.urls" funktioniert der Health-Check nun, der Container ist gesund.

Was hat es mit der DockerImageInfo auf sich? Auch bei mir nicht vorhanden, vermute aufgrund der eigenen Konfig.

sidey79 commented 3 months ago

DockerImageInfo ist notwendig, damit der Container funktioniert. Kurz gesagt, es legt die bei dir fehlende Datei an.

Es müsste auch in den Logs zu finden sein, dass die Datei nicht gelesen werden kann.

DockerImageInfo wird immer dann in die fhem.cfg angelegt, wenn der Container das 1. mal gestartet wird.

Wenn danach die FHEM.cfg getauscht wird, dann fehlt es.

juniorfux commented 3 months ago

danke, das ist das ja noch komischer.

Bis zum letzten Update hat die Konfig, Jahre alt, funktioniert, mit HealthCheck....

 

Kannst Du mir die Einträge der fhem.cfg für das DockerImageInfo kurz kopieren?

   

Gesendet: Donnerstag, 06. Juni 2024 um 07:18 Uhr Von: "sidey79" @.> An: "fhem/fhem-docker" @.> Cc: "juniorfux" @.>, "Author" @.> Betreff: Re: [fhem/fhem-docker] health report failed (Issue #236)

 

DockerImageInfo ist notwendig, damit der Container funktioniert. Kurz gesagt, es legt die bei dir fehlende Datei an.

Es müsste auch in den Logs zu finden sein, dass die Datei nicht gelesen werden kann.

DockerImageInfo wird immer dann in dir fhem.cfg angelegt, wenn der Container das 1. mal gestartet wird.

Wenn danach die FHEM.cfg getauscht wird, dann fehlt es.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

sidey79 commented 3 months ago

Hier die Definition vom DockerImageInfo:

https://github.com/fhem/fhem-docker/blob/90726b917c3fb8c9189d81aab561b7418f5ba809/src/entry.sh#L523

Das Docker Image hat einen Major Releasewechsel hinter sich. Seit Version 4 wird kein Telnetdevice mehr benötigt, dafür übernimmt dockerImageInfo jetzt die Aufgabe die FHEM Web Instanzen zu identifizieren.

derbmann commented 2 months ago

Hi, hab seit dem Update das gleiche Problem.

DockerImageInfo steht in der fhem.cfg

define DockerImageInfo DockerImageInfo
setuuid DockerImageInfo 6397841c-f33f-2b09-8be3-b9bf707eb5960732
attr DockerImageInfo alias Docker Image Info
attr DockerImageInfo devStateIcon ok:security@green Initialized:system_fhem_reboot@orange .*:message_attention@red
attr DockerImageInfo group System
attr DockerImageInfo icon docker
attr DockerImageInfo room System

Logfile zeigt folgenden Fehler beim Startup.:

2024.06.29 10:40:41 3: logfile is readonly, it is set in the FHEM_GLOBALATTR environment
2024.06.29 10:40:41 1: reload: Error:Modul 99_DockerImageInfo deactivated:
 Global symbol "$unicodeEncoding" requires explicit package name (did you forget to declare "my $unicodeEncoding"?) at ./FHEM/99_DockerImageInfo.pm line 94.
2024.06.29 10:40:41.130 3: pidfilename is readonly, it is set in the FHEM_GLOBALATTR environment
2024.06.29 10:40:41.130 3: From the FHEM_GLOBALATTR environment: attr global pidfilename log/fhem.pid
2024.06.29 10:40:41.131 3: From the FHEM_GLOBALATTR environment: attr global logfile log/fhem-%Y-%m-%d.log
2024.06.29 10:40:41.131 3: From the FHEM_GLOBALATTR environment: attr global nofork 0
2024.06.29 10:40:41.131 3: From the FHEM_GLOBALATTR environment: attr global updateInBackground 1
2024.06.29 10:40:41.132 1: Including fhem.cfg
2024.06.29 10:40:41.133 3: logfile is readonly, it is set in the FHEM_GLOBALATTR environment
2024.06.29 10:40:41.136 1: PERL WARNING: Subroutine DockerImageInfo_Initialize redefined at ./FHEM/99_DockerImageInfo.pm line 8, <$fh> line 9.
2024.06.29 10:40:41.136 1: PERL WARNING: Subroutine DockerImageInfo_Define redefined at ./FHEM/99_DockerImageInfo.pm line 21, <$fh> line 9.
2024.06.29 10:40:41.136 1: reload: Error:Modul 99_DockerImageInfo deactivated:
 Global symbol "$unicodeEncoding" requires explicit package name (did you forget to declare "my $unicodeEncoding"?) at ./FHEM/99_DockerImageInfo.pm line 94, <$fh> line 9.
2024.06.29 10:40:41.137 3: pidfilename is readonly, it is set in the FHEM_GLOBALATTR environment
2024.06.29 10:40:41.187 3: WEB: port 8083 opened
2024.06.29 10:40:41.203 2: eventTypes: loaded 919 lines from ./log/eventTypes.txt
2024.06.29 10:40:41.205 1: PERL WARNING: Subroutine DockerImageInfo_Initialize redefined at ./FHEM/99_DockerImageInfo.pm line 8, <$fh> line 43.
2024.06.29 10:40:41.206 1: PERL WARNING: Subroutine DockerImageInfo_Define redefined at ./FHEM/99_DockerImageInfo.pm line 21, <$fh> line 43.
2024.06.29 10:40:41.206 1: reload: Error:Modul 99_DockerImageInfo deactivated:
 Global symbol "$unicodeEncoding" requires explicit package name (did you forget to declare "my $unicodeEncoding"?) at ./FHEM/99_DockerImageInfo.pm line 94, <$fh> line 43.
2024.06.29 10:40:41.206 0: Global symbol "$unicodeEncoding" requires explicit package name (did you forget to declare "my $unicodeEncoding"?) at ./FHEM/99_DockerImageInfo.pm line 94, <$fh> line 43.
2024.06.29 10:40:41.315 3: AptToDate (fhemServerApt) - defined
sidey79 commented 2 months ago

Seltsam, Welches Image wurde hier verwendet?

Und welchen Versionsstand hat FHEM

sidey79 commented 2 months ago

Das was da fehlt wird in FHEM.pl definiert: $unicodeEncoding).

derbmann commented 2 months ago

Ubuntu VM fhem/fhem:latest

**FHEM Installer Status**
cpanminusVersion
1.7047
2024-01-26 17:37:16
outdatedPerl
check completed
2024-06-29 03:08:03
perlVersion
5.036003
2024-06-09 21:09:58
state
up to date
2024-06-29 18:04:10
updatesAvailablePerl
0
2023-06-19 03:19:50

**Node.js Package Update Status**
installed
successful
2024-06-29 10:27:35
nodejsVersion
18.20.3
2024-06-10 01:16:10
outdated
check completed
2024-06-29 10:27:37
state
npm is up to date
2024-06-29 10:27:37
updated
error
2024-06-29 10:27:26
updatesAvailable
0
2024-06-29 10:27:37

Package Name    Installed Version
corepack    0.28.2
npm 10.8.1

**System Update Status**
DEF 
localhost
FUUID
6397841c-f33f-2b09-63e2-99d4c30bd7d54f34
FVERSION
42_AptToDate.pm:v1.4.5-s19639/2019-06-18
HOST
localhost
NAME
fhemServerApt
NOTIFYDEV
global,fhemServerApt
NR
15
NTFY_ORDER
50-fhemServerApt
STATE
system is up to date
TYPE
AptToDate
VERSION
v1.4.5

os-release_BUG_REPORT_URL
https://bugs.debian.org/
2023-01-03 22:05:58
os-release_HOME_URL
https://www.debian.org/
2023-01-03 22:05:58
os-release_ID
debian
2023-01-03 22:05:58
os-release_NAME
Debian GNU/Linux
2023-01-03 22:05:58
os-release_PRETTY_NAME
Debian GNU/Linux 11 (bullseye)
2024-06-29 18:05:12
os-release_SUPPORT_URL
https://www.debian.org/support
2023-01-03 22:05:58
os-release_VERSION
11 (bullseye)
2024-06-29 18:05:12
os-release_VERSION_CODENAME
bullseye
2024-06-29 18:05:12
os-release_VERSION_ID
11
2024-06-29 18:05:12
os-release_language
en
2023-01-03 22:05:58
repoSync
fetched done
2024-06-29 03:08:00
state
system is up to date
2024-06-29 18:09:26
toUpgrade
successful
2024-06-29 10:28:18
updatesAvailable
0
2024-06-29 10:28:19

**Version**
Latest Revision: 25194
File                      Rev   Last Change

fhem.pl                   25193 2021-11-07 13:29:44Z rudolfkoenig
96_allowed.pm             24751 2021-07-15 12:46:01Z rudolfkoenig
42_AptToDate.pm           19639 2019-06-18 13:43:31Z CoolTux
98_autocreate.pm          23727 2021-02-12 20:31:37Z rudolfkoenig
57_Calendar.pm            25029 2021-09-28 15:32:14Z neubert
00_CUL.pm                 24815 2021-08-01 16:14:02Z rudolfkoenig
No Id found for 99_DockerImageInfo.pm
98_DOIF.pm                24905 2021-09-01 18:35:54Z Damian
98_dummy.pm               20665 2019-12-06 11:05:35Z rudolfkoenig
10_EnOcean.pm             24853 2021-08-16 06:28:44Z klaus.schauer
91_eventTypes.pm          23471 2021-01-04 19:24:21Z rudolfkoenig
01_FHEMWEB.pm             25189 2021-11-06 10:25:54Z rudolfkoenig
92_FileLog.pm             24967 2021-09-13 16:09:40Z rudolfkoenig
98_help.pm                25013 2021-09-23 21:07:00Z betateilchen
98_Installer.pm           20949 2020-01-12 09:53:11Z loredo
10_IT.pm                  20839 2019-12-28 09:41:47Z bjoernh
00_MQTT2_CLIENT.pm        24982 2021-09-16 16:25:40Z rudolfkoenig
10_MQTT_GENERIC_BRIDGE.pm 25117 2021-10-25 11:05:19Z hexenmeister
91_notify.pm              25181 2021-11-04 17:44:00Z rudolfkoenig
42_npmjs.pm               20933 2020-01-10 12:27:41Z loredo
16_STACKABLE_CC.pm        18467 2019-01-31 08:02:51Z rudolfkoenig
99_SUNRISE_EL.pm          24249 2021-04-14 05:45:49Z rudolfkoenig
98_SVG.pm                 25189 2021-11-06 10:25:54Z rudolfkoenig
00_TCM.pm                 25016 2021-09-24 14:42:44Z klaus.schauer
98_telnet.pm              23727 2021-02-12 20:31:37Z rudolfkoenig
99_Utils.pm               24128 2021-04-02 16:29:11Z rudolfkoenig
98_version.pm             15140 2017-09-26 09:20:09Z markusbloch

AttrTemplate.pm           25155 2021-10-30 12:48:21Z rudolfkoenig
Blocking.pm               23268 2020-12-01 11:48:48Z rudolfkoenig
Color.pm                  20813 2019-12-22 18:42:10Z justme1968
DevIo.pm                  24800 2021-07-26 11:42:33Z rudolfkoenig
GPUtils.pm                19666 2019-06-20 11:17:29Z CoolTux
HttpUtils.pm              25103 2021-10-22 12:00:39Z rudolfkoenig
Meta.pm                   21008 2020-01-18 10:22:10Z loredo
RTypes.pm                 10476 2016-01-12 21:03:33Z borisneubert
SetExtensions.pm          23300 2020-12-06 11:36:24Z rudolfkoenig
SubProcess.pm             14334 2017-05-20 23:11:06Z neubert
TcpServerUtils.pm         23472 2021-01-04 19:56:38Z rudolfkoenig
TimeSeries.pm             22980 2020-10-17 09:21:43Z neubert

doif.js                    24438 2021-05-14 18:08:18Z Ellert
f18.js                     24575 2021-06-03 09:52:42Z rudolfkoenig
fhemweb.js                 25022 2021-09-27 07:11:18Z rudolfkoenig

fhem.pl.txt

Brauchst du sonst noch irgendeine Info?

btw danke für deine Mühe und für das gesamte Projekt.

sidey79 commented 2 months ago

@derbmann Dein FHEM Version ist einfach zu alt. Ich baue eine Logmeldung in das image ein, die gibt dann einen Hinweis wenn die revision zu alt ist.

derbmann commented 2 months ago

Danke, Container Status Healthy

Seit min. ende 2022 hab ich dein Image laufen, anfangs auf nen Pi4 aber das ich fhem auch noch updaten muss war mir nicht klar. Hab damals wie denke ich viele andere deine Anleitung nur überflogen (Stichwort "Update strategy"...) aber evtl. kannst unter System auch noch ein Device mit dem fhem update status machen wie z.b. das System Update Status. Dann sollte jeder sehen das ein fhem update ansteht :)