Dlaczego SNMP jest zepsuty?

28

Wersja Ubuntu: Ubuntu 14.04.1 LTS

Wersja SNMP: 5.7.2

Krótki problem: Wiele wpisów w „domyślnym” pliku konfiguracyjnym jest zepsutych. Co tak naprawdę nie ma znaczenia, ponieważ nie mogę nawet uruchomić SNMP.

Pożądany wynik: chcę działającą instancję SNMP, taką, która będzie mieć możliwie jak najwięcej domyślnych ustawień.

UWAGA: Z wielu źródeł, w tym stron internetowych Ubuntu należących do Canonical, mówi się, że muszę zmodyfikować exporti SNMPDOPTS, aby mieć podstawową funkcjonalność.

/etc/default/snmpd

export MIBS=UCD-SNMP-MIB
SNMPDRUN=yes
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid -c /etc/snmp/snmpd.conf'
TRAPDRUN=no
TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid'
SNMPDCOMPAT=yes

/etc/snmp/snmpd.conf

view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1
rocommunity public
rwcommunity nanana
sysLocation    vm1-ryd-wlo
sysContact     Paul Adams <[email protected]>
sysServices    72
disk       /     10000
disk       /var  5%
load   12 10 5
trapsink     localhost public
iquerySecName   internalUser
rouser          internalUser
master          agentx

/var/log/syslog

Oct  3 13:59:51 mdnsreflector-ryd-wlo snmpd[9120]: Server Exiting with code 1
Oct  3 14:00:09 mdnsreflector-ryd-wlo snmpd[9143]: Turning on AgentX master support.
Oct  3 14:00:09 mdnsreflector-ryd-wlo snmpd[9145]: NET-SNMP version 5.7.2

sudo service --status-all

[ + ]  snmpd

sudo service ufw status

Status: inactive
  1. Mimo że ta konfiguracja ładuje się i najwyraźniej działa. Nie można faktycznie zapytać o nic z tej instancji SNMP ze zdalnego urządzenia. Połączenie ostatecznie się skończyło.

  2. Zapytanie o to z samego serwera nic nie daje.

snmpwalk -Os -c public -v 1 system hosta lokalnego

system: Unknown Object Identifier (Sub-id not found: (top) -> system)
  1. Musiałem usunąć wpisy „agentAddress”, ponieważ oprogramowanie ciągle panikowało za każdym razem, gdy próbowało przetworzyć to polecenie. (Mimo że jest to ustawienie domyślne i sposób, w jaki powinien być wymieniony w konfiguracji).

/etc/var/syslog

Oct  3 14:10:32 mdnsreflector-ryd-wlo snmpd[9292]: Turning on AgentX master support.
Oct  3 14:10:32 mdnsreflector-ryd-wlo snmpd[9292]: Turning on AgentX master support.
Oct  3 14:10:32 mdnsreflector-ryd-wlo snmpd[9292]: Error opening specified endpoint "udp:161"
Oct  3 14:10:32 mdnsreflector-ryd-wlo snmpd[9292]: Server Exiting with code 1

usługa sudo - status-all

[ - ]  snmpd
  1. Musiałem usunąć kilka domyślnych wpisów w konfiguracji, ponieważ powodowały one również błędy podczas ich uruchamiania.

/etc/snmp/snmpd.conf

proc mount
proc ntalkd    4
proc sendmail    10 1
includeAllDisks 10%
extend    test1   /bin/echo  Hello, world!
extend-sh test2   echo Hello, world! ; echo Hi there ; exit 35

/ var / log / syslog

Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 90: Error: Already have an entry for this process.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 92: Error: Already have an entry for this process.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 94: Error: Already have an entry for this process.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 106: Error: includeAllDisks already specified.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 106: Error: #011ignoring: includeAllDisks 10%
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 146: Error: duplicate trigger name
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: message repeated 6 times: [ /etc/snmp/snmpd.conf: line 146: Error: duplicate trigger name]
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 148: Error: duplicate trigger name
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 148: Error: duplicate trigger name
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: duplicate table data attempted to be entered. row exists
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: Failed to register extend entry 'test1' - possibly duplicate name.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: duplicate table data attempted to be entered. row exists
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: Failed to register extend entry 'test2' - possibly duplicate name.
Paul Adams
źródło
Następujące instrukcje zostały zweryfikowane do pracy w dniu 14.04 askubuntu.com/a/223734/106495
Kevin Bowen

