Nasz zespół z radością informuje, że ukazała się nowa, otwarta system monitorowania z otwartym kodem źródłowym !

Czy wersja 4.2 jest odpowiedzią na główne pytanie życia, wszechświata i monitorowania ogólnie? Przyjrzyjmy się temu!
Przypominamy, że Zabbix to uniwersalny system do monitorowania wydajności i dostępności serwerów, urządzeń inżynieryjnych i sieciowych, aplikacji, baz danych, systemów wirtualizacji, kontenerów, usług IT oraz usług webowych.
Zabbix realizuje pełny cykl, od zbierania danych, ich przetwarzania i transformacji, analizy uzyskanych danych, aż po ich przechowywanie, wizualizację i wysyłanie powiadomień przy użyciu reguł eskalacji. System oferuje również elastyczne możliwości rozbudowy metod zbierania danych i powiadomień oraz automatyzacji przez API. Jednolity interfejs webowy umożliwia centralne zarządzanie konfiguracjami monitorowania oraz przydzielanie uprawnień różnym grupom użytkowników. Kod projektu jest swobodnie udostępniany na licencji .
Zabbix 4.2 to nowa wersja, która nie jest wersją LTS, z krótszym okresem wsparcia. Użytkownikom, którzy preferują długi cykl eksploatacji oprogramowania, zalecamy korzystanie z wersji LTS, takich jak 3.0 i 4.0.
Zatem porozmawiajmy o nowościach i głównych ulepszeniach wersji 4.2:
Więcej oficjalnych platform

