Kürzlich wurde auf meinem Pi24-Horchposten die neueste Version von fr24feed installiert: 1.0.26-4, Built on Sep 14 2020 08:32:40 (HEAD-bd20105.git/Linux/static_armel).
Umgehend reagierten meine monit Netzwerksensoren:
Connection failed Service pi24.domain.tld Date: Mon, 14 Sep 2020 19:03:03 Action: alert Host: HOST Description: failed protocol test [HTTP] at [10.1.2.3]:8754 [TCP/IP] -- HTTP error: Regular expression doesn't match: No match Your faithful employee, Monit
Als ich auf das Web-Interface zugreifen wollte erschien auch tatsächlich folgende Fehlermeldung:
For security reasons the web interface is only availble from private class networks or after you have manually specified the bind-interface setting in /etc/fr24feed.ini Please set it to bind-interface="0.0.0.0" to accept traffic from all interfaces or to the IP address of your preferred network interface! For further assistance please contact support@fr24.com
Komisch! Nun gut, ich fügte also bind-interface="0.0.0.0" ans Ende der Datei /etc/fr24feed.ini und bootete den Pi24 neu. Das schaffte keine Abhilfe.
Selbst wenn ich auf dem Pi24 selber ein wget localhost:8754 respektive wget 127.0.0.1:8754 machte, erschien die Fehlermeldung.
Ich tüftelte noch eine Weile lang herum, und entdeckte dabei folgendes: Die neuste Version von fr24feed bindet sich aus irgendeinem Grund nur an IPv6:
$ netstat -tulpn ... Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp6 0 :::8754 :::* LISTEN - ...
Ein Eintrag für denselben Port beginnend mit tcp fehlte.
Das CHANGELOG zeigt auf, dass die Kollegen aktuell an den Netzwerkfunktionalitäten von fr24feed rumbasteln und dabei bereits mehrere Male nachbessern mussten. Offenbar ist auch die neuste Version noch nicht ganz koscher.
Ein Blick in das Log von fr24feed zeigte folgende Einträge:
2020-09-14 20:10:02 | ______ _ _ _ _ _ _____ ___ 2020-09-14 20:10:02 | | ___|| |(_) | | | | | | / __ \ / | 2020-09-14 20:10:02 | | |_ | | _ __ _ | |__ | |_ _ __ __ _ __| | __ _ _ __`' / /' / /| | 2020-09-14 20:10:02 | | _| | || | / _` || '_ \ | __|| '__|/ _` | / _` | / _` || '__| / / / /_| | 2020-09-14 20:10:02 | | | | || || (_| || | | || |_ | | | (_| || (_| || (_| || | ./ /___\___ | 2020-09-14 20:10:02 | \_| |_||_| \__, ||_| |_| \__||_| \__,_| \__,_| \__,_||_| \_____/ |_/ 2020-09-14 20:10:02 | __/ | 2020-09-14 20:10:02 | |___/ 2020-09-14 20:10:02 | [main][i]FR24 Feeder/Decoder 2020-09-14 20:10:02 | [main][i]Version: 1.0.26-4/generic 2020-09-14 20:10:02 | [main][i]Built on Sep 14 2020 08:32:40 (HEAD-bd20105.git/Linux/static_armel) 2020-09-14 20:10:02 | [main][i]Running on: pi24-raspbian9 2020-09-14 20:10:02 | [main][i]Local IP(s): 2020-09-14 20:10:02 | [main][i]Copyright 2012-2020 Flightradar24 AB 2020-09-14 20:10:02 | [main][i]https://www.flightradar24.com 2020-09-14 20:10:02 | [main][i]DNS mode: PING 2020-09-14 20:10:03 | [main][i]Automatic updates are ENABLED 2020-09-14 20:10:04 | ERROR: rmmod: ERROR: Module dvb_usb_rtl28xxu is not currently loaded 2020-09-14 20:10:04 | info | [httpd]Server started, listening on ::2020-09-14 20:10:04 | [e]PacketSenderConfiguration::fetch_config(): Unable to fetch configuration for yoda receiver 2020-09-14 20:10:06 | [d]TLSConnection::ctor(): Enable verify_peer in production code! 2020-09-14 20:10:06 | [main][i]Reader thread started 2020-09-14 20:10:06 | [main][i]Socket server started 2020-09-14 20:10:06 | [main][i]MLAT data feed started 2020-09-14 20:10:06 | [reader][i]Initializing reader 2020-09-14 20:10:06 | [reader][i]Connecting to DVBT receiver via (exe:///usr/bin/dump1090-mutability --raw --mlat) 2020-09-14 20:10:06 | [bs][i]Initializing server 2020-09-14 20:10:06 | [bs][i]Starting server on 0.0.0.0:30003 2020-09-14 20:10:06 | [mlat][i]Waiting for MLAT configuration 2020-09-14 20:10:06 | [master][i]Starting processing thread 2020-09-14 20:10:06 | [reader][i]Connected to the receiver, configuring 2020-09-14 20:10:06 | [reader][i]Configured, processing messages 2020-09-14 20:10:07 | terminate called after throwing an instance of 'char const*'
Interessant sind folgende Zeilen:
... 2020-09-14 20:10:02 | [main][i]Local IP(s): ... 2020-09-14 20:10:04 | info | [httpd]Server started, listening on :: ... 2020-09-14 20:10:07 | terminate called after throwing an instance of 'char const*'
Komisch! Dem Problem konnte ich nicht auf den Grund gehen, wieso fr24feed die IP des Raspberry Pis nicht herausfinden konnte. strace könnte hier wohl weiterhelfen, doch das ging mir dann doch etwas zu weit. Schlussendlich hatte ich genug und entschied ich mich für ein Downgrade auf eine „last known good“ Version:
$ wget "https://repo.feed.flightradar24.com/rpi_binaries/fr24feed_1.0.25-3_armhf.deb" --no-check-certificate # dpkg -i fr24feed_1.0.25-3_armhf.deb
Damit die neueste Version am nächsten Tag nicht erneut installiert wird, habe ich auch noch /etc/cron.d/fr24feed_updater angepasst:
47 9 1 * * root /usr/lib/fr24/fr24feed_updater.sh >> /var/log/fr24feed_update.log 2>&1
Hoffen wir, dass es bis zum 1. Oktober eine neue Version gibt, die mein Problem behebt.