Рубрики
Windows Сети Софт

Установка MRTG под Windows.

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

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

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

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

Инструкция по установке MRTG под Windows на английском языке — http://oss.oetiker.ch/mrtg/doc/mrtg-nt-guide.en.html

Содержание:

Установка MRTG

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

    Изменение переменной среды Path
    Изменение переменной среды Path
  • Для проверки корректности установки откройте командную строку и выполните:
    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]: <h1>Traffic Analysis for LAN -- RV042</h1>
    		<div id="sysdetails">
    			<table>
    				<tr>
    					<td>System:</td>
    					<td>RV042 in </td>
    				</tr>
    				<tr>
    					<td>Maintainer:</td>
    					<td></td>
    				</tr>
    				<tr>
    					<td>Description:</td>
    					<td>ixp0  </td>
    				</tr>
    				<tr>
    					<td>ifType:</td>
    					<td>ethernetCsmacd (6)</td>
    				</tr>
    				<tr>
    					<td>ifName:</td>
    					<td>ixp0</td>
    				</tr>
    				<tr>
    					<td>Max Speed:</td>
    					<td>12500.0 kBytes/s</td>
    				</tr>
    				<tr>
    					<td>Ip:</td>
    					<td>192.168.0.1 ()</td>
    				</tr>
    			</table>
    		</div>

    Относительно исходного файла здесь изменено значение 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 будет собирать статистику с маршрутизатора

С помощью MRTG можно получить графики текущей загрузки канала. Но для получения суммарного количества входящего и исходящего трафика по дням (месяцам) необходимо установить дополнительную утилиту mrtg_total. Результат ее работы можно посмортеть тут, а скачать здесь.

Установка mrtg_total

Инструкция по установке на английском — http://www.geocities.com/josef_wendel/mrtg_total.html (К сожалению, сайт перестал открываться. Скачать mrtg_total)

  • Для корректной работы mrtg_total необходимо установить следующие библиотеки Perl:
    • GD -1.32 (или лучше)
    • GDGraph -1.33 (или лучше)
    • GDGraph3d -0.55 (или лучше)
    • GDText -0.80 (или лучше)

    Установка этих библиотек из командной строки (как написано в инструкции) у меня не получилась, поэтому пришлось устанавливать их с помощью Perl Package Manager (Пуск -> Программы -> ActivePerl -> Perl Package Manager). Сделать это легко, утилита имеет понятный графический интерфейс.

  • Разархивируем mrtg_total.pl в c:\mrtg\bin
  • Теперь необходимо модифицировать mrtg.cfg. Добавляем в описание интерфейса следующий псевдо комментарий:
    #-#Total[192.168.0.1_3]:      Traffic Totals for ROUTER LAN
    #-#Total-Unit[192.168.0.1_3]: M

    Все вместе выглядит так:

    ### 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"
    
    <strong>#-#Total[192.168.0.1_3]: Traffic Totals for ROUTER LAN #-#Total-Unit[192.168.0.1_3]: M</strong>
    
    MaxBytes[192.168.0.1_3]: 12500000
    Title[192.168.0.1_3]: Traffic Analysis for 3 -- RV042
    .....

    #-#Total-Unit[192.168.0.1_3]: M — предоставляет статистику в мегабайтах. Также возможны значения: K,G,T (Кб, Гб, Тб).
    #-#Total-Ratio[]: yes — добавляет дополнительную колонку с коэффициентом соотношения входящего и исходящего трафика.
    #-#Total-Directory[]: path — аналогично Workdir. Можно определить рабочую директорию отличную от директории mrtg. Если не указано, используется директория mrtg.
    #-#Total-Output[]: DWM — определяет формат вывода. D — дни, W — недели, M — месяцы. По умолчанию DM.

  • Создаем файл mrtg_total.cmd со следующим содержанием:
    cd c:\mrtg\bin
    perl mrtg_total.pl mrtg.cfg
    exit
  • Теперь необходимо создать задание на выполнение этого файла каждый день в районе 01:00. Сделать это можно с помощью, встроенного в windows планировщика задач (Task Scheduler).

    Планировщик задач (Task Scheduler)
    Планировщик задач (Task Scheduler)
  • Устанавливать mrtg_total лучше не сразу после установки mrtg, а подождать 1-2 дня, чтобы была накоплена какая-то статистика
  • Если все работает корректо, после отработки скрипта в рабочей директории должен появится файл вида 192.168.0.1_3.total.2009.07.html, в котором будет отображена статистика по дням (в нашем случае для июля). Для следующего месяца будет создан файл 192.168.0.1_3.total.2009.08.html

