Задача: Сконфигурировать на системе Ubuntu 12.04.4 Server amd64 службу snmpd с целью съема информации посредством snmp.
Все дальнейшие действия рассматриваются на системе Ubuntu 12.04.4, как установить самые последние обновления безопасности можно обратившись к моей заметке.
Далее устанавливаю пакеты: snmp & snmpd в систему:
snmp – SNMP (Simple Network Management Protocol) applications
snmpd – SNMP (Simple Network Management Protocol) agents
ekzorchik@srv-mon:~$ sudo apt-get install snmpd snmp -y
После чего проверяю, какие версии пакетов установлены в системе:
ekzorchik@srv-mon:~$ sudo apt-show-version | grep snmp
sudo: apt-show-version: command not found
ekzorchik@srv-mon:~$ sudo apt-get install apt-show-versions -y
ekzorchik@srv-mon:~$ sudo apt-show-versions | grep snmp
libsnmp-base/precise-security uptodate 5.4.3~dfsg-2.4ubuntu1.2
libsnmp15/precise-security uptodate 5.4.3~dfsg-2.4ubuntu1.2
snmp/precise-security uptodate 5.4.3~dfsg-2.4ubuntu1.2
snmpd/precise-security uptodate 5.4.3~dfsg-2.4ubuntu1.2
Устанавливаю в систему базы MIB:
ekzorchik@srv-mon:~$ sudo apt-get install snmp-mibs-downloader -y
месторасположение их здесь /usr/share/mibs/
Далее нужно подправить файл snmpd:
ekzorchik@srv-mon:~$ sudo nano /etc/default/snmpd
export MIBS=/usr/share/mibs/
вместо это строки
SNMPDOPTS=’-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid’
приводим к виду вот этой:
SNMPDOPTS=’-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid -c /etc/snmp/snmpd.conf’
Резервную копию файла snmpd.conf создавать не будем, т. к. содержимое файла snmpd.conf буду создавать посредством запуска скрипта:
ekzorchik@srv-mon:~$ sudo snmpconf -g basic_setup
параметры которые будут сформированы мною в ходе ответов:
informsink srv-mon
trapcommunity ekzorchik
authtrapenable 1
syslocation home
syscontact ekzorchik
sysservices 15
rwcommunity ekzorchik
после в домашнем каталоге будет создан файл snmpd.conf:
ekzorchik@srv-mon:~$ ls -l snmpd.conf
-rw-r–r– 1 root root 2209 May 5 16:56 snmpd.conf
который нужно переместить в каталог /etc/snmp/snmpd.conf
ekzorchik@srv-mon:~$ sudo cp snmpd.conf /etc/snmp/
Проверяю, открыт ли порт 161 в системе:
ekzorchik@srv-mon:~$ sudo apt-get install nmap -y
ekzorchik@srv-mon:~$ sudo nmap -sU localhost -p 161
Starting Nmap 5.21 ( http://nmap.org ) at 2014-05-05 16:45 MSK
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0010s latency).
PORT STATE SERVICE
161/udp open snmp
Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds
ekzorchik@srv-mon:~$ sudo netstat -tulpn | grep snmpd | grep :161
udp 0 0 0.0.0.0:161 0.0.0.0:* 3797/snmpd
Если данные не снимаются, то нужно смотреть логи системы, что приложению не нравится:
ekzorchik@srv-mon:~$ snmpwalk -Os -Oq -v1 -c ekzorchik 127.0.0.1 .
Timeout: No Response from 127.0.0.1
ekzorchik@srv-mon:~$ sudo tail -f /var/log/syslog
May 5 18:21:37 srv-mon snmpd[6581]: iquerySecName has not been configured – internal queries will fail
нужно добавить в файл snmpd.conf
iquerySecName 15
После перезапускаем службу snmpd:
ekzorchik@srv-mon:~$ sudo service snmpd restart
* Restarting network management services:
И параметры сгенерированные в файле snmpd.conf начинают предоставлять информацию по системе:
ekzorchik@srv-mon:~$ snmpwalk -v1 -c ekzorchik localhost | more
iso.3.6.1.2.1.1.1.0 = STRING: “Linux srv-mon 3.2.0-23-generic #36-Ubuntu SMP Tue
Apr 10 20:39:51 UTC 2012 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: (41324) 0:06:53.24
iso.3.6.1.2.1.1.4.0 = STRING: “ekzorchik”
iso.3.6.1.2.1.1.5.0 = STRING: “srv-mon”
iso.3.6.1.2.1.1.6.0 = STRING: “home”
iso.3.6.1.2.1.1.7.0 = INTEGER: 15
iso.3.6.1.2.1.1.8.0 = Timeticks: (0) 0:00:00.00
и т. д.
Вот собственно и все что нужно и как нужно сделать, чтобы можно было с системы снимать информацию посредством обращения по SNMP. На этом всё, с уважением ekzorchik.
Итоговый конфиг на Ubuntu 12.04.5 Server amd64 по этой заметки будет следующий:
ekzorchik@srv-serv:~$ sudo nano /etc/snmp/snmpd.conf
com2sec local 127.0.0.1/32 public
#com2sec local 0.0.0.0/24 public
com2sec local 192.168.9.0/24 public
group MyROGroup v1 local
group MyROGroup v2c local
group MyROGroup usm local
view all included .1 80
access MyROGroup “” any noauth exact all none none
syslocation MyLocation
iquerySecName 15
ekzorchik@srv-serv:~$ sudo service snmpd restart
ekzorchik@dv6:~$ snmpwalk -v1 -c public 192.168.9.249 | head -n 10
iso.3.6.1.2.1.1.1.0 = STRING: “Linux srv-serv 3.13.0-32-generic #57~precise1-Ubuntu SMP Tue Jul 15 03:51:20 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: (4093) 0:00:40.93
iso.3.6.1.2.1.1.4.0 = STRING: “root”
iso.3.6.1.2.1.1.5.0 = STRING: “srv-serv”
iso.3.6.1.2.1.1.6.0 = STRING: “MyLocation”
iso.3.6.1.2.1.1.8.0 = Timeticks: (0) 0:00:00.00
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