Od ostatniego wpisu na temat projektu “Arvalis” trochę minęło, w zasadzie około pół roku i od tamtej pory sporo się zmieniło. Jako że jest to projekt czysto związany z selfhostingiem i cięciem kosztów tak bardzo jak to możliwe, to uznałem, że powinienem Wam co nieco opowiedzieć.

Czym jest projekt “Arvalis”?

Pod nazwą “Arvalis” kryje się w rzeczywistości hosting własnej instancji oprogramowania Zabbix w celu monitorowania domowych homelabów. Mówię o liczbie mnogiej, ponieważ w projekt zaangażowanych jest kilka osób, a instancja Zabbix jest współdzielona. Projekt też wykorzystuje wiele praktyk i czynności kojarzonych raczej z infrastrukturami produkcyjnymi, a nie domowymi, jednakże zostały one wybrane, aby ułatwić deployment i utrzymanie. O projekcie więcej dowiecie się z tego wpisu.

Co się zmieniło?

Od października zaszło kilka zmian, choć nie staraliśmy się poświęcać zbyt sporo czasu.

Jest nas więcej!

Już publikując poprzedni wpis informowałem, że liczba osób uczestniczących w projekcie wzrosła do 5. W tym momencie jest nas aż sześciu, co sprawiło, że koszt miesięczny za styczeń 2026 wyszedł około 6 złotych za osobę. Jak za enterprise-level monitoring jest to naprawdę świetna cena.

Niestety, Hetzner poinformował, że jest zmuszony podnieść ceny i dotyka to również nas. W celu zminimalizowania kosztów postanowiliśmy więc w końcu przejść na nowy typ instancji CX23. Pierwotnie infrastruktura została zbudowana na bazie CX22, czyli najtańszego wariantu instancji EC2 od Hetzner. Jednak nieco później udostępniono nowe typy, gdzie CX22 zastępuje właśnie nieco tańszy CX23, a CX22 szybciutko został oznaczony jako deprecated. I tak, faktycznie nowy CX23 jest tańszy od CX22, jednakże, tak jak wspomniałem, Hetzner ogólnie podniósł ceny swoich usług i nawet ten nowy typ instancji stał się droższy. Nadal jednak są to koszty rozsądne, tym bardziej, że dzielone na parę osób.

Problem zmiennego IP

Największym problemem był onboardowanie osób ze zmiennym adresem IP. Jako że podstawą kontroli dostępów jest mechanizm whitelistowania adresów IP, to publiczny, wyjściowy adres danego użytkownika musi być znany (dotyczy to również podwójnego NAT-u, w naszej konfiguracji korzystamy z Zabbix Proxy w trybie Active, a więc otwieranie się na ruch wchodzący po stronie userów jest zbędne). Niestety, u niektórych z nas był to spory problem, bo czasami adres mógł się zmieniać nawet co kilka dni.

Schemat działania Zabbix Proxy

Udało się to jednak rozwiązać wykorzystując fakt, że już infrastruktura była opisana w kodzie. Dodaliśmy więc selfhostowany worker Forgejo i utworzyliśmy workflow, gdzie odpowiedni event informuje o zmianie adresu IP i uruchamia automatyzację, która aplikuje nową definicję infrastruktury. Aby to działało sprawniej musieliśmy też przerobić moduły związane z firewallem… i to dwa razy. Najlepszym rozwiązaniem było utworzenie oddzielnej security grupy (oj, firewalli…) dla każdego usera, ale okazało się, że Hetzner narzuca niezmienny limit, gdzie jedna instancja może mieć maksymalnie 5 security grup. Przearanżowaliśmy więc SG ponownie i uzyskaliśmy potrzebny efekt.

Rozwój IaC

Poszliśmy dalej z architekturą rozwiązania. Przerobiliśmy jak zarządzamy użytkownikami po stronie serwerów, a definicję kontenerów wrzuciliśmy do oddzielnego stacka. Udało się też opisać infrastrukturę Cloudflare w kodzie, co jest kolejnym, ważnym krokiem. Gdzieś po drodze zmodyfikowaliśmy konfigurację Zabbixa, aby wyciągnąć wyższą wydajność, a także staramy się regularnie robić aktualizacje minor. Poza wyżej opisanym workflow dla zmiennego IP, dodaliśmy też inne automatyzacje, stricte związane z OpenTofu.

Podsumowanie

Arvalis, mimo wszystko, to projekt hobbystyczny, a więc rozwój jest powolny, bo bazuje tylko i wyłącznie na wolnym czasie użytkowników. A jednak udało się wprowadzić trochę zmian i ciągle trwają prace nad usprawnieniami. Mamy backlog wypełniony kolejnymi działaniami, większymi i mniejszymi. No i oczywiście czekamy na Zabbix 8.0, który wniesie sporo nowości.

Zabbix jako narzędzie do monitoringu homelaba podoba mi się coraz bardziej i bardzo lubię z niego korzystać, a jego konstrukcja oparta o Server i Proxy niesamowicie dobrze sprawdza się w tym użyciu. Niewielkim kosztem mamy dostęp do monitoringu klasy enterprise, a jeśli tylko sobie ktoś z nas wymarzy jakiś monitoring czy sposób działania, to zapewne będzie mógł to zrobić. Fajnie by było, jakby Zabbix dostał choć trochę lepszy interfejs GUI i najlepiej oficjalnego providera Terraform…