[comment]: # (tags: mib, snmp)

[comment]: # ({8afcd82f-8afcd82f})
# 3 pliki MIB

[comment]: # ({/8afcd82f-8afcd82f})

[comment]: # ({80a94110-f224bb08})
#### Wprowadzenie

MIB oznacza bazę informacji zarządzania (Management Information Base). Pliki MIB umożliwiają używanie tekstowej reprezentacji OID (Object Identifier).
Podczas monitorowania urządzeń SNMP za pomocą Zabbix można używać surowych OID,
ale jeśli wygodniej jest używać reprezentacji tekstowej, należy zainstalować pliki MIB.

Na przykład

    ifHCOutOctets

jest tekstową reprezentacją OID

    1.3.6.1.2.1.31.1.1.1.10

[comment]: # ({/80a94110-f224bb08})

[comment]: # ({7b2aa063-5aed9e1b})
#### Instalacja plików MIB

W systemach opartych na Debianie:

    apt install snmp-mibs-downloader
    download-mibs

W systemach opartych na RedHat:

    dnf install net-snmp-libs

[comment]: # ({/7b2aa063-5aed9e1b})

[comment]: # ({02b2b423-5346f669})
#### Włączanie plików MIB

W systemach opartych na RedHat pliki MIB powinny być domyślnie włączone.
W systemach opartych na Debian należy edytować plik `/etc/snmp/snmp.conf` i zakomentować linię `mibs :`

    # Ponieważ pakiety snmp są dostarczane bez plików MIB z powodów licencyjnych, ładowanie
    # plików MIB jest domyślnie wyłączone. Jeśli dodano pliki MIB, można ponownie włączyć
    # ich ładowanie, zakomentowując poniższą linię.
    mibs :

[comment]: # ({/02b2b423-5346f669})

[comment]: # ({4bbacb8e-bb4c3c1f})
#### Testowanie plików MIB

Testowanie SNMP MIB można wykonać za pomocą narzędzia `snmpwalk`. Jeśli nie jest ono zainstalowane, skorzystaj z poniższych instrukcji.

W systemach opartych na Debianie:

    apt install snmp

W systemach opartych na RedHat:

    dnf install net-snmp-utils

Następnie poniższe polecenie nie powinno zwracać błędu podczas odpytywania urządzenia sieciowego:

    $ snmpwalk -v 2c -c public <NETWORK DEVICE IP> ifInOctets
    IF-MIB::ifInOctets.1 = Counter32: 176137634
    IF-MIB::ifInOctets.2 = Counter32: 0
    IF-MIB::ifInOctets.3 = Counter32: 240375057
    IF-MIB::ifInOctets.4 = Counter32: 220893420
    [...]

[comment]: # ({/4bbacb8e-bb4c3c1f})

[comment]: # ({9e9f20b6-87dbd7d4})
#### Używanie MIB-ów w Zabbixie

Najważniejsze, o czym należy pamiętać, to fakt, że procesy Zabbix nie są
informowane o zmianach wprowadzonych w plikach MIB. Dlatego po każdej zmianie
należy ponownie uruchomić serwer lub proxy Zabbix, na przykład:

    systemctl restart zabbix-server

Po tym zmiany wprowadzone w plikach MIB zaczną obowiązywać.

[comment]: # ({/9e9f20b6-87dbd7d4})

[comment]: # ({2a393106-efd836b8})
#### Używanie niestandardowych plików MIB

Istnieją standardowe pliki MIB dostarczane z każdą dystrybucją GNU/Linux.
Jednak niektórzy producenci urządzeń udostępniają własne.

Załóżmy, że chcesz użyć pliku MIB
[CISCO-SMI](ftp://ftp.cisco.com/pub/mibs/v2/CISCO-SMI.my). Poniższe
instrukcje pobiorą go i zainstalują:

    wget ftp://ftp.cisco.com/pub/mibs/v2/CISCO-SMI.my -P /tmp
    mkdir -p /usr/local/share/snmp/mibs
    grep -q '^mibdirs +/usr/local/share/snmp/mibs' /etc/snmp/snmp.conf 2>/dev/null || echo "mibdirs +/usr/local/share/snmp/mibs" >> /etc/snmp/snmp.conf
    cp /tmp/CISCO-SMI.my /usr/local/share/snmp/mibs

Teraz powinno być możliwe jego użycie. Spróbuj przetłumaczyć nazwę
obiektu *ciscoProducts* z pliku MIB na OID:

    snmptranslate -IR -On CISCO-SMI::ciscoProducts
    .1.3.6.1.4.1.9.1

Jeśli zamiast OID otrzymasz błędy, upewnij się, że wszystkie poprzednie
polecenia zostały wykonane bez błędów.

Tłumaczenie nazwy obiektu zadziałało, więc możesz już używać niestandardowego pliku MIB.
Zwróć uwagę na prefiks nazwy MIB (*CISCO-SMI::*) użyty w zapytaniu. Będzie
on potrzebny zarówno podczas korzystania z narzędzi wiersza poleceń, jak i Zabbix.

Nie zapomnij zrestartować serwera/proxy Zabbix przed użyciem tego pliku MIB
w Zabbix.

::: noteimportant
Pamiętaj, że pliki MIB mogą mieć zależności.
Oznacza to, że jeden MIB może wymagać innego. Aby spełnić te
zależności, musisz zainstalować wszystkie powiązane pliki
MIB.
:::

[comment]: # ({/2a393106-efd836b8})
