All 946 errors are DST timezone conversion failures (pytz.exceptions.NonExistentTimeError).
Cause: Israel DST transition on 2026-03-27 โ clocks skip 02:00โ03:00, so times between 02:00-02:59 don't exist.
Impact: Non-critical. Invalid timestamps are skipped; MQTT data ingestion continues normally.
Sample:
2026-03-27 05:00:53,347 [ERROR] django: Skipping invalid timestamp 1774576807.0
pytz.exceptions.NonExistentTimeError: 2026-03-27 02:00:07
2026-03-27 05:00:53,348 [ERROR] django: Error converting epoch to UTC: 2026-03-27 02:05:06
pytz.exceptions.NonExistentTimeError: 2026-03-27 02:05:06
Pattern repeats for timestamps 02:00 through 02:55 across multiple controller data batches.
MQTT processing confirmed working โ messages queued, ACKed, and saved successfully.
Celery Worker Warnings 9 warningsโถ
Benign startup warnings across 9 rotated worker log files (worker-error.log.2 through .10):
[2026-03-27 05:00:13,627: WARNING/MainProcess] No communication channel selected
[2026-03-27 05:00:13,565: WARNING/MainProcess] No communication channel selected
...repeated in each worker log rotation
This is a standard Celery message when no result backend is configured. Non-critical.
Gunicornโถ
No errors found today (2026-03-27). โ
Celery Beatโถ
No errors found today (2026-03-27). โ
Mosquittoโถ
No errors found today (2026-03-27). โ
Nginx Permission Deniedโถ
Cannot read /var/log/nginx/error.log โ Permission denied for svcmon_w7k user.
Service is confirmed active via systemctl. Log access requires permission fix.
Supervisorโถ
No errors found today (2026-03-27). โ
Note: supervisorctl status returned permission error for read-only user, but systemd confirms service is active.
๐๏ธ Database Summary
Database
Tables
Status
c1waterokdb
44
Accessible
dbispconfig
77
Accessible
phpmyadmin
19
Accessible
roundcube
15
Accessible
155 tables total ยท Query time: 28ms
๐ก Recommended Actions
Medium Priority
Fix DST handling in Django. Replace pytz with zoneinfo (Python 3.9+) or dateutil to handle non-existent times during DST transitions. This will eliminate ~946 error log entries per DST switch. The current code in the MQTT data handler tries to localize epoch timestamps to Israel time but crashes on the skipped hour.
Low Priority
Grant nginx log read access to svcmon_w7k. Add the monitoring user to the adm group or adjust /var/log/nginx/error.log permissions so the health check can read nginx errors.
Low Priority
Celery "No communication channel selected". Configure a result backend (e.g., Redis or RabbitMQ) or suppress this warning in Celery settings if result tracking is not needed.