Odpowiedzi:

2

SNMP nie jest zepsuty. Proces jego uruchomienia jest nieco skomplikowany.

Następujące kroki zostały zweryfikowane do pracy 14.04:

Po zainstalowaniu SNMP i jego daemon ( sudo apt-get install snmp snmpd) musisz edytować plik /etc/snmp/snmp.confi skomentować wiersz zawierający „mibs:”

W tym pliku zmień wiersz:

mibs :

do

#mibs : 

Następnie, zakładając, że jeszcze tego nie zrobiłeś, będziesz musiał uzyskać pełny zestaw MIB IETF. Pliki te nie są domyślnie dostarczane w systemach Debian / Ubuntu z powodu problemów z licencjonowaniem.

W terminalu ( Ctrl- Alt- t) wprowadź następujące polecenia:

sudo apt-get install snmp-mibs-downloader

sudo download-mibs

Następnie musisz zmodyfikować /etc/snmp/snmpd.conf.

  1. Aby umożliwić SNMP system odbierać zapytania na interfejsach innych niż adres sprzężenia zwrotnego. Linie do tego powinny wyglądać następująco:

    #  Listen for connections from the local system only
    #  agentAddress  udp:127.0.0.1:161
    #  Listen for connections on all interfaces (both IPv4 *and* IPv6)
    agentAddress udp:161,udp6:[::1]:161
    

    Zauważ, że pozwoli to KAŻDEMU systemowi na zapytanie twojego komputera. Konieczne będzie dostosowanie tego ustawienia, aby ograniczyć dostęp SNMP do urządzenia.

  2. Teraz będziesz chciał zmienić ciąg SNMP tylko do odczytu z publicniestandardowego ciągu, który wybierzesz, jak poniżej:

    #rocommunity public  default    -V systemonly
    rocommunity <My$ecret$tr1nG> (don't use this example!)
    

    Uwaga: Usunięcie -V systemonlyz linii pozwoli na dostęp do całego drzewa MIB i nie ograniczy go do systemowej części drzewa.

  3. Uruchom ponownie demona SNMP

    sudo service snmpd restart
    

Na koniec zapytanie SNMP powinno teraz poprawnie odpowiadać.

na przykład:

snmpwalk -v 2c -c <My$ecret$tr1nG> <MachineName> ipadd

IP-MIB::ipAdEntAddr.127.0.0.1 = IpAddress: 127.0.0.1
IP-MIB::ipAdEntAddr.192.168.1.7 = IpAddress: 192.168.1.7
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntIfIndex.192.168.1.7 = INTEGER: 2
IP-MIB::ipAdEntNetMask.127.0.0.1 = IpAddress: 255.0.0.0
IP-MIB::ipAdEntNetMask.192.168.1.7 = IpAddress: 255.255.255.0
IP-MIB::ipAdEntBcastAddr.127.0.0.1 = INTEGER: 0
IP-MIB::ipAdEntBcastAddr.192.168.1.7 = INTEGER: 1

Dodatkowe informacje można znaleźć w następujących odpowiedziach:

Jak uzyskać lub skonfigurować IP-MIB w Ubuntu 12.04?

Co to jest SNMP?

Kevin Bowen
źródło
0

Chciałbym zacząć od standardowej konfiguracji z widokiem .1, włączyć rejestrowanie debugowania i spróbować uzyskać zapytania do OID. Szczerze mówiąc, nigdy nie zrozumiałem MIB-ów, a ponieważ używałem SNMP tylko do takich rzeczy jak MRTG i kaktusy, nigdy tak naprawdę nie musiałem wiedzieć więcej. Sprawdź, czy możesz uzyskać najprostszą możliwą konfigurację, a następnie dodawaj jeden element na raz, dostosowując odpowiednie pliki dziennika.

John Oliver
źródło