How to monitor your services
Czy zastanawiałeś się kiedykolwiek w jaki sposób administratorzy monitorują usługi, za które są odpowiedzialni? Chciałbyś także dostać powiadomienie za wczasu, że kończy się miejsce na dysku? A może informację o końcu żywota dysku twardego w maszynie i mieć szansę uratować dane zanim dysk dokonca swego żywota? A może znudziło Ciebie otrzymywanie informacji od osób postronnych, że dana usługa właśnie nie działa mimo, że byłeś przekonany że te ostatnie poprawki nic nie popsuły?
Do tego i wiele innych rzeczy zatrudnia się oprogramowanie, którego zadaniem jest powtarzalne zadanie sprawdzania wielu parametrów usługi w równych odstępach czasu, a w przypadku parametrów które nie są akceptowalne wysłanie powiadomienia do osoby odpowiedzialnej, że dzieje się coś nie dobrego. W tym wpisie poruszać będę konfigurację Zabbix, nie mniej warto wiedzieć o istnieniu innych i dobraniu według własnego upodobania, są to Nagios i jego fork Icinga2, CheckMK, UptimeKuma i pewnie kilka innych które w tej chwili nie przychodzą mi do głowy.
Wszelkie informacje opisywane w tym artykule dotyczące sposobu instalacji oraz konfiguracji Zabbix są do znalezienia w oficjalnej dokumentacji
Instalacja #
Instalacja serwera Zabbix jest niczym spacer po parku w letni poranek. Wystarczy udać się do konfiguratora instalatora zabbix i postępować zgodnie z opisanymi krokami. Na poniższym zrzucie ekranu prezentuję mój wybór.
W punkcie 2 są opisane wszystkie kroki jakie są potrzebne do wykonania instalacji, ja natomiast muszę tutaj wskazać że przed przystąpieniem do instalacji wszystkiego dobrze by było mieć już zainstalowany serwer bazodanowy, gdyż paczka zabbix-server-mysql
ma mylącą nazwę - przynajmniej dla mnie - i nie zainstaluje w tym przypadku serwera a jedynie paczki związane z obsługą bazy danych przez Zabbix.
Po przejściu przez pozostałe kroki wskazane w dokumentacji powinieneś skończyć z zainstalowanym i uruchomionym serwerem Zabbix, do którego jesteś w stanie się zalogować.
Domyślne dane do logowania do świeżej instancji Zabbix są następujące: l: Admin p: zabbix
Wstęp #
Na początek warto by było uporządkować sobie kilka elementów
Item #
Ile razy będziesz myśleć o jakimś parametrze hosta, który chcesz monitorować czy jest to temperatura CPU, ilość zajętego miejsca na dysku, ilość interfejsów sieciowych to będziemy takie rzeczy nazywać item’ami. Item to nie jest nic innego jak odwzorowanie do danej metryki
Trigger #
Trigger to wyzwalacz, który jest uruchamiany w momencie kiedy to item osiągnie zadany próg i w ten sposób możemy określić stan OK, Warning oraz Critical
Template #
Template, czyli szablon, to zbiór predefiniowanych item’ów, triggerów, grafów i innych elementów, które można przypisać do hosta. Dzięki temu nie musimy za każdym razem definiować tych samych rzeczy dla podobnych hostów. Wystarczy przypisać szablon i voila - mamy gotowy zestaw monitorowanych parametrów.
Pierwszy host monitorowany #
Skoro już mamy działający Zabbix, czas dodać pierwszy host do monitorowania. Ja zwykle zaczynam od samej maszyny, na której stoi Zabbix. Przejdźmy przez to razem:
-
Upewnij się, że masz zainstalowanego agenta Zabbix na maszynie, którą chcesz monitorować:
apt install zabbix-agent
-
Edytuj plik konfiguracyjny agenta:
nano /etc/zabbix/zabbix_agentd.conf
-
Znajdź linijkę z
Server=
i ustaw tam IP twojego serwera Zabbix, na przykład:Server=192.168.1.100
-
Zrestartuj agenta:
systemctl restart zabbix-agent
-
W interfejsie webowym Zabbix przejdź do Configuration -> Hosts -> Create host
- Wpisz nazwę hosta (np. “Local Server”)
- Dodaj grupy (np. “Linux servers”)
- Ustaw IP lub nazwę DNS w polu “Agent interface”
- Przypisz szablon “Linux by Zabbix agent”
- Kliknij “Add”
I to wszystko! Po kilku minutach Zabbix zacznie zbierać dane z twojego pierwszego monitorowanego hosta. Możesz przejść do sekcji “Monitoring -> Latest data”, aby zobaczyć napływające dane.
Pierwsza automatyzacja #
Zabbix nie musi być tylko biernym obserwatorem - może także działać. Pokażę jak skonfigurować prostą automatyzację, która będzie czyścić stare logi, kiedy dysk zacznie się zapełniać:
-
Utwórz nowy skrypt w katalogu
/usr/lib/zabbix/alertscripts/
:nano /usr/lib/zabbix/alertscripts/cleanup_logs.sh
-
Dodaj zawartość:
#!/bin/bash # Skrypt do czyszczenia starych logów find /var/log -name "*.log.*" -type f -mtime +7 -delete exit 0
-
Nadaj uprawnienia wykonywania:
chmod +x /usr/lib/zabbix/alertscripts/cleanup_logs.sh
-
W interfejsie Zabbix przejdź do Administration -> Scripts -> Create script
- Nazwa: “Cleanup Old Logs”
- Type: Script
- Execute on: Zabbix server
- Commands:
/usr/lib/zabbix/alertscripts/cleanup_logs.sh
- User group: Zabbix administrators
- Host group: Linux servers
- Przywileje: Read
-
Teraz stwórz Action w Configuration -> Actions -> Create action
- Nazwa: “Auto Cleanup Logs When Disk Full”
- Warunek: {Host:vfs.fs.size[/,pfree].last()}<15
- Operacje: Uruchom skrypt “Cleanup Old Logs”
Teraz, gdy wolne miejsce na dysku spadnie poniżej 15%, Zabbix automatycznie uruchomi skrypt czyszczenia starych logów.
Powiadomienia #
Co z tego, że system wykryje problem, jeśli nikt o tym nie wie? Skonfigurujmy powiadomienia email:
-
Przejdź do Administration -> Media types -> Email
-
Skonfiguruj ustawienia SMTP:
- SMTP server: smtp.gmail.com (lub twój serwer)
- SMTP port: 587
- SMTP helo: localhost
- SMTP email: twoj_email@domena.com
-
Teraz dodaj media do swojego użytkownika (Administration -> Users)
- Kliknij na swój profil
- Przejdź do zakładki Media
- Dodaj medium typu Email z twoim adresem
-
Utwórz action dla powiadomień (Configuration -> Actions -> Create action)
- Nazwa: “Email Notifications”
- Warunki: Severity >= Warning
- Operacje: Send message to User “Admin” using media “Email”
- Treść: “Problem: {EVENT.NAME}\nHost: {HOST.NAME}\nSeverity: {EVENT.SEVERITY}\nTime: {EVENT.TIME}\nDescription: {EVENT.DESCRIPTION}”
-
Opcjonalnie dodaj operację recovery, która powiadomi Cię, gdy problem zostanie rozwiązany
Od teraz będziesz otrzymywać maile, gdy wystąpią problemy z monitorowanymi hostami.
Podsumowanie #
Zabbix to potężne narzędzie, które odpowiednio skonfigurowane może być Twoim trzecim okiem w infrastrukturze. Zamiast reagować na problemy, gdy już wystąpią i użytkownicy zaczną dzwonić, możesz je wykrywać, zanim ktokolwiek inny je zauważy.
W tym artykule zaledwie musnęliśmy powierzchnię możliwości Zabbix. W kolejnych wpisach zagłębimy się bardziej w zaawansowane funkcje, takie jak:
- Tworzenie własnych szablonów
- Monitorowanie aplikacji webowych
- Integracja z innymi systemami
- Automatyczne odkrywanie sieci
Ale już teraz, mając podstawową konfigurację Zabbix, możesz spać spokojniej wiedząc, że ktoś (lub coś) ciągle czuwa nad Twoją infrastrukturą.
Comments powered by Talkyard.