Oprócz istniejących już oficjalnych pakietów, oferujemy także nowe wersje dla:
- RaspberryPi, Mac OS/X, SUSE Enterprise Linux Server 12
- MSI dla agenta Windows
- Obrazy Docker
Wbudowane wsparcie Prometheus do monitorowania aplikacji
Zabbix potrafi zbierać dane na różne sposoby (push/pull) z różnych źródeł danych. Są to JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, agenci i skrypty oraz inne źródła. A teraz, witaj wsparcie Prometheus!
Ściśle mówiąc, zbieranie danych z eksporterów Prometheus było możliwe już wcześniej dzięki typowi elementów danych HTTP/HTTPS i wyrażeniom regularnym.
Jednak nowa wersja pozwala na maksymalnie efektywne korzystanie z Prometheus dzięki wbudowanemu wsparciu dla języka zapytań PromQL. Użycie zależnych metryk pozwala zbierać i przetwarzać dane w najefektywniejszy sposób: raz pytasz o dane, a następnie układasz je według potrzebnych metryk.
Pobieramy wartość konkretnej metryki
Warto zauważyć, że obecnie niskopoziomowe wykrywanie może wykorzystać zgromadzone dane do automatycznego tworzenia metryk. W takim przypadku Zabbix przekształca pozyskane dane do formatu JSON, z którym bardzo łatwo pracować.
Wyszukujemy metryki, używając filtru w języku zapytań PromQL
Obecnie istnieje ponad zewnętrznych usług i aplikacji za pomocą Zabbix. Obsługa Prometheusa umożliwi dodanie całego zestawu aplikacji, które mają oficjalnych lub wspieranych przez społeczność eksporterów Prometheusa. To monitorowanie popularnych usług, kontenerów i zasobów chmurowych.
Efektywne monitorowanie o wysokiej częstotliwości
Czy chcemy wykrywać problemy tak szybko, jak to możliwe? Oczywiście, nie ma wątpliwości! Najczęściej takie podejście prowadzi do potrzeby zbyt częstego sprawdzania urządzeń i zbierania danych, co powoduje większe obciążenie systemu monitorowania. Jak temu zapobiec?
Wprowadziliśmy mechanizm throttlingu w regułach wstępnego przetwarzania. Throttling w zasadzie daje nam możliwość pomijania identycznych wartości.
Załóżmy, że monitorujemy stan krytycznej aplikacji. Co sekundę sprawdzamy, czy nasza aplikacja działa. W Zabbix wpływa ciągły strumień danych z 1 (działa) i 0 (nie działa). Na przykład: 1111111111110001111111111111…
Gdy z naszą aplikacją wszystko w porządku, w Zabbix przychodzi strumień samych jedynek. Czy trzeba je przetwarzać? Generalnie nie, ponieważ interesuje nas tylko zmiana stanu aplikacji, nie chcemy zbierać i przechowywać tak wielu danych. Tak więc, throttling pozwala pominąć wartość, jeśli jest identyczna z poprzednią. W końcu otrzymujemy tylko dane o zmianie stanu, na przykład 01010101… To zupełnie wystarczająca informacja do wykrywania problemów!
Pomijane wartości Zabbix po prostu ignoruje, nie są zapisywane w historii i w żaden sposób nie wpływają na wyzwalacze. Z punktu widzenia Zabbix pominięte wartości nie istnieją.
Ignorujemy powtarzające się wartości
Świetnie! Teraz możemy bardzo często sprawdzać urządzenia, jednocześnie szybko wykrywając problemy bez przechowywania niepotrzebnych informacji w bazie danych.
A co z wykresami? Będą przecież puste z powodu braku danych! Jak zrozumieć, czy Zabbix zbiera dane, jeśli większość tych danych będzie pominięta?
I o tym również pomyśleliśmy! Zabbix oferuje jeszcze jeden rodzaj ograniczenia, ograniczenie z punktami kontrolnymi (throttling with heartbeat).
Sprawdzamy co minutę, czy metryka jest aktywna.
W takim przypadku Zabbix, pomimo powtarzającego się strumienia danych, zapisze przynajmniej jedną wartość w określonym przedziale czasowym. Jeśli dane są zbierane co sekundę, a przedział ustalony na jedną minutę, Zabbix przekształci co-sekundanty strumień jedynek w strumień co-minutowy. Nie trudno zauważyć, że prowadzi to do 60-krotnego skompresowania otrzymanych danych.
Teraz jesteśmy pewni, że dane są zbierane, funkcja wyzwalacza nodata() działa, a z wykresami jest wszystko w porządku!
Walidacja zebranych danych i obsługa błędów.
Nikt z nas nie chce zbierać błędnych lub nieprawdziwych danych. Na przykład wiemy, że czujnik temperatury powinien zwracać dane w zakresie od 0°C do 100°C, a każda inna wartość powinna być traktowana jako błędna i/lub ignorowana.
Obecnie jest to możliwe dzięki wbudowanym w preprocessing regułom walidacji danych na zgodność lub brak zgodności z wyrażeniami regularnymi, zakresem wartości, JSONPath i XMLPath.
Teraz możemy kontrolować reakcję na błąd. Jeśli temperatura jest poza zakresem, możemy po prostu zignorować tę wartość, ustawić wartość domyślną (na przykład 0°C), lub określić własną wiadomość o błędzie, na przykład „Czujnik uszkodzony” lub „Zamień baterię.”
Temperatura powinna wynosić od 0 do 100, resztę ignorujemy.
Dobrym przykładem użycia walidacji jest możliwość sprawdzania wejściowych danych na obecność wiadomości o błędzie i ustawienia tej błędy dla całej metryki. To bardzo przydatna funkcjonalność przy pobieraniu danych z zewnętrznych API.
Każda transformacja danych za pomocą JavaScript.
Jeśli wbudowane reguły preprocessingowe są niewystarczające, teraz oferujemy pełną swobodę w używaniu dowolnych skryptów w języku JavaScript!
Tylko jedna linia kodu, aby przekształcić stopnie Fahrenheita na stopnie Celsjusza.
To otwiera nieograniczone możliwości przetwarzania danych wejściowych. Praktyczną zaletą tej funkcjonalności jest to, że teraz nie potrzebujemy zewnętrznych skryptów, które używaliśmy do jakichkolwiek operacji na danych. Teraz wszystko można zrobić za pomocą JavaScript.
Teraz möglich jest transformacja danych, agregacja, filtry, operacje arytmetyczne i logiczne i wiele innych!
Ekstrahujemy użyteczne informacje z wyjścia Apache mod_status!
Testujemy preprocesowanie
Teraz nie musimy zgadywać, jak działają nasze skomplikowane skrypty preprocesowania. Pojawiła się wygodna weryfikacja poprawności działania preprocesowania bezpośrednio z interfejsu!
Przetwarzamy miliony metryk na sekundę!
Do Zabbix 4.2 preprocesowaniem zajmował się wyłącznie serwer Zabbix, co ograniczało możliwości zastosowania proxy do rozdzielania obciążenia.
Od wersji Zabbix 4.2 otrzymujemy niesamowicie efektywne skalowanie obciążenia dzięki wsparciu dla preprocesowania po stronie proxy. Teraz tym zajmują się proxy!
W połączeniu z throttlingiem takie podejście umożliwia przeprowadzanie wysokoczęstotliwościowego monitorowania skalowalności i realizowanie milionów sprawdzeń na sekundę, nie obciążając przy tym centralnego serwera Zabbix. Proxy przetwarzają ogromne ilości danych, przy tym do serwera Zabbix dociera dzięki throttlingowi tylko ich niewielka część, o jeden lub dwa rzędy mniejsza.
Prostsze niskopoziomowe wykrywanie
Przypomnijmy, że niskopoziomowe wykrywanie (LLD) to bardzo potężny mechanizm automatycznego wykrywania wszelkiego rodzaju zasobów do monitorowania (systemy plików, procesy, aplikacje, usługi itp.) oraz automatycznego tworzenia na ich podstawie elementów danych, wyzwalaczy, węzłów sieci i innych obiektów. To niesamowicie oszczędza czas, upraszcza konfigurację i pozwala na użycie jednego szablonu dla węzłów sieci z różnymi zasobami do monitorowania.
Niskopoziomowe wykrywanie wymagało na wejściu specjalnie sformatowanego JSON. Tak już więcej nie będzie!
Zabbix 4.2 umożliwia niskopoziomowe wykrywanie (LLD) z wykorzystaniem dowolnie sformatowanych danych w formacie JSON. Dlaczego to jest ważne? To pozwala na komunikację, na przykład, z zewnętrznymi API bez potrzeby używania skryptów i wykorzystanie uzyskanych informacji do automatycznego tworzenia węzłów sieci, elementów danych i triggerów.
W połączeniu z obsługą JavaScript, tworzy to fantastyczne możliwości do tworzenia szablonów pracy z różnymi źródłami danych, takimi jak na przykład API chmurowe, API aplikacji, dane w formatach XML, CSV i inne.
Łączenie JSON z informacjami o procesach z LLD
Możliwości są naprawdę nieograniczone!
Wsparcie dla TimescaleDB
Czym jest TimescaleDB? To zwykły PostgreSQL plus moduł rozszerzenia od zespołu TimescaleDB. TimescaleDB obiecuje lepszą wydajność dzięki bardziej efektywnym algorytmom i strukturze danych.
Ponadto, kolejną zaletą TimescaleDB jest automatyczne partycjonowanie tabel z historią. TimescaleDB to szybkość i łatwość w zarządzaniu! Chociaż muszę zauważyć, że nasz zespół jeszcze nie przeprowadzał poważnego porównania wydajności z tradycyjnym PostgreSQL.
Obecnie TimescaleDB jest dość młodym i szybko rozwijającym się produktem. Używaj z ostrożnością!
Łatwe zarządzanie tagami
Jeśli wcześniej tagami można było zarządzać tylko na poziomie triggerów, to teraz zarządzanie tagami jest dużo bardziej elastyczne. Zabbix obsługuje tagi dla szablonów i węzłów sieci!
Wszystkie wykryte problemy otrzymują tagi nie tylko triggera, ale także węzła sieci oraz szablonów tego węzła sieci.
Określanie tagów dla węzła sieci
Bardziej elastyczna autoryzacja
Zabbix 4.2 pozwala na filtrowanie węzłów sieci według nazwy, używając wyrażeń regularnych. To daje możliwość tworzenia różnych scenariuszy wykrywania dla różnych grup węzłów sieci. To szczególnie wygodne, jeśli mamy skomplikowane zasady nazewnictwa urządzeń.
Bardziej elastyczne wykrywanie sieci
Kolejna poprawa dotyczy nazewnictwa węzłów sieci. Pojawiła się możliwość zarządzania nazwami urządzeń podczas wykrywania sieci i pobierania nazwy urządzenia z wartości metryki.
To bardzo potrzebna funkcja, szczególnie przy wykrywaniu sieci za pomocą SNMP i agenta Zabbix.
Automatycznie przypisujemy lokalną nazwę węzła sieci widoczną nazwą
Sprawdzanie działania metod powiadomień
Teraz można wysłać sobie testową wiadomość bezpośrednio z interfejsu webowego i sprawdzić, czy metoda powiadomienia działa. Funkcjonalność ta jest szczególnie przydatna do testowania skryptów integracji Zabbix z różnymi systemami powiadomień, systemami zadań oraz innymi zewnętrznymi programami i API.
Zdalne monitorowanie komponentów infrastruktury Zabbix
Pojawiła się możliwość zdalnego monitorowania wewnętrznych metryk serwera Zabbix oraz proxy (metryk wydajności i sprawności komponentów Zabbix).
Po co to potrzebne? Funkcjonalność ta pozwala na zdalne monitorowanie wewnętrznych metryk serwerów i proxy, co umożliwia szybkie wykrywanie i powiadamianie o problemach, nawet jeśli same komponenty są przeciążone lub, na przykład, na proxy jest duża ilość nieprzesłanych danych.
Wsparcie formatu HTML w wiadomościach e-mail
Nie jesteśmy już ograniczeni do prostego tekstu i możemy tworzyć piękne wiadomości e-mail dzięki obsłudze formatu HTML. Czas nauczyć się HTML + CSS!
Wiadomości są łatwiejsze do przyswojenia, nawet przy minimalnym użyciu HTML
Dostęp do zewnętrznych systemów z map sieciowych
Pojawiło się wsparcie dla całego zestawu nowych makr w niestandardowych URL-ach dla lepszej integracji map z systemami zewnętrznymi. Pozwala to na otwieranie zgłoszeń w systemie zarządzania zadaniami jednym lub dwoma kliknięciami na ikonę węzła sieci.
Jednym kliknięciem otwieramy zgłoszenie w Jira
Reguła wykrywania może być elementem danych zależnym
Po co to potrzebne – zapytacie. To pozwala na wykorzystanie danych głównej metryki zarówno do wykrywania, jak i do bezpośredniego zbierania danych. Na przykład, w przypadku zbierania danych z eksportera Prometheus, Zabbix wykona jeden żądanie HTTP i natychmiast wykorzysta uzyskaną informację dla wszystkich zależnych elementów danych: wartości metryk i reguł niskopoziomowego wykrywania.
Nowy sposób wizualizacji problemów na mapach
Pojawiło się wsparcie dla animowanych obrazów GIF na mapach dla lepszej wizualizacji problemów.
Problemowe urządzenia stały się bardziej widoczne
Wydobywanie danych z nagłówków HTTP w monitorowaniu stron
W monitorowaniu stron dodano możliwość wybierania danych z uzyskanego nagłówka HTTP.
Umożliwia to tworzenie wieloetapowych skryptów monitorowania stron internetowych lub monitorowania zewnętrznych API, korzystając z tokena autoryzacyjnego uzyskanego w jednym z kroków.
Wyciągamy AuthID z nagłówka HTTP
Zabbix Sender używa wszystkich adresów IP
Zabbix Sender teraz wysyła dane za pośrednictwem wszystkich adresów IP z parametru ServerActive w pliku konfiguracyjnym agenta.
Wygodny nowy filtr w konfiguracji wyzwalaczy
Strona konfiguracji wyzwalaczy zyskała rozszerzony filtr do szybkiego i wygodnego wyodrębniania wyzwalaczy według określonych kryteriów.
Wybieramy wyzwalacze związane z usługą K8S
Pokazujemy dokładny czas.
Tutaj wszystko jest proste, teraz Zabbix pokazuje dokładny czas po najechaniu myszką na wykres.

