3 Przykłady przetwarzania wstępnego

Przegląd

W tej sekcji przedstawiono przykłady użycia kroków przetwarzania wstępnego do realizacji niektórych praktycznych zadań.

Filtrowanie rekordów dziennika zdarzeń VMware

Ten przykład wykorzystuje krok przetwarzania wstępnego Matches regular expression do odfiltrowania niepotrzebnych zdarzeń z dziennika zdarzeń VMware.

1. Na działającym hoście VMware Hypervisor sprawdź, czy pozycja vmware.eventlog jest obecna i działa prawidłowo. Zwróć uwagę, że pozycja dziennika zdarzeń może już być obecna na hypervisorze, jeśli podczas tworzenia hosta został podłączony szablon VMware.

2. Na hoście VMware Hypervisor utwórz pozycję zależną typu Log i ustaw pozycję dziennika zdarzeń jako jej pozycję nadrzędną.

3. Na karcie Preprocessing pozycji zależnej kliknij Add, aby utworzyć krok przetwarzania wstępnego, i wybierz Matches regular expression z listy rozwijanej. Następnie określ jeden z następujących wzorców:

  • Aby filtrować wszystkie zdarzenia dziennika:
.* logged in .*
  • Aby filtrować wiersze zawierające nazwy użytkowników po "User":
\bUser\s+\K\S+

Jeśli wyrażenie regularne nie zostanie dopasowane, pozycja zależna stanie się nieobsługiwana i zostanie wyświetlony odpowiedni komunikat o błędzie. Aby tego uniknąć, zaznacz pole wyboru Custom on fail i wybierz opcję, taką jak odrzucenie wartości lub ustawienie wartości niestandardowej. Pamiętaj, że wartości discarded nie są przechowywane w bazie danych; w rezultacie wyzwalacze nie są oceniane, a dane trendu nie są generowane.

Alternatywnie możesz użyć kroku przetwarzania wstępnego Regular expression, aby wyodrębnić pasujące grupy i kontrolować dane wyjściowe:

  • Aby wyodrębnić i zwrócić całe zdarzenie dziennika zawierające "logged in", podaj następujące parametry:
Pattern: .*logged in.*
Output: \0
  • Aby wyodrębnić i zwrócić nazwy użytkowników występujące po "User":
Pattern: User (.*?)(?=\ )
Output: \1

Sprawdzanie typu pobranej wartości

W tym przykładzie użyto kroku przetwarzania wstępnego Custom multiplier, aby sprawdzić, czy typ pobranej wartości pozycji jest numeryczny.

Na karcie Preprocessing pozycji wybierz krok przetwarzania wstępnego Custom multiplier i określ następujący parametr (mnoży pobraną wartość przez 1):

1

Jeśli przetwarzanie wstępne zakończy się niepowodzeniem (np. dane wejściowe nie są numeryczne), pozycja stanie się nieobsługiwana i zostanie wyświetlony odpowiedni komunikat o błędzie. Aby tego uniknąć, zaznacz pole wyboru Custom on fail i wybierz opcję, taką jak odrzucenie wartości lub ustawienie wartości niestandardowej. Należy pamiętać, że wartości discarded nie są przechowywane w bazie danych; w rezultacie wyzwalacze nie są oceniane, a dane trendu nie są generowane.

Sprawdzanie nieobsługiwanej wartości

Ten przykład wykorzystuje krok preprocessing Check for not supported value do sprawdzenia, czy nie udało się pobrać wartości pozycji.

Gdy proces pollera serwera/proxy Zabbix próbuje pobrać wartość pozycji, może:

  • Zwrócić prawidłowy wynik.
  • Zwrócić wynik, który początkowo wydaje się prawidłowy, ale później może stać się nieobsługiwany (np. z powodu niezgodności typu wartości po preprocessing).
  • Zwrócić błąd podczas pobierania wartości, powodując, że pozycja stanie się nieobsługiwana. Typowe przyczyny obejmują:
    • Nieznany klucz pozycji (dla pozycji Zabbix agent, Simple check lub Zabbix internal)
    • Nieznany OID (SNMP agent), nieznany sensor (IPMI agent) lub brak metryki JMX (JMX agent)
    • Nie można odczytać pliku trap (SNMP trap)
    • Nie znaleziono skryptu (External check)
    • Taki URL nie istnieje (HTTP agent, Browser)
    • Logowanie nie powiodło się (SSH agent, TELNET agent)
    • Nieprawidłowa składnia formuły (Calculated), błąd składni JavaScript (Script) lub nieprawidłowe SQL (Database monitor)

Aby wykrywać i obsługiwać błędy pobierania wartości pozycji, można użyć kroku preprocessing Check for not supported value. Należy pamiętać, że ten krok jest zawsze wykonywany jako pierwszy i wykrywa tylko błędy, które występują przed rozpoczęciem preprocessing.

Na karcie Preprocessing pozycji wybierz krok preprocessing Check for not supported value i określ jeden z następujących parametrów:

  • Dla dowolnych błędów:
Parameter: any error
  • Dla błędów zawierających "cannot connect":
Parameter: error matches
Pattern: (?i)cannot connect

Następnie użyj opcji Custom on fail, aby odrzucić wartość (w tym przypadku błąd), ustawić wartość niestandardową lub zwrócić niestandardowy komunikat o błędzie. Pamiętaj, że wartości discarded nie są przechowywane w bazie danych; w rezultacie wyzwalacze nie są obliczane, a dane trendu nie są generowane.