Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

1 Dynamiczne indeksy

Przegląd

Istnieje możliwość odszukania wymaganego numeru indeksu (na przykład, interfejsu sieciowego) spośród OID-ów SNMP, jednakże czasami nie możemy być do końca pewni, że numer indeksu pozostanie zawsze taki sam.

Numery indeksu mogą być dynamiczne - mogą się zmieniać z upływem czasu a w konsekwencji mogą przestać działać pozycje.

Żeby zapobiec takiemu scenariuszowi, istnieje możliwość zdefiniowania OID, które będzie odporne na zmianę numeru indeksu.

Na przykład, jeżeli chcemy dodać wartość indeksu do ifInOctets odpowiadającą interfejsowi GigabitEthernet0/1 na urządzeniu Cisco, należy użyć następującego OID:

ifInOctets["index","ifDescr","GigabitEthernet0/1"]
Składnia

Użyto tutaj specjalnej składni dla OID:

<OID danych>["index","<bazowe OID indeksu>","<ciąg do wyszukania>"]

Parametr Opis
OID danych Główne OID użyte do pobrania danych pozycji.
index Metoda przetwarzania. Aktualnie jest tylko jedna metoda przetwarzania:
index - szuka indeksu i dodaje do OID danych
bazowe OID indeksu W celu znalezienia wartości odpowiadającej ciągowi będzie przeszukiwany ten OID.
ciąg do wyszukania Ciąg używany do dokładnego dopasowania z wartością podczas wyszukiwania. Wielkość liter ma znaczenie.

Przykład

Pobranie ilości pamięci używanej przez proces apache.

Jeżeli użyje się takiej składni OID:

HOST-RESOURCES-MIB::hrSWRunPerfMem["index","HOST-RESOURCES-MIB::hrSWRunPath", "/usr/sbin/apache2"]

numer indeksu będzie wyszukiwany w:

...
       HOST-RESOURCES-MIB::hrSWRunPath.5376 = STRING: "/sbin/getty"
       HOST-RESOURCES-MIB::hrSWRunPath.5377 = STRING: "/sbin/getty"
       HOST-RESOURCES-MIB::hrSWRunPath.5388 = STRING: "/usr/sbin/apache2"
       HOST-RESOURCES-MIB::hrSWRunPath.5389 = STRING: "/sbin/sshd"
       ...

I mamy indeks, 5388. Indeks zostanie dodany do OID danych, by można było pobrać interesującą nas wartość z:

HOST-RESOURCES-MIB::hrSWRunPerfMem.5388 = INTEGER: 31468 KBytes

Przechowywanie wyszukanych indeksów (cache)

Gdy następuje zapytanie o pozycję z dynamicznym indeksem, Zabbix pobiera i przechowuje całą tabelę SNMP dla OID bazowego, nawet jeżeli zgodne dane są szybko znalezione. Dzieje się tak dlatego, że później do tego samego bazowego OID może odwołać się inna pozycja - Zabbix będzie szukał indeksu w cache'u, zamiast pytać monitorowany host ponownie. Należy zauważyć, że każdy proces pobierania używa osobnego cache'a.

W każdej następnej operacji pobrania wartości weryfikowany jest tylko znaleziony indeks. Jeżeli się nie zmienił, wartość jest pobierana. Jeżeli się zmienił, cache zostanie przebudowany - każdy proces pobierania, który trafi na zmieniony indeks przeszuka tabelę indeksów SNMP jeszcze raz.