На этом установка закончена!

Маленькое примечание для тех у кого внешний статический ip-адрес. Если вы будете мониторить интерфейс WAN, то статистика получится некорректной (входящий трафик будет больше реального как минимум на 30%) из-за эффекта широковещательного шторма и т.п. Выход: считать трафик по интерфейсу LAN. Если вы используете несколько локальных портов маршрутизатора для подключения различных устройств, то для исключения из статистики внутреннего трафика нужно установить дополнительный коммутатор, подключить его к маршрутизатору, все устройства повесить на этот коммутатор. Другие локальные порты маршрутизатора не использовать. В этом случае статистика будет более менее корректной.

42 ответа к “Установка MRTG под Windows.”

Все ето я давно сделал на FreeBSD
Теперь стал вопрос о Виндовс
Нашел решение на http://www.paessler.com/   (на 20 сенсоров оно freeware)
Скачал и установил. Там готовые мибы.
Снимаю счас данные о загрузке сети, месте на винтах, загрузке проца и т. д.
Прчем они по умалчанию они снимаютсяч каждую минуту. Посмотреть можно по вебу зайдя на машину
гду уствновлен PRTG  например http://192.168.1.20/sensorlist.htm
Даные выводятся как в виде грвфиков так и в табличном виде. Генерятся тажне отчеты в
ПДФ формате с посылкой на почту.
 

Посмотри
Новая версия PRTG сильно навороченная.Там видео на
http://www.paessler.com/support/video_tutorials
есть как че ставить пошагово и т.д.
плюс скрины и хорошый мануал.
У меня есть страрая версия (лекарство тоже к ней) так как я мониторил больше 25 серверов по
филиях то 20 сенсоров  мне явно не хватало.Если нужно тебе то пиши в аську на 235202662
С темой PRTG

Ну ароде с основными показателями разобрался, спасибо за помощ. Осталась одна интересная идя/мысля: получить занные о реальной загрузке физических дисков(тобто %отдачи записи %процент чтения с диска/на диск )встречал некие параметры вида OID dskPercent.1 или из ветки UCD-SNMP-MIB, на которую браузер говорит что не поддерживается.(так чтобы на примере говорить то хотябы параметр hdd busy который прекрасно показывает AIXовый монитор топаз)

Надеюсь мысль получилось изсложить

В дополнение покажу интересующий код:
LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt
Target[server.disk]: dskPercent.1&dskPercent.2:public@localhost
Title[server.disk]: Disk Partition
Usage
PageTop[server.disk]: Disk Partition Usage /home and /var
MaxBytes[server.disk]: 100
ShortLegend[server.disk]: %
YLegend[server.disk]: Utilization
LegendI[server.disk]: /home
LegendO[server.disk]: /var
Options[server.disk]: gauge,growright,nopercent
Unscaled[server.disk]: ymwd

больше всего интересуют первые 2 строчки
откуда берется LoadMIBs: HOST-RESOURCES-MIB.txt
как я понимаю: dskPercent.1&dskPercent.2 берется из него.
но как обяснить системе что такое dskPercent.1&dskPercent.2???

Насколько я понял, пример выше из линукса. Там действительно в директории /usr/share/snmp/mibs/ целая куча файлов, которые переводят несовсем понятные наименования MIB’ов в удобочитаемый вид. Файлы эти можно подгрузить через команду LoadMIBs. В общем это нужно только для удобства. Есть ли что-то подобное под AIX — не знаю…

>как обяснить системе что такое dskPercent.1&dskPercent.2???
Вот эти параметры:
MaxBytes[server.disk]: 100
Options[server.disk]: gauge,growright,nopercent
как раз для этого. Т.е. данные снимаются, а с помощью этих параметров mrtg показывает проценты как проценты.

