Чому порушується SNMP?


28

Версія Ubuntu: Ubuntu 14.04.1 LTS

Версія SNMP: 5.7.2

Короткий випуск: багато записів у файлі конфігурації "за замовчуванням" порушено. Що насправді не має значення, тому що я навіть не можу запустити SNMP.

Бажаний результат: Я хочу працювати примірник SNMP, який має якомога більше функцій за замовчуванням.

ПРИМІТКА: З багатьох джерел, включаючи веб-сайти Ubuntu, що належать Canonical, сказано, що я повинен змінювати exportі SNMPDOPTS, щоб мати базовий функціонал.

/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 <pauladams@nanana.com>
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. Хоча ця конфігурація завантажується і, мабуть, працює. Насправді нічого не можна запитувати з цього примірника SNMP з віддаленого пристрою. У кінцевому рахунку зв’язок закінчується.

  2. Запит на нього з самого сервера не дає нічого.

snmpwalk -Os -c public -v 1 localhost система

system: Unknown Object Identifier (Sub-id not found: (top) -> system)
  1. Мені довелося видалити записи "agentAddress", оскільки програмне забезпечення постійно панікувало при кожному спробі обробляти цю команду. (Незважаючи на те, що це за замовчуванням і спосіб, який він повинен бути вказаний у конфігурації.)

/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

служба судо --status-all

[ - ]  snmpd
  1. Мені довелося видалити декілька записів за замовчуванням у конфігурації, оскільки вони також викликали помилки при їх запуску.

/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.

Наступні інструкції перевірені для роботи 14.04 askubuntu.com/a/223734/106495
Кевін Боуен

Відповіді:


2

SNMP не порушений. Процес його роботи просто трохи заплутаний.

Наступні кроки перевірені для роботи 14.04:

Після встановлення SNMP та його демона ( sudo apt-get install snmp snmpd) вам потрібно буде відредагувати файл /etc/snmp/snmp.confта прокоментувати рядок, що містить "mibs:"

У цьому файлі змініть рядок:

mibs :

до

#mibs : 

Далі, припустивши, що ви цього ще не зробили, вам потрібно буде отримати повний набір МЕТФ IETF. Ці файли за замовчуванням не надсилаються до систем Debian / Ubuntu через проблеми з ліцензуванням.

З терміналу ( Ctrl- Alt- t) введіть наступні команди:

sudo apt-get install snmp-mibs-downloader

sudo download-mibs

Потім вам потрібно буде змінити /etc/snmp/snmpd.conf.

  1. Дозволити системі SNMP отримувати запити на інтерфейси, відмінні від її адреси. Рядки для цього повинні виглядати приблизно так:

    #  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
    

    Зауважте, що це дозволить будь-якій системі запитувати вашу машину. Вам потрібно буде налаштувати це, щоб обмежити доступ SNMP до вашого пристрою.

  2. Тепер ви хочете змінити свій SNMP-рядок лише для читання publicна спеціальний рядок на ваш вибір, як показано нижче:

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

    Примітка. Видалення -V systemonlyз рядка дозволить отримати доступ до всього дерева MIB, а не обмежити його системною частиною дерева.

  3. Перезапустіть демон SNMP

    sudo service snmpd restart
    

Нарешті, ваш запит SNMP повинен відповідати належним чином.

наприклад:

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

Додаткову інформацію див. У наступних відповідях:

Як отримати або налаштувати IP-MIB в Ubuntu 12.04?

Що таке SNMP?


0

Я б почав з конфігурації запасів з метою .1, включити журнал налагодження і спробувати отримати запити до OID. Я, чесно кажучи, ніколи не приймав MIB, і оскільки я використовував тільки SNMP для таких речей, як MRTG та кактуси, мені ніколи не потрібно було більше знати. Подивіться, чи можна отримати найпростішу можливу конфігурацію, а потім додайте один елемент за один раз під час складання відповідних файлів журналу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.