Odbieranie pułapek SNMP jest przeciwieństwem do pytania urządzeń SNMP.
W tym przypadku informacje wysyłane są z urządzeń SNMP i są przechowywane lub "łapane" przez Zabbix.
Zwykle pułapki wysyłane są w wyniku zmiany warunków, a agent łączy się do serwera na porcie 162 (w przeciwieństwie do portu 161, po stronie agenta, używanego do zapytań). Używanie pułapek może powodować niewielkie problemy podczas zapytań i może powodować utratę danych.
Odbieranie pułapek SNMP w Zabbix przeznaczone jest do pracy z snmptrapd i jednym z mechanizmów przekazywania pułapek do Zabbix - skrypt perl lub SNMPTT.
Przebieg odbierania pułapki:
Konfiguracja ponizszych pól jest specyficzna dla tego typu pozycji:
W Konfiguracja → Hosty, w polu Interfejs hosta należy ustawić interfejs SNMP z poprawnym adresem IP lub DNS. Żeby znaleźć odpowiednie hosty, adresy każdej odebranej pułapki porównywane są do adresów IP lub DNS wszystkich interfejsów SNMP.
W polu Klucz należy użyć jednego z kluczy pułapki SNMP:
Klucz | ||
---|---|---|
Opis | Zwracana wartość | Komentarze |
snmptrap[regex] | ||
Wyłapuje wszystkie pułapki SNMP z adresów zgodnych z regex | Pułapka SNMP | Pozycja ta może być ustawiona tylko dla interfejsów SNMP. Pozycja ta jest obsługiwana od Zabbix 2.0.0. Uwaga: Począwszy od Zabbix 2.0.5, w kluczu tej pozycji obsługiwane są makra użytkownika i globalne wyrażenia regularne. |
snmptrap.fallback | ||
Wyłapuje wszystkie pułapki SNMP ze zgodnych adresów, które nie zostały wyłapane przez żadne pozycje snmptrap[] dla tego interfejsu | Pułapka SNMP | Pozycja ta może być ustawiona tylko dla interfejsów SNMP. Pozycja ta jest obsługiwana od Zabbix 2.0.0. |
Dopasowanie wieloliniowych wyrażeń regularnych nie jest jeszcze obsługiwane.
Żeby przetworzyć znaczniki czasu Typ informacji należy ustawić na 'Log'. Należy zauważyć, że inne formaty takie jak 'Numeryczny' również są dozwolone, jednakże mogą wymagać własnej obsługi pułapki.
Żeby monitorowanie pułapek SNMP działało, najpierw musi być poprawnie ustawione.
Żeby odczytać pułapki, serwer lub proxy Zabbix musi być skonfigurowane tak, by uruchamiał się proces pułapki SNMP i musi wiedzieć gdzie jest plik, do którego pisze SNMPTT lub odbiornik pułapki perl. Żeby to zrobić, należy wprowadzić odpowiednie zmiany w pliku konfiguracyjnym (zabbix_server.conf lub zabbix_proxy.conf):
Po pierwsze, snmptrapd powinno być skonfigurowane do pracy z SNMPTT.
Dla zwiększenia wydajności, SNMPTT powinno być skonfigurowane jako demon używający snmptthandler-embedded do przekazywania pułapek. Zobacz instrukcję konfiguracji SNMPTT na jego stronie domowej:
http://snmptt.sourceforge.net/docs/snmptt.shtml
Gdy już SNMPTT zostanie skonfigurowane do odbierania pułapek, należy je skonfigurować do logowania pułapek:
Teraz należy sformatować pułapki, żeby Zabbix mógł je rozpoznać (edycja snmptt.conf):
Nie należy używać nieznanych pułapek - Zabbix nie będzie potrafił ich rozpoznać. Nieznane pułapki mogą być obsłużone poprzez zdefiniowanie zdarzenia ogólnego w snmptt.conf:
EVENT general .* "General event" Normal
Wymagania: Perl, Net-SNMP skompilowany z --enable-embedded-perl (domyślnie wykonywane od Net-SNMP 5.4)
Odbiornik pułapek Perl (lpatrz misc/snmptrap/zabbix_trap_receiver.pl) może być używany do bezpośredniego przekazywania pułapek z snmptrapd do Zabbix. Żeby go skonfigurować należy:
Jeżeli nazwa skryptu nie jest wpisana w cudzysłowach, snmptrapd nie uruchomi się i pojawią się komunikaty podobne do tych:
Wszystkie własne odbiorniki pułapek perl i konfiguracje pułapek SNMPTT muszą formatować pułapkę w nastepujący sposób: [znacznikczasu] [pułapka, część 1] ZBXTRAP [adres] [pułapka, część 2], gdzie
Należy zauważyć, że "ZBXTRAP" i "[adres]" zostaną wycięte podczas przetwarzania komunikatu. Jeżeli pułapka sformatowana jest w inny sposób, Zabbix może przetworzyć pułapki w sposób nieoczekiwany.
Przykładowa pułapka:
11:30:15 2011/07/27 .1.3.6.1.6.3.1.1.5.3 Normal "Status Events" localhost - ZBXTRAP 192.168.1.1 Link down on interface 2. Admin state: 1. Operational state: 2
Spowoduje to przekazanie następującej pułapki dla interfejsu SNMP: IP=192.168.1.1:
11:30:15 2011/07/27 .1.3.6.1.6.3.1.1.5.3 Normal "Status Events" localhost - Link down on interface 2. Admin state: 1.
Zabbix nie udostępnia żadnego systemu rotowania logów - powinno to być obsłużone przez użytkownika. Żeby nie utracić żadnej pułapki, rotacja logów powinna najpierw zmienić nazwy starego pliku a dopiero później go skasować:
Z powodu metody implementacji pliku pułapki, Zabbix do rozróżniania plików wymaga systemu, który obsługuje identyfikatory węzłów (inode) (informacja pobierana jest przez wywołanie stat()).
Przykład ten wykorzystuje snmptrapd + SNMPTT do przekazania pułapki do serwera Zabbix. Ustawienia:
Co daje w efekcie:
Przykład ten wykorzystuje SNMPTT jako traphandle. Dla zwiększenia wydajności przekazywania pułapek, z snmptrapd do SNMPTT lub bezpośrednio do Zabbix, w systemach produkcyjnych, należy użyć wbudowanego Perla.