linux aixосновы практически идентычные, главный аопрос в том что система не отвечает на dskPercent.1 (или цифровое значение) говорит мол не понимаю что ты у меня спрашиваешь. главный вопрос я не знаю и никак не могу наййти миб который бы показал чтение/ззапись с диска. процент свободного места на логических файловых я достал а вот хотелось бы знать чем занимается непосредственно желязака по имени HDD? вот самое интересное

М-да… в линуксах и прочих иксах я не силен…

Но вот что нашел через гугл:
http://forums.cacti.net/about5481.html
Как я понял, ребята каким-то образом связали выполнение команды
iostat -xtc | grep «sd0»
с OID — 1.3.6.1.4.1.2021.8.1.101. И с него уже снимали данные по загрузки диска.
Посмотри, возможно это то что нужно. Возможно нет ) Чисто интуитивный поиск…

День добрый.

Есть вопросик точнее проблема:
Никак не могу въехать в синтаксис определения устройства для мониторинга.
Так как с помощью «perl cfgmaker public@192.168.0.1 —global «WorkDir: c:\www\mrtg» —output» подтягиваются токо сетевые интерфейсы
а меня интересует больше загрузка проца, памяти, дисковая не на роутере а на Серваке (ОС АIX)

знаю такое делалось, но всяческие контакты утеряны с человеком который это реализовывал

Если быть конкретнее то проблема в том для начала как правильно указать параметр для определения источника получения данных (если можно с примером и описанием) очень буду благодарен

Да, интересный вопрос. Могу посоветовать вот что:

Есть утилита MRTG cfg File Creator. Позволяет в графическом режиме создавать mrtg.cfg. Самый главный ее плюс — там есть SNMP Browser. Вбиваешь ip-адрес сервера, и он тебе выдает список параметров snmp c текущими значениями.
Строка из этого списка выглядит примерно так:
1.3.6.1.2.1.4.21.1.4.93.80.74.189, 2: 4294967295
По этим числам тебе надо определить что есть что. Хорошо, если есть какие-то мануалы. В общем задача творческая… ) Но зато когда определишь, берешь идентификатор — 1.3.6.1.2.1.4.21.1.4.93.80.74.189 и вставляешь в mrtg.cfg.
Получается что-то вроде этого:

# Router CPU load %
Target[cpu.1]:1.3.6.1.2.1.4.21.1.4.93.80.74.189:public@10.10.10.1
RouterUptime[cpu.1]: public@10.10.10.1
MaxBytes[cpu.1]: 100
Title[cpu.1]: CPU LOAD
PageTop[cpu.1]: CPU Load %
Unscaled[cpu.1]: ymwd
ShortLegend[cpu.1]: %
XSize[cpu.1]: 380
YSize[cpu.1]: 100
YLegend[cpu.1]: CPU Utilization
Legend1[cpu.1]: CPU Utilization in % (Load)
Legend2[cpu.1]: CPU Utilization in % (Load)
Legend3[cpu.1]:
Legend4[cpu.1]:
LegendI[cpu.1]:
LegendO[cpu.1]: Usage
Options[cpu.1]: gauge

Вот такая теория!

Спасибо за быстрый ответ:
Спасибо за тулзу, сейчас опробую.
Простсо до этого я пробовал из набора соларВиндс использовать SNMP MIB Browser и из него получал сумасшедший набор MIB, в виде: Mib, iod name, value

теми же утилитами нашел нужный мне миб(совпал с MRTG cfg File Creator. токо MRTG cfg File Creator. небыло описания для него ). с параметром value надо что-то делать? и еще такой прикол что система то многопроцесорная зотелось бы все процессоры видеть на одной странице но на разных графиках.

Value — это текущее значение счетчика, с ним делать ничего не надо.

Если найдешь MIB’ы отвечающие за загрузку каждого процессора по отдельности, то нет проблем. Все как для одного процессора, только создаешь нужное количество секций в mrtg.cfg и прописываешь в каждой свой MIB.

Делить на секции?
Target[cpu.1] и Target[cpu.2] так? но тогда он создает отдельную страницу для каждого Target.

также полукчаю ошибку:
2010-06-09 16:46:30: ERROR: Target[cpu.1][_IN_] ‘1.3.6.1.2.1.25.3.3.1.2. $target
->[0]{$mode} ‘ evaluated to ‘☺♥♠☺☻☺↓♥♥☺☻0’ instead of a number
2010-06-09 16:46:30: ERROR: Target[cpu.1][_OUT_] ‘1.3.6.1.2.1.25.3.3.1.2. $targe
t->[0]{$mode} ‘ evaluated to ‘☺♥♠☺☻☺↓♥♥☺☻0’ instead of a number

