⇡#Введение
Протокол SNMP, который мы будем использовать, изначально был предназначен для удалённого управления различными параметрами устройств, подключённых к сети. Нас, впрочем, интересует возможность не столько управления, сколько получения разнообразной информации о текущем состоянии этих устройств. Ныне поддержка SNMP встроена в большую часть оборудования, которое хоть как-то можно подключить к сети: роутеры, модемы, принтеры, ПК под управлением современных ОС, сетевые накопители, смартфоны и так далее. В общем, спектр устройств довольно велик, а уж число параметров, которые можно просмотреть, стремится к бесконечности.
В качестве примера возьмём уже немолодой роутер ASUS WL-500gP с последней прошивкой «от Олега» (от энтузиастов). В данном случае выбор конкретно этой модели роутера непринципиален — вы можете воспользоваться любым другим, на который можно установить альтернативную прошивку. Обязательно лишь наличие хотя бы одного свободного USB-порта на нём. Выбор конкретной прошивки тоже не очень важен — почти все из них поддерживают Optware, что нам и надо. Некоторые моменты относительно настроек альтернативных прошивок мы уже рассматривали в статьях про TomatoUSB и ZyXel Keenetic.
Полезно будет хотя бы бегло ознакомиться с этими материалами. Мы не будем рассматривать процесс установки альтернативной прошивки, её базовой настройки, процесс подключения к роутеру по SSH/Telnet, открытие портов для доступа из Интернета, включение DDNS и так далее. Всё это уже рассматривалось в указанных статьях, а дополнительную информацию относительно работы с вашей прошивкой можно найти на официальных сайтах и простым «гуглением».
⇡#Подготовка
Итак, приступим. В первую очередь нам понадобится ненужная флешка объёмом не меньше 512 Мбайт. На ней надо создать два раздела — отдать 64 Мбайт под Linux swap, а остальное отформатировать в ext3. Для разбивки можно воспользоваться, например, утилитами от Acronis или свободным GParted. В настройках роутера System Setup → Services надо включить доступ по Telnet или SSH и поддержку USB-накопителей (Enable USB Storage). Ещё надо включить SNMP в соответствующем подразделе IP Config и запомнить значение Community name. Его, кстати, полезно поменять с public на что-нибудь своё.
После применения настроек и последующей перезагрузки роутера можно воткнуть флешку в USB-порт и приступить к настройке. Подключаемся по Telnet или SSH к роутеру (логин и пароль совпадают с таковыми для веб-интерфейса), а затем устанавливаем Optware и минимальный набор утилит. Для этого надо смонтировать нашу флешку и выполнить следующие команды в консоли:
mkdir /tmp/harddisk/opt
mount -o bind /tmp/harddisk/opt /opt
mkdir -p /opt/tmp/ipkg
ipkg.sh update
ipkg.sh install ipkg-opt
ipkg update
Теперь устанавливаем всё самое нужное — текстовый редактор nano, веб-сервер lighttpd и систему мониторинга mrtg. Все необходимые дополнительные модули установятся автоматически.
ipkg install nano
ipkg install lighttpd
ipkg install mrtg
Включим раздел подкачки. Посмотрим на вывод команды fdisk -l и определим, какой из разделов помечен как Linux swap — его и надо подключить командой swapon. (Вместо /dev/sda1 укажите свой раздел!)
Чтобы не выполнять эти действия вручную, пропишем их в автозагрузку (скрипт post-mount):
mkdir -p /usr/local/sbin/
touch /usr/local/sbin/post-mount
chmod +x /usr/local/sbin/post-mount
nano /usr/local/sbin/post-mount
В этот файл надо добавить следующие строчки:
#!/bin/sh
/bin/mount -o bind /tmp/harddisk/opt /opt
/sbin/swapon /dev/sda1
Сохраняем файл (F2, Y, Enter) и выполняем ещё один набор команд для сохранения настроек:
flashfs save && flashfs commit && flashfs enable
Как и было сказано выше, для вашей прошивки набор инструкций может отличаться. Главное, установить Optware и необходимый софт, а также по желанию включить подкачку (у того же WL-500gP памяти не очень много, так что своп очень пригодится).
⇡#Настройка lighttpd
Собственно, никакой настройки-то делать не придётся — надо лишь запустить веб-сервер, включить его в автозагрузку и открыть нужный порт (по умолчанию 8081). В веб-интерфейсе роутера в разделе NAT Setting → Virtual Server включаем проброс портов и добавляем правило для IP-адреса роутера.
Попробуем запустить lighttpd следующей командой:
/opt/etc/init.d/S80lighttpd start
Для проверки открываем в браузере страничку по адресу http://ip-адрес-роутера:8081/. Если всё в порядке, то вы увидите одинокую надпись «lighttpd server is running». Также надо убедиться, что настроен DDNS и lighttpd из Сети по адресу http://ddns-имя-роутера:8081/. После этого можно добавить строчку для запуска веб-сервера в конец файла /usr/local/sbin/post-mount с помощью nano.
⇡#Настройка MRTG
А вот теперь самое сложное и интересное. MRTG будет заниматься сбором различной статистики и выводить её в виде наглядных графиков через веб-интерфейс. Директорией по умолчанию для веб-документов прописана /opt/share/www/. В ней надо создать ещё одну папку для хранения файлов MRTG. А файлы конфигурации мы будем хранить в каталоге /opt/etc/mrtg/.
mkdir -p /opt/share/www/mrtg
mkdir -p /opt/etc/mrtg/
Для начала разберёмся с созданием конфигурационного файла для снятия статистики с роутера. Это не так интересно, потому что в прошивке Олега и так есть вывод графиков загруженности сетевых интерфейсов и CPU, но для знакомства с параметрами вполне подойдёт. Выполняем следующие команды:
cfgmaker —output=/opt/etc/mrtg/mrtg.cfg public@localhost
indexmaker —output=/opt/share/www/mrtg/index.html /etc/mrtg/mymrtg.cfg
Первая команда опрашивает SNMP-сервер, встроенный в роутер, и на основе полученных данных автоматически формирует конфигурационный файл /opt/etc/mrtg/mrtg.cfg. Опрос идёт по community с именем public (см. настройки SNMP в начале) на loopback-интерфейсе роутера (можно было легко подставить внутренний IP-адрес вместо localhost — эффект был бы тем же). Вторая команда генерирует html-файл на основе файла настроек — добавляет заготовки для будущих графиков, ссылки и так далее.
nano /opt/etc/mrtg/mrtg.cfg
С помощью nano откроем файл /opt/etc/mrtg/mrtg.cfg и добавим в начале несколько строк:
Options[_]: growright, bits
RunAsDaemon: Yes
EnableIPv6: no
WorkDir: /opt/share/www/mrtg
Что мы сделали? Во-первых, перевели отсчёт из байтов в биты и заставили рисоваться графики справа налево. Во-вторых, включили запуск MRTG в режиме демона, то есть программа будет тихонечко висеть в фоне и каждые 5 минут обновлять графики. Протокол IPv6 нам не нужен — отключаем его. Последний параметр задаёт рабочую папку MRTG, где хранятся все основные файлы.
Для сетевых интерфейсов роутера все настройки идентичны. В квадратных скобках задаётся имя отслеживаемого параметра (скорость, загрузка, потребление чего-либо и так далее). У каждого параметра есть ряд опций. Мы сейчас не будем рассматривать их все, тем более что назначение каждой из них вполне ясно из названия. Полный список всех возможных опций их настроек можно найти в официальной документации MRTG.
Наиболее важной является первая строка вида Target[имя_параметра]: OID:имя_community@адрес_устройства:. OID — это уникальный идентификатор объекта или, иначе говоря, считываемого параметра. К нему мы ещё вернёмся, а пока что основную работу за нас сделал cfgmaker. В SetEnv можно задавать внутренние переменные, а в MaxBytes указывается максимальное значение, которое может принять измеряемый параметр (например, скорость LAN-портов в WL-500gP физически не может быть больше 100 Мбит/с). В Title указывается подпись к генерируемому графику, а в PageTop можно ввести более подробное описание, которое будет показываться при просмотре расширенной статистики. Первую строчку в PageTop полезно обрамить тегами <h1></h1>.
По умолчанию cfgmaker генерирует конфигурацию для всех сетевых интерфейсов. Те, что вам нужны, надо раскомментировать (убрать # и пробел в начале каждой строки), либо наоборот — закомментировать или вовсе удалить остальные. На OID следует обращать особое внимание. Например, простой сменой eth0 на ppp0 ничего не добьёшься — надо менять и OID. Благо даже в закомментированных конфигурациях в описании указано имя интерфейса. Какой из них за что отвечает — надо опять же узнавать на сайте самой прошивки. В нашем примере ppp0 — это соединение c Интернетом посредством PPTP/L2TP/PPPoE, eth1 — беспроводная сеть, а br0 — локальная сеть.
Сохраняем файл mrtg.cfg, ещё раз запускаем indexmaker с теми же параметрами и включаем mrtg.
mrtg /opt/etc/mrtg/mrtg.cfg
При первом запуске или смене настроек mrtg может ругнуться на недостающие файлы. А вообще после любых изменений в mrtg.cfg рекомендуется обновлять index.html и перезапускать mrtg.
killall mrtg
indexmaker —output=/opt/share/www/mrtg/index.html /etc/mrtg/mymrtg.cfg
mrtg /opt/etc/mrtg/mrtg.cfg
Обновите страничку в браузере с открытой статистикой mrtg и полюбуйтесь на результат своих трудов. Можно дополнить имеющиеся графики, например, статистикой использования CPU. Вот пример настроек, взятый на форуме «олеговской» прошивки. В конец конфигурационного файла mrtg надо добавить следующие строки:
Target[cpu]: /opt/etc/mrtg/cpu.sh
MaxBytes[cpu]: 500
Title[cpu]: Server CPU Load (5 minute average)
YLegend[cpu]: Load*100
ShortLegend[cpu]: load
Legend1[cpu]: CPU Load (x 100)
Legend2[cpu]:
LegendI[cpu]: 1min load
LegendO[cpu]: 5min load
PageTop[cpu]: <h1>Server average CPU Load</h1>
Options[cpu]: gauge,nopercent,integer,growright
Ну а затем создать непосредственно скрипт для снятия этой самой статистики…
touch /opt/etc/mrtg/cpu.sh
chmod +x /opt/etc/mrtg/cpu.sh
… и наполнить его следующим содержимым:
#!/bin/sh
awk </proc/loadavg ‘{print (100*$1) «\n» (100*$2) }’
hostname;
echo «loadavg»;
⇡#Настройка SNMP для Windows
Первым делом надо включить поддержку SNMP в компонентах Windows. Затем надо перейти к настройкам служб (правой кнопкой мыши — на «Мой компьютер» → «Управление» → «Службы») и найти там службу SNMP. По двойному клику откроется окно настроек. В параметрах безопасности надо добавить новое community (пусть это будет public) с правами доступа только на чтение. А чуть ниже в список разрешённых хостов необходимо вписать IP-адрес нашего роутера. После этого надо запустить службу, если она ещё не работает, и включить её автозапуск.
На всякий случай проверьте, не блокируется ли UDP-порт 161 брандмауэром. Также рекомендуется установить утилиту SNMP Informant-Standard — этот SNMP-агент немножко упрощает доступ к популярным параметрам Windows. Если вы хотите получить информацию о сетевой активности Windows-хоста, то можно снова воспользоваться cfgmaker (172.30.4.2 — IP-адрес ПК с Windows):
cfgmaker —output=/opt/etc/mrtg/win_1.cfg [email protected]
Пролистайте файл /opt/etc/mrtg/win_1.cfg и найдите в нём параметры нужного сетевого адаптера, а потом скопируйте их в основной файл конфигурации /opt/etc/mrtg/mrtg.cfg и перезапустите mrtg (см. выше). Аналогичные действия надо проделать и для любых других компьютеров или устройств, если они, конечно, поддерживают отдачу такой статистики по SNMP.
Хорошо, с сетью разобрались и освоились, а что дальше делать? Возвращаемся к волшебным OID или же, как мы их называли по ходу статьи, параметрам. Откуда их брать? Вообще производитель любого устройства с поддержкой SNMP обязан предоставлять информацию обо всех OID, упакованную в базу MIB, которую в идеале очень просто найти в Сети. Для просмотра MIB и опроса OID существует масса утилит. Мы рассмотрим классику подобного рода программ — Getif. (В Windows Vista и 7 она может ругаться на Msflxgrd.ocx.) После установки скопируйте имеющиеся MIB-файлы в каталог C:\Program Files\Getif 2.3.1\Mibs\. Для работы с Windows 7 надо взять как минимум все файлы *.mib из папки C:\Windows\System32 и из C:\Program Files\SNMP Informant\standard\mibs\SMIv2\ (если вы установили этот агент).
Разобраться с утилитой довольно просто: указываем имя хоста и прочие параметры, нажимаем Start и видим ответ машины. Можете поиграться и покликать по вкладкам, нажимая на Start и просматривая результаты. Нам нужна вкладка MBrowser. С её помощью можно просматривать различные OID в иерархическом виде, а также получать их значения. Для примера воспользуемся параметром cpuPercentProcessorTime (загрузка CPU) из SNMP Informant. Полный путь до него (его OID) выглядит как .iso.org.dod.internet.private.enterprises.wtcs.informant.standard.processorTable.processorEntry.cpuPercentProcessorTime. В принципе, в настройках mrtg уместно использовать и его, но лучше взять короткую цифровую запись .1.3.6.1.4.1.9600.1.1.5.1.5. Можно использовать и смешанный вариант записи, кому как удобнее.
После выбора этого параметра понажимайте кнопку Start и посмотрите на результат в нижнем поле. Во-первых, мы видим, что отдаётся сразу три подпараметра. Первые два (*.1.48 и *1.49) показывают загрузку каждого из двух ядер процессора, причём информация отдаётся в виде целых чисел в диапазоне от 0 до 100 (фактически %). Попробуем на основе этих данных сформировать конфигурацию для mrtg.
Target[PC1-CPU]: 1.3.6.1.4.1.9600.1.1.5.1.5.1.48&1.3.6.1.4.1.9600.1.1.5.1.5.1.49:[email protected]
MaxBytes[PC1-CPU]: 100
YLegend[PC1-CPU]: CPU %
ShortLegend[PC1-CPU]: %
LegendI[PC1-CPU]: CPU 1
LegendO[PC1-CPU]: CPU 2
Legend1[PC1-CPU]: CPU 1 usage
Legend2[PC1-CPU]: CPU 2 usage
Options[PC1-CPU]: integer, gauge, nopercent, growright
Title[PC1-CPU]: PC1 CPU Usage
PageTop[PC1-CPU]: <h1>PC1 CPU Usage</h1>
Достаточно взглянуть на скриншот, чтобы понять, какой параметр за что отвечает. В источнике SNMP-данных получаемые параметры объединяются амперсандом. В Options значения расшифровываются так: integer — показывать целые числа под графиками, gauge — указание на то, что получаемый параметр не является «счётчиком» (не прибывающие значения), nopercent — запрет на вывод процентов использования, growright — отрисовка графиков справа налево. Ну, а MaxBytes как пороговое значение для загрузки CPU в процентах, очевидно, не может быть больше 100.
После того как вы всё отладили, можно включить в автозагрузку веб-сервер и mrtg, добавив в конец файла /usr/local/sbin/post-mount следующие строки:
/opt/etc/init.d/S80lighttpd start
/opt/bin/mrtg /opt/etc/mrtg/mrtg.cfg
Осталось добавить финальный аккорд.
flashfs save && flashfs commit && flashfs enable && reboot
⇡#Заключение
Аналогичным образом можно добавить и массу других параметров для мониторинга. Если не хотите заморачиваться, то в Сети есть множество готовых шаблонов mrtg для использования с различными типами входных данных. Для наглядной отладки этих самых данных можно использовать утилиту Eserv SNMP Monitor. А вот здесь есть приличный набор MIB для разнообразного оборудования. Многие программы имеют встроенные или отдельные SNMP-агенты. В общем, можно заниматься мониторингом практически всего айтишного хозяйства. Надо ли оно домашнему пользователю? В некоторых случаях — да, но рассмотренный вариант подойдёт скорее для небольшого офиса. Учтите, что ресурсы роутера не безграничны, и по возможности лучше сразу строить SNMP-мониторинг на базе, к примеру, Zabbix, Nagios или подобных систем. Их мы наверняка ещё коснёмся в будущих материалах, а пока что традиционное напутствие: «Удачи!»
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
SNMP (Simple Network Management Protocol — простой протокол сетевого управления) — стандартный интернет-протокол для управления устройствами в IP-сетях на основе архитектур TCP/UDP.
Для того чтобы можно было мониторить MikroTik — требуется провести настройки на роутере. Выполнить данные настройки можно через веб-подключение к MikroTik, через Winbox https://mt.lv/winbox64 или через ssh-подключение.
В данном примере рассмотрим настройку через Winbox, а также через ssh.
Настройка через WinBox
Заходим в меню IP => SNMP
Рисунок 1 — Меню SNMP
Нажимаем Communities, чтобы выполнить новую настройку для коммуникаций подключения.
Рисунок 2 — Меню community
В данном окне требуется заполнить имя для общения между устройствами, адреса, которые могут подключаться, также доступы чтения\записи и настройки безопасности.
В нашем примере мы заполнили окно для подключения следующим образом:
Рисунок 3 — Заполненное меню community
Сохраняем все указанные настройки кнопкой Apply.
Возвращаемся в окно SNMP Setting, где требуется включить SNMP и выбрать Trap Community, который мы настроили.
Нажимаем Apply, после этого настройка проведена на устройстве успешно, можно подключаться к данному MikroTik через какой-либо сервис мониторинга.
Рисунок 4 — Включение SNMP и подключение настроенного Trap Comminity
Настройка через SSH
Через ssh проводится настройка с помощью команд, которые задаем нашему устройству. Для примера, всё что проводили в выше указанной инструкции через WinBox, можно осуществить следующим образом:
Листинг:
> snmp community add name="EFSOL Oblako" addresses=0.0.0.0/0 se curity=none read-access=yes write-access=yes authentication-protocol=MD5 encrypti on-protocol=DES authentication-password=12345 > snmp set enabled=yes trap-community="EFSOL Oblako"
В данной инструкции мы провели настройку SNMP на стороне MikroTik. Теперь можно мониторить работу устройства MikroTik.
Готовая система мониторинга ИТ-оборудования, к которой можно подключить любое сетевое оборудование, серверы, компьютеры и другое.
Overview
Simple Network Management Protocol (SNMP) is an Internet-standard protocol for managing devices on IP networks. SNMP can be used to graph various data with tools such as CACTI, MRTG, or The Dude.
SNMP write support is only available for some OIDs. For supported OIDs SNMP v1, v2 or v3 write is supported.
SNMP will respond to the query on the interface SNMP request was received from forcing responses to have same source address as request destination sent to the router
Quick Configuration
To enable SNMP in RouterOS:
[admin@MikroTik] /snmp> print enabled: no contact: location: engine-id: trap-community: (unknown) trap-version: 1 [admin@MikroTik] /snmp> set enabled yes
You can also specify administrative contact information in the above settings. All SNMP data will be available to communities configured in the community menu.
General Properties
This sub menu allows to enable SNMP and to configure general settings.
Property | Description |
---|---|
contact (string; Default: «») | Contact information |
enabled (yes | no; Default: no) | Used to disable/enable SNMP service |
engine-id (string; Default: «») | For SNMP v3, used as part of the identifier. You can configure the suffix part of the engine id using this argument. If the SNMP client is not capable to detect set engine-id value then this prefix hex has to be used 0x80003a8c04 |
location (string; Default: «») | Location information |
trap-community (string; Default: public) | Which communities configured in the community menu to use when sending out the trap. |
trap-generators (interfaces | start-trap; Default: ) | What action will generate traps:
|
trap-interfaces (string | all; Default: ) | List of interfaces that traps are going to be sent out. |
trap-target (list of IP/IPv6; Default: 0.0.0.0) | IP (IPv4 or IPv6) addresses of SNMP data collectors that have to receive the trap |
trap-version (1|2|3; Default: 1) | A version of SNMP protocol to use for trap |
src-address (IPv4 or IPv6 address; Default: ::) |
Force the router to always use the same IP source address for all of the SNMP messages |
vrf (VRF name; default value: main) |
Set VRF on which service is listening for incoming connections |
the engine-id field holds the suffix value of engine-id, usually, SNMP clients should be able to detect the value, as SNMP values, as read from the router. However, there is a possibility that this is not the case. In which case, the engine-ID value has to be set according to this rule: <engine-id prefix> + <hex-dump suffix>, so as an example, if you have set 1234 as suffix value you have to provide 80003a8c04 + 31323334, combined hex (the result) is 80003a8c0431323334
Sub-menu: |
---|
This sub-menu allows to set up access rights for the SNMP data.
There is little security in v1 and v2c, just Clear text community string („username“) and the ability for Limiting access by IP address.
In the production environment, SNMP v3 should be used as that provides security — Authorization (User + Pass) with MD5/SHA1, Encryption with DES and AES).
[admin@MikroTik] /snmp community> print value-list name: public address: 0.0.0.0/0 security: none read-access: yes write-access: no authentication-protocol: MD5 encryption-protocol: DES authentication-password: ***** encryption-password: *****
Default settings only have one community named public without any additional security settings. These settings should be considered insecure and should be adjusted according to the required security profile.
Properties
Property | Description |
---|---|
address (IP/IPv6 address; Default: 0.0.0.0/0) | Addresses from which connections to SNMP server is allowed |
authentication-password (string; Default: «») | Password used to authenticate the connection to the server (SNMPv3) |
authentication-protocol (MD5 | SHA1; Default: MD5) | The protocol used for authentication (SNMPv3) |
encryption-password (string; Default: «») | the password used for encryption (SNMPv3) |
encryption-protocol (DES | AES; Default: DES) | encryption protocol to be used to encrypt the communication (SNMPv3). AES (see rfc3826) available since v6.16. |
name (string; Default: ) | |
read-access (yes | no; Default: yes) | Whether read access is enabled for this community |
security (authorized | none | private; Default: none) | |
write-access (yes | no; Default: no) | Whether write access is enabled for this community |
Management information base (MIB)
The Management Information Base (MIB) is the database of information maintained by the agent that the manager can query. You can download the latest MikroTik RouterOS MIB file from here: www.mikrotik.com/downloads
Used MIBs in RouterOS:
- MIKROTIK-MIB
- MIB-2
- HOST-RESOURCES-MIB
- IF-MIB
- IP-MIB
- IP-FORWARD-MIB
- IPV6-MIB
- BRIDGE-MIB
- DHCP-SERVER-MIB
- CISCO-AAA-SESSION-MIB
- ENTITY-MIB
- UPS-MIB
- SQUID-MIB
Object identifiers (OID)
Each OID identifies a variable that can be read via SNMP. Although the MIB file contains all the needed OID values, you can also print individual OID information in the console with the print oid command at any menu level:
[admin@MikroTik] /interface> print oid Flags: D - dynamic, X - disabled, R - running, S - slave 0 R name=.1.3.6.1.2.1.2.2.1.2.1 mtu=.1.3.6.1.2.1.2.2.1.4.1 mac-address=.1.3.6.1.2.1.2.2.1.6.1 admin-status=.1.3.6.1.2.1.2.2.1.7.1 oper-status=.1.3.6.1.2.1.2.2.1.8.1 bytes-in=.1.3.6.1.2.1.2.2.1.10.1 packets-in=.1.3.6.1.2.1.2.2.1.11.1 discards-in=.1.3.6.1.2.1.2.2.1.13.1 errors-in=.1.3.6.1.2.1.2.2.1.14.1 bytes-out=.1.3.6.1.2.1.2.2.1.16.1 packets-out=.1.3.6.1.2.1.2.2.1.17.1 discards-out=.1.3.6.1.2.1.2.2.1.19.1 errors-out=.1.3.6.1.2.1.2.2.1.20.1
Traps
SNMP traps enable the router to notify the data collector of interface changes and SNMP service status changes by sending traps. It is possible to send out traps with security features to support SNMPv1 (no security). SNMPv2 and variants and SNMPv3 with encryption and authorization.
For SNMPv2 and v3 you have to set up an appropriately configured community as a trap-community to enable required features (password or encryption/authorization).
SNMP write
SNMP write allows changing router configuration with SNMP requests. Consider securing access to the router or to router’s SNMP, when SNMP and write-access are enabled.
To change settings by SNMP requests, use the command below to allow SNMP to write for the selected community.
/snmp community set <number> write-access=yes
System Identity
It’s possible to change router system identity by SNMP set command.
$ snmpset -c public -v 1 192.168.0.0 1.3.6.1.2.1.1.5.0 s New_Identity
- snmpset — SNMP application used for SNMP SET requests to set information on a network entity;
- public — router’s community name;
- 192.168.0.0 — IP address of the router;
- 1.3.6.1.2.1.1.5.0 — SNMP value for router’s identity;
SNMPset command above is equal to the RouterOS command:
/system identity set identity=New_Identity
Reboot
It’s possible to reboot the router with SNMP set command, you need to set the value for reboot SNMP settings, which is not equal to 0.
$ snmpset -c public -v 1 192.168.0.0 1.3.6.1.4.1.14988.1.1.7.1.0 s 1
- 1.3.6.1.4.1.14988.1.1.7.1.0, SNMP value for the router reboot;
- s 1, snmpset command to set value, value should not be equal to 0;
Reboot SNMPset command is equal to the RouterOS command:
Run Script
SNMP write allows running scripts on the router from the system script menu when you need to set value for the SNMP setting of the script.
$ snmpset -c public -v 1 192.168.0.0 1.3.6.1.4.1.14988.1.1.8.1.1.3.X s 1
- X, script number, numeration starts from 1;
- s 1, snmpset command to set value, the value should not be equal to 0;
The same command on RouterOS:
/system script> print Flags: I - invalid 0 name="test" owner="admin" policy=ftp,reboot,read,write,policy, test,winbox,password,sniff last-started=jan/01/1970 01:31:57 run-count=23 source=:beep /system script run 0
Running scripts with GET
It is possible to run /system scripts via SNMP GET request of the script OID (since 6.37). For this to work SNMP community with write permission is required. OIDs for scripts can be retrieved via the SNMPWALK command as the table is dynamic.
Add script:
/system script add name=script1 owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/sy reboot " add name=script2 owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="[:put output]"
Get the script OID table
$ snmpwalk -v2c -cpublic 192.168.88.1 1.3.6.1.4.1.14988.1.1.8 iso.3.6.1.4.1.14988.1.1.8.1.1.2.1 = STRING: "script1" iso.3.6.1.4.1.14988.1.1.8.1.1.2.2 = STRING: "script2" iso.3.6.1.4.1.14988.1.1.8.1.1.3.1 = INTEGER: 0 iso.3.6.1.4.1.14988.1.1.8.1.1.3.2 = INTEGER: 0
To run the script use table 18
$ snmpget -v2c -cpublic 192.168.88.1 1.3.6.1.4.1.14988.1.1.18.1.1.2.2 iso.3.6.1.4.1.14988.1.1.18.1.1.2.2 = STRING: "output"
В этой статье будет описан процесс настройки мониторинга роутеров MikroTik по SNMP с помощью сервера Zabbix.
Настройка SNMP
Если вам интересно, что такое SNMP и как он работает, то можете почитать здесь. Ниже я покажу как настроить SNMP на MikroTik.
Открываем IP / SNMP и включаем его. Записываем контактную информацию в поля: Сontact info и Location (это просто текст, здесь вы может написать произвольную информацию). Затем изменяем Trap Version на 2. Удаляем Trap Generator (поле должно быть пустым, для этого нужно нажать на стрелочку вверх).
В этом же окне нажимаем кнопку Communities. И в открывшемся окне настраиваем Public SNMP Communites. А в поле addresses впишем ip-адрес сервера Zabbix.
Теперь к нашему MikroTik сможет подключиться только Zabbix сервер. И он сможет только получать данные, так как галочку Write Access мы не ставили.
Настройка фаервола
Дальше нужно разрешить подключение к MikroTik в фаерволе. Для этого открываем IP/Firewall и создаём новое правило: разрешаем входящий UDP порт 161 с сервера Zabbix.
Ну и на вкладке Action выбираем действие — accept, чтобы разрешить такое подключение.
Получение oid для мониторинга
Мониторить будем интерфейсы, а именно активны они или нет.
В терминале Mikrotik выполняем:
> /interface/print Flags: R - RUNNING Columns: NAME, TYPE, ACTUAL-MTU, MAC-ADDRESS # NAME TYPE ACTUAL-MTU MAC-ADDRESS 0 R ether1 ether 1500 12:19:21:40:A4:1D 1 R ether2 ether 1500 52:9C:FE:7A:4A:DC > /interface/print oid Flags: D - dynamic; X - disabled, R - running; S - slave; P - passthrough 0 R name=.1.3.6.1.2.1.2.2.1.2.8 actual-mtu=.1.3.6.1.2.1.2.2.1.4.8 mac-address=.1.3.6.1.2.1.2.2.1.6.8 admin-status=.1.3.6.1.2.1.2.2.1.7.8 oper-status=.1.3.6.1.2.1.2.2.1.8.8 bytes-in=.1.3.6.1.2.1.31.1.1.1.6.8 packets-in=.1.3.6.1.2.1.31.1.1.1.7.8 discards-in=.1.3.6.1.2.1.2.2.1.13.8 errors-in=.1.3.6.1.2.1.2.2.1.14.8 bytes-out=.1.3.6.1.2.1.31.1.1.1.10.8 packets-out=.1.3.6.1.2.1.31.1.1.1.11.8 discards-out=.1.3.6.1.2.1.2.2.1.19.8 errors-out=.1.3.6.1.2.1.2.2.1.20.8 1 R name=.1.3.6.1.2.1.2.2.1.2.7 actual-mtu=.1.3.6.1.2.1.2.2.1.4.7 mac-address=.1.3.6.1.2.1.2.2.1.6.7 admin-status=.1.3.6.1.2.1.2.2.1.7.7 oper-status=.1.3.6.1.2.1.2.2.1.8.7 bytes-in=.1.3.6.1.2.1.31.1.1.1.6.7 packets-in=.1.3.6.1.2.1.31.1.1.1.7.7 discards-in=.1.3.6.1.2.1.2.2.1.13.7 errors-in=.1.3.6.1.2.1.2.2.1.14.7 bytes-out=.1.3.6.1.2.1.31.1.1.1.10.7 packets-out=.1.3.6.1.2.1.31.1.1.1.11.7 discards-out=.1.3.6.1.2.1.2.2.1.19.7 errors-out=.1.3.6.1.2.1.2.2.1.20.7
С помощью команд выше мы определили oid статусов интерфейсов:
0 | ether1 | oper-status=.1.3.6.1.2.1.2.2.1.8.8 |
1 | ether2 | oper-status=.1.3.6.1.2.1.2.2.1.8.7 |
Настройка Zabbix
Дальше идём на Zabbix и добавляем Mikrotik в качестве узла, за которым будет вестись мониторинг.
А ниже нужно добавить SNMP интерфейс (тот же самый ip адрес, что и адрес узла):
А затем добавляем элементы данных snmp:
- SNMPv2 агент;
- Ключ и SNMP OID одинаковые. Здесь указывается oid (например, .1.3.6.1.2.1.2.2.1.8.8);
- SNMP интерфейс, созданный при добавлении узла.
После добавления элемента данных вы начнёте получать статус интерфейса в цифровом виде:
- 1 — Интерфейс включен
- 2 — Интерфейс выключен
Другие метрики
Таким же способом вы можете добавить и другие метрики. Ниже я описываю стандартный способ получения OID различных метрик.
Температура и скорость работы вентиляторов:
> /system/health/print Columns: NAME, VALUE, TYPE # NAME VALUE TYPE 0 cpu-temperature 48 C 1 phy-temperature 58 C 2 fan1-speed 0 RPM 3 fan2-speed 0 RPM 4 fan3-speed 0 RPM 5 fan4-speed 0 RPM 6 psu1-state ok 7 psu2-state ok > /system/health/print oid 0 name=.1.3.6.1.4.1.14988.1.1.3.100.1.2.17 value=.1.3.6.1.4.1.14988.1.1.3.100.1.3.17 type=.1.3.6.1.4.1.14988.1.1.3.100.1.4.17 1 name=.1.3.6.1.4.1.14988.1.1.3.100.1.2.52 value=.1.3.6.1.4.1.14988.1.1.3.100.1.3.52 type=.1.3.6.1.4.1.14988.1.1.3.100.1.4.52 2 name=.1.3.6.1.4.1.14988.1.1.3.100.1.2.7001 value=.1.3.6.1.4.1.14988.1.1.3.100.1.3.7001 type=.1.3.6.1.4.1.14988.1.1.3.100.1.4.7001 3 name=.1.3.6.1.4.1.14988.1.1.3.100.1.2.7002 value=.1.3.6.1.4.1.14988.1.1.3.100.1.3.7002 type=.1.3.6.1.4.1.14988.1.1.3.100.1.4.7002 4 name=.1.3.6.1.4.1.14988.1.1.3.100.1.2.7003 value=.1.3.6.1.4.1.14988.1.1.3.100.1.3.7003 type=.1.3.6.1.4.1.14988.1.1.3.100.1.4.7003 5 name=.1.3.6.1.4.1.14988.1.1.3.100.1.2.7004 value=.1.3.6.1.4.1.14988.1.1.3.100.1.3.7004 type=.1.3.6.1.4.1.14988.1.1.3.100.1.4.7004 6 name=.1.3.6.1.4.1.14988.1.1.3.100.1.2.7401 value=.1.3.6.1.4.1.14988.1.1.3.100.1.3.7401 type=.1.3.6.1.4.1.14988.1.1.3.100.1.4.7401 7 name=.1.3.6.1.4.1.14988.1.1.3.100.1.2.7402 value=.1.3.6.1.4.1.14988.1.1.3.100.1.3.7402 type=.1.3.6.1.4.1.14988.1.1.3.100.1.4.7402
Ресурсы:
> /system/resource/print oid used-memory: .1.3.6.1.2.1.25.2.3.1.6.65536 uptime: .1.3.6.1.2.1.1.3.0 build-time: .1.3.6.1.4.1.14988.1.1.7.6.0 total-memory: .1.3.6.1.2.1.25.2.3.1.5.65536 cpu-frequency: .1.3.6.1.4.1.14988.1.1.3.14.0
Сводка
Имя статьи
Мониторим MikroTik с помощью Zabbix (SNMP)
Описание
В этой статье будет описан процесс настройки мониторинга роутеров MikroTik по SNTP с помощью сервера Zabbix
SNMP (Simple Network Management Protocol, Простой Протокол Управления Сетью) является стандартным протоколом управления сетевым оборудованием, который позволяет мониторить и контролировать сетевые устройства, такие как маршрутизаторы, коммутаторы и точки доступа. В данной статье мы рассмотрим подробное руководство по настройке SNMP на маршрутизаторах Zyxel Keenetic.
Для начала, необходимо убедиться, что ваш маршрутизатор поддерживает SNMP. Все модели маршрутизаторов Zyxel Keenetic имеют поддержку SNMP и по умолчанию протокол включен. Однако, если протокол был выключен, вы можете включить его, войдя в веб-интерфейс маршрутизатора и перейдя в раздел «Настройки» или «Сеть».
Обратите внимание, что SNMP версии 3 рекомендуется использовать из соображений безопасности, так как она обеспечивает шифрование данных и аутентификацию пользователей. Однако, в данном руководстве мы сосредоточимся на настройке SNMP версии 2c, так как она является более распространенной и проще в использовании.
Далее, необходимо настроить параметры доступа SNMP. Войдите в веб-интерфейс маршрутизатора и откройте раздел «Сеть» или «Настройки». Найдите «SNMP», «Протокол SNMP» или подобную опцию и откройте ее.
В этом разделе вы сможете настроить следующие параметры SNMP: Контактное лицо, Место расположения и Системное описание. Введите соответствующую информацию в соответствующие поля. Кроме того, вы можете установить Сообщество, которое является паролем доступа. Установите сильный пароль для обеспечения безопасности вашей сети.
Содержание
- Настройка SNMP на Keenetic
- Подробное руководство для Zyxel Keenetic
- Что такое SNMP и зачем он нужен?
- Шаг 1: Установка активации SNMP
- Шаг 2: Настройка SNMP-сообщества
Настройка SNMP на Keenetic
SNMP (Simple Network Management Protocol) позволяет администратору собирать информацию о работе сетевого оборудования. Keenetic поддерживает SNMP и предоставляет возможность настраивать его параметры.
Для начала необходимо зайти в веб-интерфейс Keenetic, введя IP-адрес роутера в адресной строке браузера и авторизовавшись на устройстве.
После входа в веб-интерфейс Keenetic перейдите на вкладку «Сервисы» и выберите «SNMP» в боковом меню.
В открывшемся разделе «SNMP» вы можете включить или отключить SNMP, а также настроить его параметры:
- Контактное лицо: укажите контактное лицо для SNMP.
- Местоположение: укажите местоположение для SNMP.
- Сообщество для чтения: введите сообщество для чтения информации SNMP.
- Сообщество для записи: введите сообщество для изменения информации SNMP.
- SNMP версия: выберите SNMP версию. В Keenetic поддерживаются версии 1 и 2.
После настройки параметров нажмите «Сохранить» для применения настроек SNMP.
Теперь SNMP будет активирован на вашем Keenetic и вы сможете использовать SNMP-менеджеры для мониторинга и настройки сетевого оборудования.
Подробное руководство для Zyxel Keenetic
Для настройки SNMP на Keenetic выполните следующие шаги:
Шаг 1: Подключите компьютер к Keenetic с помощью Ethernet-кабеля и войдите в веб-интерфейс роутера.
Шаг 2: В левой панели выберите раздел «Настройки» и перейдите на вкладку «Протоколы».
Шаг 3: На странице Протоколы найдите раздел «SNMP» и нажмите на кнопку «Настроить».
Шаг 4: В окне настройки SNMP установите флажок «Включить SNMP» и заполните поля:
Сообщество чтения – установите сообщество чтения SNMP, которое будет использоваться для доступа к информации о состоянии сетевых устройств;
Сообщество записи – установите сообщество записи SNMP, которое требуется для возможности отправки команд управления;
Местоположение (опционально) – укажите физическое местоположение роутера;
Контактный email (опционально) – укажите адрес электронной почты для связи с вами в случае проблем.
Шаг 5: Нажмите на кнопку «Применить» для сохранения настроек SNMP.
После настройки SNMP на Keenetic вы сможете использовать SNMP-менеджеры для мониторинга состояния вашей сети и дистанционного управления устройствами.
Примечание: Будьте внимательны при настройке SNMP на Keenetic и не передавайте сообщества записи или сообщества чтения по открытым каналам связи для обеспечения безопасности вашей сети.
Что такое SNMP и зачем он нужен?
SNMP позволяет собирать данные о различных параметрах работы сети, таких как использование ресурсов, загрузка процессора, температура устройств и др. Эти данные могут быть использованы для анализа и оптимизации работы сети, выявления возможных неисправностей и предотвращения возникновения сбоев.
Протокол SNMP состоит из агентов, которые находятся на сетевых устройствах, и системы управления сетью (Network Management System, NMS), которая собирает и анализирует данные, отправляемые агентами. Агенты передают информацию о состоянии устройств с помощью SNMP-сообщений, а NMS может отправлять команды агентам для управления и контроля.
SNMP широко используется в корпоративных сетях для мониторинга и настройки сетевых устройств, таких как маршрутизаторы, коммутаторы, мосты, серверы и другие. Он позволяет администраторам сети получать информацию о состоянии сети и производить действия удаленного управления без прямого доступа к устройствам.
Шаг 1: Установка активации SNMP
- Войдите в панель управления Keenetic, открыв веб-браузер и введя IP-адрес роутера в адресной строке.
- Введите логин и пароль от учетной записи администратора роутера.
- В меню настроек Keenetic найдите пункт «Настройки» и перейдите в раздел «Службы».
- В разделе «Службы» найдите пункт «SNMP» и перенесите переключатель в положение «Включено» или «Включено (только чтение)».
- Сохраните изменения, нажав кнопку «Применить».
После выполнения этих шагов активация SNMP будет успешно установлена на Keenetic. Теперь вы можете перейти к настройке параметров SNMP и определению уровня доступа к данным.
Шаг 2: Настройка SNMP-сообщества
После успешного входа в интерфейс управления Keenetic, выполните следующие действия:
- Перейдите в меню «Система» и выберите раздел «SNMP».
- В открывшемся окне найдите раздел «SNMP-сообщества» и нажмите на кнопку «Добавить».
- В поле «Сообщество» введите желаемое название SNMP-сообщества.
- Выберите тип доступа SNMP-сообщества: «Только чтение» или «Чтение и запись».
- Подтвердите настройки нажатием на кнопку «ОК».
После этого SNMP-сообщество будет успешно добавлено и настроено на вашем Keenetic роутере. Это означает, что SNMP-клиенты смогут обращаться к вашему устройству и получать информацию о его работе.
Важно помнить, что SNMP-сообщество должно быть правильно настроено для обеспечения безопасности вашей сети. Убедитесь, что вы используете сложные пароли и регулярно обновляете их для предотвращения несанкционированного доступа к вашим данным.