Настройка snmp на роутере asus
Вторая команда скачивает те стандартные MIBы от IETF и IANA, которые не включены по умолчанию.
Замечание: для того, чтобы это работало, вам необходимо включить источник "multiverse" в вашу конфигурацию APT, если вы используете Ubuntu 12.04 или 14.04. На этом семинаре это уже было сделано.
Теперь, отредактируйте файл /etc/snmp/snmp.conf :
Поменяйте эту строку:
. так, что она выглядит как:
(Вы "закомментировали" пустую конфигурацию MIBов, которая говорит инструментам не загружать MIBы из каталога /usr/share/mibs/ автоматически)
Для этого упражнения вы должны работать в группах. Выберите одного человека набирать на клавиатуре.
Теперь зайдите на ваш роутер:
Теперь нам нужно добавить список контроля доступа для доступа к SNMP, активировать SNMP, назначить SNMP пароль для доступа "только для чтения", и сказать роутеру чтобы он сохранял SNMP-информацию между перезагрузками. Это делается так:
Давайте выйдем из режима конфигурации и сохраним новую конфигурацию в постоянной памяти.
Теперь посмотрим, работают ли наши изменения.
Чтобы проверить, что ваша конфигурация SNMP работает, запустить команду snmpstatus для каждого из следующих устройств
Где это адрес одного из следующих устройств:
Что происходит если вы исползуете неправильный пароль (т.е. изменяте NetManage на что-то другое ?)
Теперь, вы будете использовать команду snmpwalk , являющегося частью инструментария SNMP, для перечисления таблиц, связанных с OIDами, перечисленными ниже, на каждом из устройств вы использовали выше:
Вы сделаете это используя две разные формы команді snmpwalk :
. где OID - один из OIDов перечисленных выше: .1.3.6.
. где IP_ADDRESS может быть роутером вашей группы.
Замечание: параметр -On включает числовой вывод, т.е. отключает трансляцию OIDов в имена из MIBа.
- Все ли устройства отвечают?
- Заметили ли вы что-нибудь важное об OIDах в выводе?
Для этого упражнения ваша группа должна проверить, что сервис snmpd запущен и отвечает на запросы на всех машинах вашей группы. Вначале разрешите snmpd на вашей машине, потом проверьте, отвечает ли она, потом проверьте каждую машину других членов вашей группы.
- Установите SNMP-агента (программу-демона)
- Конфигурирование.
Мы сохраним конфигурацию по умолчанию, и создадим нашу собственную:
Потом, скопируйте следующее:
Теперь сохраните файл и выйдите из редактора.
6.1 Проверьте, что snmpd работает:
Что вы наблюдаете?
6.2 Протестируйте ваших соседей
Убедитесь, что вы можете проверять snmpstatus на других серверах вашей группы:
Например, для группы 5, вам следует проверить:
Вспомните, когда вы запустили:
Если вы обратили внимание, SNMP-клиент (snmpwalk) не мог проинтерпретировать все OIDы, которые вернул SNMP агент:
Что такое 9.9.13.1.3.1 ?
Для расшифровки этой информации, нам нужно скачать дополнительные MIBы:
Мы будем использовать следующие MIBы (не скачивайте их пока!):
MIBы CISCO
Скачайте их теперь, как показано ниже:
Теперь нам нужно сказать инструментарию snmp, что у нас появились новые MIBы и что он должен их подгружать. Поэтому, отредактируйте файл /etc/snmp/snmp.conf , и добавьте следующие две строчки:
Сохраните файл, выйдите из редактора.
Теперь, снова выполните:
Используйте snmpwalk для опрашивания других устройств (роутеров, маршрутизаторов, серверов) в сети 10.10.0.X.
Обратите внимание на типы информации, которую вы можете получить.
(Не забудьте, используя less , пробел пролистывает страницу вперед, b - страницу назад, и q - выход)
Видите ли вы разницу между ifTable и ifXTable ?
Как вы думаете, в чем разница между ifOperStatus и ifAdminStatus ? Можете ли вы представить себе ситуацию, когда эта разница может быть полезна?
Обычно попытка исправления подразумевает:
— обход членов семьи (ну да, я качаю новый сезон «Доктор Хаус». А кому это может мешать?)
— перезагрузить роутер (ну завис я, завис — сутками всякую дрянь качаете..)
— не качаются ли обновления (приятная новость — новый Acrobat Reader. )
— нет ли у нас блошек (нашему ботнету сегодня дали большое домашнее задание)
— звонок провайдеру (наш канал работает как часы с самого основания компании)
— эм. может еще раз роутер?
…
Все получится, если ваш роутер поддерживает протокол SNMP — специальный протокол для телеметрии сетевых устройств и приложений. Разбираемся по инструкции к роутеру или веб-интерфейсу, есть ли у вас поддержка SNMP. В некоторых случаях появляется при установке неофициальных прошивок. Ищем его в веб интерфейсе, включаем. Запоминаем, как называется community name — это пароль, по которому показания SNMP вашего роутера доступны в сети (по умолчанию обычно public).
Рис. 1. Здесь все просто. Или поддержка SNMP есть, или ее нет.
Чтобы не потерять много времени впустую, давайте сделаем экспресс-проверку. Скачиваем библиотеку NET-SNMP. Из директории bin выполняем команду:
public — пароль для доступа к SNMP (community name)
192.168.1.1 — ip адрес роутера
Устанавливаем MRTG. На сайте подробное руководство по установке для UNIX и Windows. Для работы под Windows требуется PERL. Наиболее распространенный бесплатный дистрибутив PERL для Windows — это ActivePerl. Отдельной инструкции для Mac не сайте видел, однако поскольку MRTG — это не более чем программа на PERL, тоже должно работать.
Короткий путь начать мониторить траффик на сетевых интерфейсах роутера — это создать конфигурационный файл MRTG командой cfgmaker. Например, мой роутер ASUS WL-500g premium имеет 8 сетевых интерфейсов, и это позволяет видеть траффик со стороны провайдера, со стороны WiFi устройств (телефон и ноутбук), со стороны рабочей станции через Ethernet
Рис. 2. Из сопоставления графиков на разных интерфейсах видно, откуда идет траффик.
Чуть сложнее мониторить нагрузку и использование памяти. Нужно иметь MIB спецификацию устройста. Если SNMP поддерживается официально, то она, скорее всего, есть на сайте производителя. Если это неофициальная прошивка, то, возможно, уже есть наработки у сообщества, которое сделало прошивку. Например, спецификация для ASUS WL-500g здесь. В моем случае OID для средней за 5 минут нагрузки на CPU .1.3.6.1.4.1.2021.10.1.5.2, используемая RAM .1.3.6.1.4.1.2021.4.6.0. При описании показаний нагрузки CPU и использования памяти в конфиге MRTG нужно с помощью опции gauge указать, что это текущие показания, а не интегральная величина, как для траффика, когда SNMP передает количество байт прошедшее через интерфейс с момента включения устройства (ну или обнуления счетчика, если долго работаем)
Рис. 3. Обычно нагрузка процессора на нуле. Она растет, когда качают несколько процессов на большой скорости. Используемая память меняется слабо.
Разумеется запускать mrtg вручную каждые 5 минут не нужно, а нужно создать задачу cron (Unix) пример:
*/5 * * * * root LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok
Если ставите mrtg из пакета, задача добавится сама.
или Sheduled Tasks (Windows) Пример:
Возможно, возможности вашего роутера значительно шире, и вы можете получать значительно больше информации — МАС адреса клиентов, траффик по MAC адресам, и так далее. Да поможет вам Google!
P.S. Данная заметка, разумеется, не ориентирована на специалистов по сетевой инфраструктуре. Просто я совершенно случайно открыл для себя букавы SNMP и уверен, что не одинок в этом. Возможно, кому-то это поможет при выборе нового роутера.
В комментариях открыл для себя суперпрошивку DD-WRT. Теперь вот думаю…
С появлением в приложениях (.apps) роутера торрент-качалки Transmission стала актуальна тема контроля используемых ресурсов: память; загрузка процессора; свободное место на диске. Как раз для этого и служит протокол SNMP, поддержку которого я добавил в прошивку роутера начиная с версии 9.2.3.0. Контроль WAN-интерфейса и особенности реализации я описал подробно там же. Теперь пришло время уделить внимание настройкам для контроля остальных ресурсов. Примеры по-прежнему привожу для SNMP Traffic Grapher, но они будут полезны и тем, кто использует другой snmp-клиент. Для остальных я выложил файл STG.zip с этими настройками для STG (найдете его на странице Файлы).
Во всех примерах Вам надо будет вписать своё Community, и если необходимо вписать Target Address (ip-адрес) Вашего девайса.
Решил выложить скрины со всеми настройками на этой странице, чтоб в одном месте .
Green - входящий (download) трафик на интерфейсе ;
Green - входящий в роутер (download) трафик на интерфейсе ;
Green - входящий в роутер (download) трафик на интерфейсе ;
Blue - сколько свободно в swap-файле, если конечно он есть.
На нем все понятно, за исключением, что здесь все числа
следует читать как мегабайты. Есть такая особенность STG,
она будет давать о себе знать и на остальных графиках.
Для того, чтобы получить проценты - делим мысленно все числа
На примере максимальный объем диска 80 ГБ, и эти 80 гиг.
ctxt: total number of context switches across all CPUs;
.1.3.6.1.4.1.2021.11.61.0 - all_load : user + nice + system + iowait + irq + softirq.
Протокол 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 и минимальный набор утилит. Для этого надо смонтировать нашу флешку и выполнить следующие команды в консоли:
mount -o bind /tmp/harddisk/opt /opt
mkdir -p /opt/tmp/ipkg
ipkg.sh install ipkg-opt
ipkg install nano
ipkg install mrtg
Включим раздел подкачки. Посмотрим на вывод команды fdisk -l и определим, какой из разделов помечен как Linux swap — его и надо подключить командой swapon. (Вместо /dev/sda1 укажите свой раздел!)
Чтобы не выполнять эти действия вручную, пропишем их в автозагрузку (скрипт post-mount):
mkdir -p /usr/local/sbin/
chmod +x /usr/local/sbin/post-mount
В этот файл надо добавить следующие строчки:
/bin/mount -o bind /tmp/harddisk/opt /opt
Сохраняем файл (F2, Y, Enter) и выполняем ещё один набор команд для сохранения настроек:
flashfs save && flashfs commit && flashfs enable
Как и было сказано выше, для вашей прошивки набор инструкций может отличаться. Главное, установить Optware и необходимый софт, а также по желанию включить подкачку (у того же WL-500gP памяти не очень много, так что своп очень пригодится).
Собственно, никакой настройки-то делать не придётся — надо лишь запустить веб-сервер, включить его в автозагрузку и открыть нужный порт (по умолчанию 8081). В веб-интерфейсе роутера в разделе NAT Setting → Virtual Server включаем проброс портов и добавляем правило для IP-адреса роутера.
А вот теперь самое сложное и интересное. 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 и добавим в начале несколько строк:
Options[_]: growright, bits
Что мы сделали? Во-первых, перевели отсчёт из байтов в биты и заставили рисоваться графики справа налево. Во-вторых, включили запуск MRTG в режиме демона, то есть программа будет тихонечко висеть в фоне и каждые 5 минут обновлять графики. Протокол IPv6 нам не нужен — отключаем его. Последний параметр задаёт рабочую папку MRTG, где хранятся все основные файлы.
Для сетевых интерфейсов роутера все настройки идентичны. В квадратных скобках задаётся имя отслеживаемого параметра (скорость, загрузка, потребление чего-либо и так далее). У каждого параметра есть ряд опций. Мы сейчас не будем рассматривать их все, тем более что назначение каждой из них вполне ясно из названия. Полный список всех возможных опций их настроек можно найти в официальной документации MRTG.
Наиболее важной является первая строка вида Target[имя_параметра]: OID:имя_community@адрес_устройства:. OID — это уникальный идентификатор объекта или, иначе говоря, считываемого параметра. К нему мы ещё вернёмся, а пока что основную работу за нас сделал cfgmaker. В SetEnv можно задавать внутренние переменные, а в MaxBytes указывается максимальное значение, которое может принять измеряемый параметр (например, скорость LAN-портов в WL-500gP физически не может быть больше 100 Мбит/с). В Title указывается подпись к генерируемому графику, а в PageTop можно ввести более подробное описание, которое будет показываться при просмотре расширенной статистики. Первую строчку в PageTop полезно обрамить тегами <h1></h1>.
Сохраняем файл mrtg.cfg, ещё раз запускаем indexmaker с теми же параметрами и включаем mrtg.
При первом запуске или смене настроек mrtg может ругнуться на недостающие файлы. А вообще после любых изменений в mrtg.cfg рекомендуется обновлять index.html и перезапускать mrtg.
indexmaker --output=/opt/share/www/mrtg/index.html /etc/mrtg/mymrtg.cfg
Обновите страничку в браузере с открытой статистикой mrtg и полюбуйтесь на результат своих трудов. Можно дополнить имеющиеся графики, например, статистикой использования CPU. Вот пример настроек, взятый на форуме «олеговской» прошивки. В конец конфигурационного файла mrtg надо добавить следующие строки:
Title[cpu]: Server CPU Load (5 minute average)
Legend1[cpu]: CPU Load (x 100)
LegendI[cpu]: 1min load
LegendO[cpu]: 5min load
PageTop[cpu]: <h1>Server average CPU Load</h1>
Ну а затем создать непосредственно скрипт для снятия этой самой статистики…
chmod +x /opt/etc/mrtg/cpu.sh
… и наполнить его следующим содержимым:
Первым делом надо включить поддержку 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 и посмотрите на результат в нижнем поле. Во-первых, мы видим, что отдаётся сразу три подпараметра. Первые два (*.1.48 и *1.49) показывают загрузку каждого из двух ядер процессора, причём информация отдаётся в виде целых чисел в диапазоне от 0 до 100 (фактически %). Попробуем на основе этих данных сформировать конфигурацию для mrtg.
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 следующие строки:
Осталось добавить финальный аккорд.
flashfs save && flashfs commit && flashfs enable && reboot
Аналогичным образом можно добавить и массу других параметров для мониторинга. Если не хотите заморачиваться, то в Сети есть множество готовых шаблонов mrtg для использования с различными типами входных данных. Для наглядной отладки этих самых данных можно использовать утилиту Eserv SNMP Monitor. А вот здесь есть приличный набор MIB для разнообразного оборудования. Многие программы имеют встроенные или отдельные SNMP-агенты. В общем, можно заниматься мониторингом практически всего айтишного хозяйства. Надо ли оно домашнему пользователю? В некоторых случаях — да, но рассмотренный вариант подойдёт скорее для небольшого офиса. Учтите, что ресурсы роутера не безграничны, и по возможности лучше сразу строить SNMP-мониторинг на базе, к примеру, Zabbix, Nagios или подобных систем. Их мы наверняка ещё коснёмся в будущих материалах, а пока что традиционное напутствие: «Удачи!»
Анонс: Ненадолго вернёмся к теме альтернативных прошивок для роутеров. На этот раз мы рассмотрим настройку SNMP-мониторинга на роутере с использованием MRTG, для того чтобы в любой момент получать различные параметры работы сетевых устройств
Введение
Протокол 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 и минимальный набор утилит. Для этого надо смонтировать нашу флешку и выполнить следующие команды в консоли:
mount -o bind /tmp/harddisk/opt /opt
mkdir -p /opt/tmp/ipkg
ipkg.sh install ipkg-opt
ipkg install nano
ipkg install mrtg
Включим раздел подкачки. Посмотрим на вывод команды fdisk -l и определим, какой из разделов помечен как Linux swap — его и надо подключить командой swapon. (Вместо /dev/sda1 укажите свой раздел!)
Чтобы не выполнять эти действия вручную, пропишем их в автозагрузку (скрипт post-mount):
mkdir -p /usr/local/sbin/
chmod +x /usr/local/sbin/post-mount
В этот файл надо добавить следующие строчки:
/bin/mount -o bind /tmp/harddisk/opt /opt
Сохраняем файл (F2, Y, Enter) и выполняем ещё один набор команд для сохранения настроек:
flashfs save && flashfs commit && flashfs enable
Как и было сказано выше, для вашей прошивки набор инструкций может отличаться. Главное, установить Optware и необходимый софт, а также по желанию включить подкачку (у того же WL-500gP памяти не очень много, так что своп очень пригодится).
Собственно, никакой настройки-то делать не придётся — надо лишь запустить веб-сервер, включить его в автозагрузку и открыть нужный порт (по умолчанию 8081). В веб-интерфейсе роутера в разделе NAT Setting → Virtual Server включаем проброс портов и добавляем правило для IP-адреса роутера.
Настройка 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 и добавим в начале несколько строк:
Options[_]: growright, bits
Что мы сделали? Во-первых, перевели отсчёт из байтов в биты и заставили рисоваться графики справа налево. Во-вторых, включили запуск MRTG в режиме демона, то есть программа будет тихонечко висеть в фоне и каждые 5 минут обновлять графики. Протокол IPv6 нам не нужен — отключаем его. Последний параметр задаёт рабочую папку MRTG, где хранятся все основные файлы.
Для сетевых интерфейсов роутера все настройки идентичны. В квадратных скобках задаётся имя отслеживаемого параметра (скорость, загрузка, потребление чего-либо и так далее). У каждого параметра есть ряд опций. Мы сейчас не будем рассматривать их все, тем более что назначение каждой из них вполне ясно из названия. Полный список всех возможных опций их настроек можно найти в официальной документации MRTG.
Наиболее важной является первая строка вида Target[имя_параметра]: OID:имя_community@адрес_устройства:. OID — это уникальный идентификатор объекта или, иначе говоря, считываемого параметра. К нему мы ещё вернёмся, а пока что основную работу за нас сделал cfgmaker. В SetEnv можно задавать внутренние переменные, а в MaxBytes указывается максимальное значение, которое может принять измеряемый параметр (например, скорость LAN-портов в WL-500gP физически не может быть больше 100 Мбит/с). В Title указывается подпись к генерируемому графику, а в PageTop можно ввести более подробное описание, которое будет показываться при просмотре расширенной статистики. Первую строчку в PageTop полезно обрамить тегами <h1></h1>.
Сохраняем файл mrtg.cfg, ещё раз запускаем indexmaker с теми же параметрами и включаем mrtg.
При первом запуске или смене настроек mrtg может ругнуться на недостающие файлы. А вообще после любых изменений в mrtg.cfg рекомендуется обновлять index.html и перезапускать mrtg.
indexmaker --output=/opt/share/www/mrtg/index.html /etc/mrtg/mymrtg.cfg
Обновите страничку в браузере с открытой статистикой mrtg и полюбуйтесь на результат своих трудов. Можно дополнить имеющиеся графики, например, статистикой использования CPU. Вот пример настроек, взятый на форуме «олеговской» прошивки. В конец конфигурационного файла mrtg надо добавить следующие строки:
Title[cpu]: Server CPU Load (5 minute average)
Legend1[cpu]: CPU Load (x 100)
LegendI[cpu]: 1min load
LegendO[cpu]: 5min load
PageTop[cpu]: <h1>Server average CPU Load</h1>
Ну а затем создать непосредственно скрипт для снятия этой самой статистики…
chmod +x /opt/etc/mrtg/cpu.sh
… и наполнить его следующим содержимым:
Настройка 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 и посмотрите на результат в нижнем поле. Во-первых, мы видим, что отдаётся сразу три подпараметра. Первые два (*.1.48 и *1.49) показывают загрузку каждого из двух ядер процессора, причём информация отдаётся в виде целых чисел в диапазоне от 0 до 100 (фактически %). Попробуем на основе этих данных сформировать конфигурацию для mrtg.
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 следующие строки:
Осталось добавить финальный аккорд.
flashfs save && flashfs commit && flashfs enable && reboot
Заключение
Аналогичным образом можно добавить и массу других параметров для мониторинга. Если не хотите заморачиваться, то в Сети есть множество готовых шаблонов mrtg для использования с различными типами входных данных. Для наглядной отладки этих самых данных можно использовать утилиту Eserv SNMP Monitor. А вот здесь есть приличный набор MIB для разнообразного оборудования. Многие программы имеют встроенные или отдельные SNMP-агенты. В общем, можно заниматься мониторингом практически всего айтишного хозяйства. Надо ли оно домашнему пользователю? В некоторых случаях — да, но рассмотренный вариант подойдёт скорее для небольшого офиса. Учтите, что ресурсы роутера не безграничны, и по возможности лучше сразу строить SNMP-мониторинг на базе, к примеру, Zabbix, Nagios или подобных систем. Их мы наверняка ещё коснёмся в будущих материалах, а пока что традиционное напутствие: «Удачи!»
Читайте также: