Only what stays true across updates: services, data paths, the data owner, how to fix an ownership problem, how to check the result. Versions and the update path are the workflow's job. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3.4 KiB
Grafana i InfluxDB — VM103
Projekt compose grafana, dwie usługi z osobnym cyklem aktualizacji: grafana i influxdb. Aktualizując jedną, nie ruszaj drugiej.
Grafana
Obraz grafana/grafana, domena grafana.mariuszpacek.pl, port 3000, bez healthchecka.
Dane: /var/lib/grafana ← /srv/appdata/grafana/data, /etc/grafana ← /srv/appdata/grafana/etc.
Obraz nie ma etykiety OCI z wersją: wersję czyta się z tagu, a gdy compose ma sam digest, bez tagu — grafana-server -v w kontenerze. Nie zgaduj wersji.
Źródła: wydania, co nowego, przewodnik upgrade, obraz Docker.
Odbiór: kontener działa na przypiętym obrazie; HTTPS na / daje 302 na /login (to nie błąd); dashboardy się ładują, a źródło danych InfluxDB odpowiada bez błędu.
InfluxDB
Obraz influxdb, port 192.168.0.139:18086, domena influxdb.mariuszpacek.pl. Piszą do niej m.in. Telegraf, traefik, OPNsense i czujniki domowe; czyta Grafana.
Dane: /var/lib/influxdb ← /srv/appdata/grafana/influxdb (kilkadziesiąt GB), właściciel 1000:1000, tryb 700. Usługa działa z user: "1000:1000" w compose — to musi zostać przy każdej aktualizacji.
Źródła: release notes, upgrade, backup i restore.
Kopia: codzienny vzdump VM103 obejmuje dysk z /srv/appdata; workflow sprawdza jego świeżość i kopiuje compose przed zmianą. Nie wymagaj dodatkowej kopii influxd backup.
Znany typ problemu: nowy obraz działa jako inny użytkownik niż właściciel danych albo część plików należy do roota. Objaw: pętla restartów z permission denied na /var/lib/influxdb/... albo błędy 500 przy zapisie do pojedynczych shardów.
Naprawa: sprawdź właściciela (hl run influxdb --user root -- stat -c %u:%g /var/lib/influxdb), ustaw user: na tego właściciela, a pliki z innym właścicielem popraw punktowo (hl run influxdb --user root -- find /var/lib/influxdb -not -user 1000 -exec chown 1000:1000 {} +), potem hl restart influxdb. Nie rób chown -R całego drzewa i nie uruchamiaj usługi jako root. Zmiana user i hl run wymagają sesji z pełnym dostępem: w zwykłej sesji nie szukaj obejść, tylko od razu odpowiedz gave_up z tym opisem.
Nie zmieniaj typu indeksu ani konfiguracji, jeśli nowa wersja tego nie wymaga.
Odbiór: kontener działa na przypiętym obrazie bez restartów; /ping → 204, a nagłówek X-Influxdb-Version pokazuje nową wersję; wszystkie bazy są widoczne i czytelne (SHOW DATABASES, SHOW MEASUREMENTS); w logach nie ma błędów shardów, TSM, WAL ani uprawnień; po restarcie przychodzą nowe punkty (np. do bazy traefik), co potwierdza zapis. Panele Grafany sprawdza właściciel.
STOP: po starcie nowej wersji znikają bazy lub serie albo logi pokazują błędy odczytu danych — nie naprawiaj na siłę, opisz i zostaw decyzję o rollbacku właścicielowi.
Powrót: rollback przywraca compose sprzed aktualizacji. Jeśli starsza wersja nie czyta danych zapisanych przez nowszą, ratunkiem jest vzdump.