Настройка SNMP Ubuntu 12.04

Дата: 27/05/2014
Тема: Linux

SNMP (англ. Simple Network Management Protocol — простой протокол сетевого управления) — стандартный интернет-протокол для управления устройствами в IP-сетях на основе архитектур UDP/TCP. К поддерживающим SNMP устройствам относятся маршрутизаторы, коммутаторы, серверы, рабочие станции, принтеры, и другие. Протокол обычно используется в системах сетевого управления для контроля подключенных к сети устройств на предмет условий, которые требуют внимания администратора.

SNMP предоставляет данные для управления в виде переменных, описывающих конфигурацию управляемой системы. Эти переменные могут быть запрошены (а иногда и заданы) управляющими приложениями.

Кроме управления устройствами, SNMP используют и для мониторинга.

Установка SNMPD, SNMP

#apt-get install snmpd snmp

Настройка SNMPD

Редактируем файл /etc/snmp/snmpd.conf

#nano /etc/snmp/snmpd.conf

приводим файл к виду:

syslocation Odessa, UA
syscontact admin 'at' andy.od.ua
sysservices 0
rocommunity ServerRO 192.168.0.0/24
rwcommunity ServerRW 192.168.0.0/24

  1. syslocation - расположение сервера
  2. syscontact - администратор сервера
  3. sysservices - лимит запущенных процессов при запросе
  4. rocommunity - сообщество только для чтения с доступом только для локальной сети
  5. rwcommunity - сообщество для чтения и записи с доступом только для локальной сети

перезапускаем службу snmpd

#service snmpd restart

Теперь, можем послать запрос с помощью команды snmpwalk, команда snmpwalk автоматически выполняет серию snmpnext команд внутри заданного OID'ом диапазона.

OID (Object IDentification) - Идентификатор объекта, например 3.6.1.2.1.1.1.0

#snmpwalk -On -c ServerRO -v 2c localhost | less
iso.3.6.1.2.1.1.1.0 = STRING: "Linux websrv 3.11.0-20-generic #34~precise1-Ubuntu SMP Thu Apr 3 17:25:07 UTC 2014 x86_64"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (7436078) 20:39:20.78
iso.3.6.1.2.1.1.4.0 = STRING: "admin 'at' andy.od.ua"
iso.3.6.1.2.1.1.5.0 = STRING: "websrv"
iso.3.6.1.2.1.1.6.0 = STRING: "Odessa, UA"
iso.3.6.1.2.1.1.7.0 = INTEGER: 0
iso.3.6.1.2.1.1.8.0 = Timeticks: (5) 0:00:00.05
iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.10.3.1.1
iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.11.3.1.1
iso.3.6.1.2.1.1.9.1.2.3 = OID: iso.3.6.1.6.3.15.2.1.1
iso.3.6.1.2.1.1.9.1.2.4 = OID: iso.3.6.1.6.3.1
iso.3.6.1.2.1.1.9.1.2.5 = OID: iso.3.6.1.2.1.49
iso.3.6.1.2.1.1.9.1.2.6 = OID: iso.3.6.1.2.1.4
iso.3.6.1.2.1.1.9.1.2.7 = OID: iso.3.6.1.2.1.50
iso.3.6.1.2.1.1.9.1.2.8 = OID: iso.3.6.1.6.3.16.2.2.1
iso.3.6.1.2.1.1.9.1.3.1 = STRING: "The SNMP Management Architecture MIB."
......

Можно получить значение конкретного OID с помощью Команды snmpget (используется для чтения информации с устройства заданного OID), прочитаем значение OID'а 3.6.1.2.1.1.1.0 содержащий информацию о системе:

#snmpget -v 2c -c ServerRO localhost iso.3.6.1.2.1.1.1.0
iso.3.6.1.2.1.1.1.0 = STRING: "Linux websrv 3.11.0-20-generic #34~precise1-Ubuntu SMP Thu Apr 3 17:25:07 UTC 2014 x86_64"

Установка MIB

OID выглядит не так информативно без MIB (Managment Information Base - Информационная база управления), поэтому поставим базу MIB'ов.

#apt-get install snmp-mibs-downloader
#download-mibs

Теперь можно запрашивать данные в виде

#snmpget -m ALL -v 2c -c ServerRO  localhost sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Linux la2server 2.6.31-23-server #75-Ubuntu SMP Fri Mar 18 19:23:09 UTC 2011 x86_64

Данные с lm-sensors

установка lm-sensors если он еще не установлен

#apt-get install lm-sensors
#sensors
acpitz-virtual-0
Adapter: Virtual device
temp1:        +27.8°C  (crit = +106.0°C)
temp2:        +29.8°C  (crit = +106.0°C)
#service snmpd restart

OID (.1.3.6.1.4.1.2021.13.16) = MIB (lmSensors)

#snmpwalk -c ServerRO -v 2c localhost lmSensors
LM-SENSORS-MIB::lmTempSensorsIndex.1 = INTEGER: 0
LM-SENSORS-MIB::lmTempSensorsIndex.2 = INTEGER: 1
LM-SENSORS-MIB::lmTempSensorsIndex.3 = INTEGER: 2
LM-SENSORS-MIB::lmTempSensorsIndex.4 = INTEGER: 3
LM-SENSORS-MIB::lmTempSensorsDevice.1 = STRING: temp1
LM-SENSORS-MIB::lmTempSensorsDevice.2 = STRING: temp1
LM-SENSORS-MIB::lmTempSensorsDevice.3 = STRING: temp2
LM-SENSORS-MIB::lmTempSensorsDevice.4 = STRING: temp2
LM-SENSORS-MIB::lmTempSensorsValue.1 = Gauge32: 27800
LM-SENSORS-MIB::lmTempSensorsValue.2 = Gauge32: 106000
LM-SENSORS-MIB::lmTempSensorsValue.3 = Gauge32: 29800
LM-SENSORS-MIB::lmTempSensorsValue.4 = Gauge32: 106000
или конкретный OID
#snmpget -m ALL -v 2c -c ServerRO localhost lmTempSensorsValue.1
LM-SENSORS-MIB::lmTempSensorsValue.1 = Gauge32: 45000

Теперь можно использовать snmp для мониторинга или управление сервером. Программы для мониторинга и управления: Cacti, Nagios, SNMPc, NetXMS, Zabbix ....



Это статья "Домашняя страничка Andy"
http://andy.od.ua

URL этой статьи: http://andy.od.ua/news_48.html

Яндекс.Метрика