хотя использую noi и noo

Может неправильный MIB?
Вроде ошибка говорит о том, что mrtg Ожидает получить число, а вместо него получает какую-то строку…

По ютому же мибу рисует график одна из утилит с СолаВиндворкс:
вот описание миба по миб броузеру:
MIB HOST-RESOURCES-MIB
Name hrProcessorLoad.3

iso.org.dod.internet.mgmt.mib-2.host.hrDevice.hrProcessorTable.hrProcessorEntry.hrProcessorLoad.3

OID 1.3.6.1.2.1.25.3.3.1.2.3
Type Integer32
Units
Access unknown
Status unknown
Value 77

The average , over the last minute , of the percentage
of time that this processor was not idle.
Implementations may approximate this one minute
smoothing period if necessar

вот что гоаорит рисовалка:

MIB HOST-RESOURCES-MIB
Name hrProcessorLoad

iso.org.dod.internet.mgmt.mib-2.host.hrDevice.hrProcessorTable.hrProcessorEntry.hrProcessorLoad

OID 1.3.6.1.2.1.25.3.3.1.2
Type Integer32
Units
Access unknown
Status unknown

The average , over the last minute , of the percentage
of time that this processor was not idle.
Implementations may approximate this one minute
smoothing period if necessary.

нет никаких точек оказалось надо использовать:
1.3.6.1.2.1.25.3.3.1.2.3&1.3.6.1.2.1.25.3.3.1.2.3
График начал рисоваться, появилась другая проблема то что для второго(1.3.6.1.2.1.25.3.3.1.2.4) процессора график не рисуется и но ошибок не дает. хотя я вижу что проц загружен.

Точно. Я забыл, что когда указываешь конкретный OID, нужно указать 2 параметра иначе график не рисуется…
Для второго проца используешь тот же синтаксис? М-да… ничего в голову не приходит…

Добрый день, не получается запустить перевод для MRTG, получил файл locales_mrtg но все равно результата не видно, подскажите в чем дело?

Вообще locales_mrtg.pm должен находится в директории установки mrtg в поддиректории translate + там же должны быть языковые файлы (russian.pmd, russian1251.pmd и т.п.).
Все эти файлы входят в состав дистрибутива, «получать» их по отдельности не надо.

Далее переходим к редактированияю mrtg.cfg
В начало файла необходимо добавить директиву:
Language: russian1251
— если конечный html-файл в кодировке windows-1251, просто russian — если html в utf-8 (не пробовал, но надеюсь что так).

Это переведет весь «внутренний» текст. Шаблоны html, которые также находятся в mrtg.cfg, переводить надо вручную, т.е. внутри того же mrtg.cfg

Огромное спасибо за помощь.Дело в том что командой CMD я никогда не пользовался.Все получилось.Осталось установить mrtg total.

Здравствуйте.Может поможете.Что то не ясно как можно в командной строке вбить cd c:\mrtg\bin.Когда выполняешь эту команду выдается ошибка.Когда выдаешь ее же но без cd открывается сама папка, что не удивительно а про вторую строчку perl mrtg вообще не понятно.Момент выполнения команд как то пропушен.

Странно, у меня ощущение, что вы выполняете команды в каком-то файловом менеджере типа Total Commander.
Нужно выполнять их, открыв окно командной строки (Пуск -> Выполнить -> в строку вводите cmd и нажимаете Ок — откроется командная строка. Другой вариант: Пуск -> Программы -> Стандартные -> Командная строка).

Первая команда: cd c:\mrtg\bin — это переход в указанную папку.
Вторая: perl mrtg — это запуск mrtg.

Вот скрин. Только у меня вместо c: диск f: в остальном без разницы.

Спасибо, помогло настроить мртг уже через 10 минут после того как я о нём первый раз услышал.

Добрый день. Если вам не трудно, отправьте пожалуйста mrtg_total на мою почту, что я указал.
Весь интернет перерыл, не могу найти. Его сайт закрылся.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Срок проверки reCAPTCHA истек. Перезагрузите страницу.