Wydano Zabbix 4.2

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

Wydano Zabbix 4.2

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 GPLv2.

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

Wydano Zabbix 4.2
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.

Wydano Zabbix 4.2
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ć.

Wydano Zabbix 4.2
Wyszukujemy metryki, używając filtru w języku zapytań PromQL

Obecnie istnieje ponad 300 integracji i przepisów dotyczących monitorowania 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ą.

Wydano Zabbix 4.2
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).

Wydano Zabbix 4.2
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ę.”

Wydano Zabbix 4.2
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!

Wydano Zabbix 4.2
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!

Wydano Zabbix 4.2
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!

Wydano Zabbix 4.2

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!

Wydano Zabbix 4.2

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.

Wydano Zabbix 4.2
Łączenie JSON z informacjami o procesach z LLD

Możliwości są naprawdę nieograniczone!

Wsparcie dla TimescaleDB

Wydano Zabbix 4.2

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.

Wydano Zabbix 4.2
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.

Wydano Zabbix 4.2
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.

Wydano Zabbix 4.2

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!

Wydano Zabbix 4.2
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.

Wydano Zabbix 4.2
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.

Wydano Zabbix 4.2
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.

Wydano Zabbix 4.2
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.

Wydano Zabbix 4.2

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.

Wydano Zabbix 4.2
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.

Wydano Zabbix 4.2

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ć nowe pliki binarne (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. Zarejestruj się!

Nie zapominajmy o popularnym kanale Telegram 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 grupę dla nowicjuszy.

Przydatne linki

Notatki o wersji
Notatki o aktualizacji
Oryginalny artykuł

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster