Co to znaczy monitorować
Monitorowanie polega na regularnym mierzeniu tego samego i reagowaniu, kiedy pomiar wyjdzie poza uzgodnione widełki. Zajęcie dysku, obciążenie procesora, wolna pamięć, temperatura, liczba błędów na porcie przełącznika, czas odpowiedzi strony, ważność certyfikatu: każda z tych rzeczy jest liczbą, którą da się odczytać co minutę i zapisać.
Sam pomiar niczego nie zmienia. Wartość pojawia się dopiero wtedy, gdy z ciągu liczb powstaje zdanie w rodzaju „na tym serwerze zostało mało miejsca i przy dotychczasowym tempie skończy się w środę”. Zabbix jest programem, który zbiera te liczby i zamienia je w takie zdania.
Z czego składa się ten system
Elementów jest kilka, a w rozmowach nazywa się je jednym słowem, więc rozróżnienie ich oszczędza sporo nieporozumień. Serwer to część zbierająca dane i podejmująca decyzje. Baza danych przechowuje historię pomiarów, i to ona zwykle rośnie najszybciej. Interfejs w przeglądarce służy do oglądania wykresów i konfigurowania reszty. Agent to mały program instalowany na monitorowanej maszynie, który odczytuje jej parametry od środka. Proxy zbiera dane w oddziale i wysyła je zbiorczo, dzięki czemu monitorowanie zdalnej lokalizacji nie wymaga otwierania połączeń do każdej maszyny z osobna.
Nie wszystko wymaga agenta. Przełączniki, drukarki i zasilacze awaryjne odpowiadają na zapytania protokołem przeznaczonym do zarządzania urządzeniami, a strony i usługi sieciowe da się sprawdzać z zewnątrz, po prostu próbując się z nimi połączyć.
Jak z odczytu powstaje alert
Droga jest zawsze taka sama. Element danych to pojedynczy pomiar, na przykład procent zajętości dysku, odczytywany w zadanym rytmie. Wyzwalacz to warunek nałożony na ten pomiar, opisany wyrażeniem: zajętość powyżej progu przez określony czas, brak odpowiedzi w kilku kolejnych próbach, gwałtowny przyrost w krótkim okresie. Kiedy warunek jest spełniony, powstaje zdarzenie, a na zdarzenie odpowiada akcja: wiadomość, wpis w systemie zgłoszeń, uruchomienie polecenia naprawczego.
Dwie rzeczy w tym łańcuchu decydują o jakości. Pierwsza to warunek czasowy, dzięki któremu chwilowy skok obciążenia nie budzi nikogo w nocy. Druga to eskalacja, czyli reguła mówiąca, co się dzieje, gdy nikt nie zareagował: po kilkunastu minutach wiadomość idzie do drugiej osoby, potem do przełożonego.
Historia pomiarów żyje obok tego wszystkiego i służy do czegoś innego. Wykres z ostatnich miesięcy odpowiada na pytanie, czy dysk zapełnia się od tygodnia, czy od roku, i czy awaria była zdarzeniem jednorazowym.
Czym różni się od raportu i od zewnętrznego sprawdzania strony
Raport opisuje przeszłość i powstaje na żądanie. Monitorowanie ma się odezwać wtedy, kiedy przestojowi da się jeszcze zapobiec, więc jego wartością jest moment, a nie zestawienie. Usługa sprawdzająca dostępność strony z internetu odpowiada tylko na jedno pytanie i nie zajrzy do środka serwera, więc powie, że strona nie odpowiada, ale nie powie, że przyczyną jest zapełniony dysk, który dało się zauważyć trzy dni wcześniej.
Typowe wdrożenie
W firmie z własną serwerownią zwykle jako maszyna monitorująca hosty wirtualizacji, macierz, przełączniki, zasilanie awaryjne i kilka usług, których dostępność jest najbardziej odczuwalna. W środowiskach rozproszonych dochodzą proxy w oddziałach. Osobnym zastosowaniem jest monitorowanie parametrów, które wcale nie są informatyczne, na przykład temperatury w serwerowni albo stanu wejścia w sterowniku.
Na co uważać
Pierwsze tygodnie po uruchomieniu wyglądają zawsze podobnie i zaskakuje to nawet doświadczone zespoły. Domyślne progi są ustawione ostrożnie, więc system melduje o każdym chwilowym skoku i o każdym dysku zapełnionym w połowie, przez co powiadomień jest kilkadziesiąt dziennie. Lista nieprzycięta w tym okresie przestaje być czytana, a nieczytane powiadomienia są gorsze od ich braku, bo dają złudzenie, że ktoś patrzy.
Druga rzecz to baza danych. Historia pomiarów rośnie wraz z liczbą maszyn i częstotliwością odczytów, więc ustawienie okresów przechowywania jest częścią wdrożenia, a nie zadaniem na później. Trzecia to sam system monitorowania jako pojedynczy punkt awarii: maszyna, która ma powiadamiać o awariach, uruchomiona na tym samym serwerze co monitorowane systemy, milczy dokładnie wtedy, kiedy jest najbardziej potrzebna.
Czwarta jest organizacyjna. Powiadomienie, którego nikt nie odbiera, niczego nie chroni. Zanim powstanie pierwszy wyzwalacz, warto ustalić, kto odbiera powiadomienie w godzinach pracy, kto poza nimi i co robi osoba, która je dostała.
Kiedy monitorowanie nie ma sensu
Firma z kilkoma komputerami i bez własnych serwerów niewiele zyska na budowaniu takiego środowiska, bo koszt utrzymania przewyższy korzyść. Jeśli pytanie brzmi tylko „czy strona działa”, wystarczy prostsza usługa sprawdzająca ją z zewnątrz. I odwrotnie, monitorowanie nie zastępuje ani kopii zapasowych, ani planu odtworzenia. Mówi, że coś się dzieje, a nie przywraca stanu sprzed awarii.