Pull to refresh

Мониторинг домашнего роутера №2

Не так давно возникла необходимость подсчитать трафик, идущий через маршрутизатор. Установка Proxy-сервера не решала задачу, т.к. необходимо было подсчитать трафик по всем портам, да и хотелось более простого решения. Установка под Windows обусловлена тем, что единственный постоянно включенный компьютер в локальной сети работает под Windows Server 2003. Выход из этой ситуации – установка на сервер MRTG + MRTG_TOTAL.

Необходимое условие – поддержка маршрутизатором протокола SNMP.

Для установки MRTG под Windows понадобится:

Дистрибутив MRTG. Скачать.
Дистрибутив PERL. Например ActivePerl. Скачать.
Windows Server 2003 Resource Kit Tools для установки MRTG в качестве службы. Скачать.
Инструкция по установке MRTG под Windows на английском языке.

Ход действий:

Установка MRTG
Настройка MRTG
Запуск MRTG как службы
Установка mrtg_total
Установка MRTG

  • Разархивируем дистрибутив MRTG в директорию C:\MRTG
  • Устанавливаем PERL. Необходимо убедиться, что директория C:\perl\bin прописана в переменной Path (Панель управления -> Система -> Дополнительно -> Переменные среды).

image
  • Для проверки корректности установки откройте командную строку и выполните:

cd c:\mrtg\bin
perl mrtg

В результате, если все установлено правильно, вы должны увидеть что-то подобное:
Usage: mrtg <config -file>

mrtg-2.16.2 - Multi Router Traffic Grapher

Copyright 1995-2006 by Tobias Oetiker
Licensed under the Gnu GPL.

If you want to know more about this tool, you might want
to read the docs. You can find everything on the
mrtg website:

http://oss.oetiker.ch/mrtg/


Настройка MRTG

  • Создание конфигурационного файла. Перед началом необходимо выяснить:
  • IP-адрес маршрутизатора. В этом примере 192.168.0.1
  • Имя SNMP Get Community (Read Community). По-умолчанию почти на всех маршрутизаторах – public
  • Определить рабочую директорию MRTG. Обычно это корневая директория веб-сервера, на котором статистика MRTG будет доступна пользователям локальной сети. В нашем примере рабочая директория C:\www\mrtg
  • Если вы хотите осуществить мониторинг не только входящего и исходящего трафика, а еще к примеру загрузку процессора маршрутизатора и т.п., то вам нужно выяснить SNMPOID этого параметра.

  • Далее выполняем в командной строке:

cd c:\mrtg\bin
perl cfgmaker public@192.168.0.1 --global "WorkDir: c:\www\mrtg" --output mrtg.cfg

Эта команда создает базовый файл конфигурации MRTG. Обратите внимание, что в созданном файле, ссылки на интерфейсы маршрутизатора представляют собой числа, которые могут измениться при перенастройке маршрутизатора. Чтобы обойти эту проблему, рекомендуется делать ссылки на интерфейсы маршрутизатора в виде ip-адресов или описаний интерфейсов. Это можно сделать с помощью дополнительных команд утилиты cfgmaker. Список команд здесь. Какой способ выбрать решать вам в зависимости от модели маршрутизатора.
Если во время создания конфигурационного файла, вы получили ошибку «no such name» или «no response», скорее всего вы не правильно указали имя SNMP Community. Также следует проверить открыт ли в брандмауэре порт 161 (порт по умолчанию для протокола SNMP), и не изменен ли он на нестандартный на самом маршрутизаторе.
Теперь откроем созданный файл (c:\mrtg\bin\mrtg.cfg)
Добавьте следующую строку в самое начало файла:
WorkDir: c:\www\mrtg

Также относительно базового файла я добавил следующие директивы:
Options[_]: growright
EnableIPv6: no

Options[_]: growright – для отображения на графике временной шкалы с лева на право
Описание интерфейса LAN:
### Interface 3 >> Descr: 'ixp0' | Name: 'ixp0' | Ip: '192.168.0.1' | Eth: '00-16-b6-8b-b7-88' ###
#
Target[192.168.0.1_3]: 3:public@192.168.0.1:
SetEnv[192.168.0.1_3]: MRTG_INT_IP="192.168.0.1" MRTG_INT_DESCR="ixp0"

HTML-шаблон для файлов статистики (можно спокойно адаптировать по своему вкусу):
MaxBytes[192.168.0.1_3]: 12500000
Title[192.168.0.1_3]: Traffic Analysis for LAN -- RV042
PageTop[192.168.0.1_3]:

Traffic Analysis for LAN -- RV042


System: RV042 in
Maintainer:
Description: ixp0
ifType: ethernetCsmacd (6)
ifName: ixp0
Max Speed: 12500.0 kBytes/s
Ip: 192.168.0.1 ()



Относительно исходного файла здесь изменено значение MaxBytes[192.168.0.1_3]. Изначально было MaxBytes[192.168.0.1_3]: 1250000, что соответствует скорости интерфейса в 10 Мбит/c. Для 100 Мбит/c необходимо изменить значение на 12500000
Теперь все готово для пробного запуска. Выполняем в командной строке:
cd с:\mrtg\bin
perl mrtg mrtg.cfg

Во время первых двух запусков возможны ошибки. Это нормально и говорит о том, что до этого момента не была накоплена статистика.

В рабочей директории (С:\www\mrtg) после запуска команды должен появится файл статистики 192.168.0.1_3.html, который можно открыть в любом браузере. После первых запусков статистика, конечно, не впечатляет. Для отображения корректной статистики MRTG нужно запускать с интервалом в 5 минут.

Запуск MRTG как службы

Для установки MRTG в качестве службы, программа должна быть уже полностью настроена. Понадобятся две утилиты из Windows Server 2003 Resource Kit Tools: SRVANY.exe (Applications as Services Utility) и INSTSRV.exe (Service Installer). Пользователь системы должен иметь административные права.

Для начала необходимо внести изменения в mrtg.cfg. В начало файла, сразу после директивы WorkDir: c:\www\mrtg, добавляем строку:
RunAsDaemon: yes

Копируем srvany.exe и instsrv.exe в c:\mrtg\bin
Создаем файл c:\mrtg\bin\mrtg.reg со следующим содержанием:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRTG\Parameters]
"Application"="c:\\perl\\bin\\wperl.exe"
"AppParameters"="c:\\mrtg\\bin\\mrtg --logging=eventlog c:\\mrtg\\bin\\mrtg.cfg"
"AppDirectory"="c:\\mrtg\\bin\\"

Открываем командную строку и выполняем:
cd c:\mrtg\bin
instsrv MRTG c:\mrtg\bin\srvany.exe

Теперь добавляем необходимые ключи в реестр. Делаем правый клик на mrtg.reg, выбираем Слияние или выполняем в командной строке:
regedit /s c:\mrtg\bin\mrtg.reg

Запускаем службу MRTG (Панель управления -> Администрирование -> Службы). После запуска службы в Диспетчере задач должны появится два новых процесса: srvany.exe и wperl.exe. На этом установка службы MRTG завершена. По умолчанию через каждые 5 минут mrtg будет собирать статистику с маршрутизатора
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.