====== Сервис SNMP ====== * https://ru.wikipedia.org/wiki/Management_Information_Base ===== Пакет net-snmp ===== ==== Установка snmp консоли ==== === Debian/Ubuntu === server# apt install snmp snmp-mibs-downloader server# :> /etc/snmp/snmp.conf === Windows === * [[http://sourceforge.net/projects/net-snmp/files/|Download Latest Version]] * [[http://val.bmstu.ru/unix/net-snmp-5.6.1.1-1.x86.exe]] MIBDIRS=C:\usr\share\snmp\mibs ==== Вывод иерархии OID ==== server# snmptranslate -Tp | more ==== Настройка snmp агента ==== === Debian/Ubuntu === gate# apt install snmpd gate# systemctl status snmpd.service или gate# cat /etc/default/snmpd ... #export MIBS= ... SNMPDRUN=yes ... gate# cd /etc/snmp/ === FreeBSD === gate# pkg install net-snmp gate# service snmpd rcvar gate# mkdir /usr/local/etc/snmp/ gate# cd /usr/local/etc/snmp/ === FreeBSD/Debian/Ubuntu === gate# cat snmpd.conf rocommunity public 0.0.0.0/0 ==== Настройка snmptrapd сервиса ==== === Debian/Ubuntu === * Если в пакете отсутствует утилита /usr/bin/traptoemail то понадобится [[Сервис MTA]] и [[UA mail]] server# apt install snmptrapd server# systemctl enable snmptrapd ubuntu24# systemctl status snmptrapd.socket === Debian/Ubuntu === * Срабатывает более точный traphandle * !!! В Ubuntu24 snmptrapd работает с правами Debian-snmp, надо использовать [[Пакет sudo]] server# cat /etc/snmp/snmptrapd.conf #IF-MIB::linkDown IF-MIB::linkUp #traphandle .1.3.6.1.6.3.1.1.5.* mail -s snmptrap userX@isp.un traphandle .1.3.6.1.6.3.1.1.5.* /usr/bin/traptoemail -s mail.isp.un userX@isp.un #traphandle .1.3.6.1.6.3.1.1.5.* /usr/bin/traptoemail -s localhost student@corpX.un traphandle SNMPv2-SMI::enterprises.9.9.43.* /root/cisco-backup-config.sh #traphandle SNMPv2-SMI::enterprises.9.9.43.* sudo /root/cisco-backup-config.sh #router RMON traphandle SNMPv2-SMI::mib-2.16.0.* /usr/bin/traptoemail -s localhost student@corpX.un traphandle default cat >> /tmp/traps authCommunity execute writetrap # service snmptrapd start # snmptrap -v 1 -c writetrap 127.0.0.1 '.1.3.6.1.6.3.1.1.5.3' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.3 s "teststring000" # tail -f /tmp/traps # cat /root/cisco-backup-config.sh #!/bin/sh read cisco_name while read l;do :; done #echo $cisco_name /usr/bin/sshpass -p cisco /usr/bin/scp ${cisco_name}:running-config /srv/tftp/${cisco_name}-running-config #/usr/bin/sshpass -p cisco /usr/bin/scp -O ${cisco_name}:running-config /srv/tftp/${cisco_name}-running-config cd /srv/tftp/ /usr/bin/git add * /usr/bin/git --no-optional-locks status | grep 'modified\|deleted\|new file' | /usr/bin/git commit -a -F - !!! На стенде при первой итерации большие задержки ==== Варианты использования snmp консоли в режиме чтения ==== === Перебор всех значений OID устройства === server# snmpwalk -On -c public -v2c router 1 === Определение имени устройства === server# snmpget -c public -v2c router .1.3.6.1.2.1.1.5.0 server# snmpget -c public -v2c router SNMPv2-SMI::mib-2.1.5.0 server# snmpget -c public -v2c router SNMPv2-MIB::sysName.0 server# snmpget -c public -v2c router sysName.0 server# snmpwalk -c public -v2c router sysName === Определение uptime устройства === server# snmpget -c public -v2c router sysUpTime.0 === Получение mac address table === radio$ snmpwalk -On -v2c -c public@101 switch 1.3.6.1.2.1.17.4.3.1.2 === Определение загрузки CPU устройства === server# snmpget -c public -v2c router .1.3.6.1.4.1.9.2.1.56.0 === Вывод списка интерфейсов устройства === server# snmpwalk -c public -v2c -On router ifDescr === Вывод количества байт, прошедших через порт устройства с момента его включения === FastEthernet0/0 server# snmpget -c public -v2c -On router ifInOctets.1 server# snmpget -c public -v2c -On router ifHCInOctets.1 Port-channel1 server# snmpget -c public -v2c -On router ifOutOctets.5 server# snmpget -c public -v2c -On router ifHCOutOctets.5 === Информация по протоколу CDP === server# snmpwalk -c public -v2c router .1.3.6.1.4.1.9.9.23.1.2.1.1 ==== Варианты использования протокола SNMP в режиме записи ==== === Отключение/включение интерфейсов === server# snmpwalk -c write -v2c switch ifDescr server# snmpwalk -c write -v2c switch ifOperStatus server# snmpwalk -c write -v2c switch ifAdminStatus server# snmpset -c write -v2c switch ifAdminStatus.3 integer 2 server# snmpset -c write -v2c switch ifAdminStatus.3 integer 1 === Копирование файла конфигурации по tftp === * [[Общие настройки сетевого оборудования Cisco#Настройка snmp агента]] на router с разрешением на запись server# cat /srv/tftp/firewall.acl server# snmpset -c write -v2c router .1.3.6.1.4.1.9.2.1.53.192.168.X.10 string "firewall.acl" значение 192.168.X.10 в конце OID содержит адрес tftp сервера