Inne nowości
- Zrealizowano bardziej przewidywalny algorytm do zmiany kolejności rozmieszczenia widgetów na pulpicie.
- Możliwość masowej zmiany parametrów prototypów elementów danych.
- Wsparcie dla IPv6 w testach DNS: «net.dns» i «new.dns.record»
- Dodano parametr «skip» dla testów «vmware.eventlog»
- Błąd wykonania kroku preprocessing zawiera numer kroku.
Jak się zaktualizować?
Aby przejść z wcześniejszych wersji, wystarczy zainstalować (serwery i proxy) oraz nowy interfejs. Zabbix automatycznie przeprowadzi procedurę aktualizacji bazy danych. Instalacja nowych agentów nie będzie konieczna.
Organizujemy bezpłatne webinaria dla tych, którzy chcą dowiedzieć się więcej o Zabbix 4.2 i mają możliwość zadania pytań zespołowi Zabbix.
Nie zapominajmy o popularnym społeczności Zabbix, gdzie zawsze można uzyskać konsultacje i odpowiedzi na swoje pytania w języku rosyjskim od bardziej doświadczonych kolegów, a jeśli się uda, to także od samych twórców Zabbix. Dla nowicjuszy polecamy .
Przydatne linki
—
—
—
Źródło: habr.com
