Ключевые слова:mrtg, monitor, (найти похожие документы)
From: А. Маркелов.
Newsgroups: http://www.markelov.net/
Date: Mon, 20 Dec 2004 18:21:07 +0000 (UTC)
Subject: Простая установка MRTG для Red Hat Linux
Оригинал: http://www.markelov.net/mrtg.html
Простая установка MRTG для Red Hat Linux
Впервые опубликованно в журнале "Системный администратор" No.2/2004.
Что такое MRTG? MRTG - это Multi Router Traffic Grapher, сервис,
позволяющий посредством протокола SNMP получать из нескольких
устройств информацию, и отображать в окне вашего броузера графики
загруженности канала (входящий трафик, исходящий, максимальный,
средний) с шагом в минуты, часы, дни и за год. Пример работы программы
Вы можете увидеть на рисунке. Там показаны два графика - за неделю и
за месяц. Соответственно с шагом в 30 минут и два часа.
Почему в заглавии статьи есть фраза "простая установка"? Объясняю. В
большинстве случаев системному администратору не требуется мониторить
кучу точек своей сети посредством SNMP. Для небольшой организации
наиболее логичным, и зачастую единственным применением подобного
инструмента является мониторинг загрузки внешнего интерфейса
прокси-сервера, на который мы и будем локально ставить MRTG. Это
значительно упрощает установку программы и исключает использование
протокола SNMP.
Опять же из соображений простоты установки выбран Red Hat Linux (ну и
конечно из соображений распространенности в России - не забываем, что
ряд российских дистрибутивов создан на основе "шапочки"). Это позволит
нам избежать этапов компиляции библиотек и самого MRTG.
Однако, необходимо заметить, что применение Multi Router Traffic
Grapher не ограниченно лишь указанным дистрибутивом, или вообще
операционной системой Linux. При наличии библиотек, перечисленных в
следующем разделе и работающего http-сервера, Вы сможете запустить
MRTG и на другой системе.
Требования к установке
Для работы MRTG требуются следующие библиотеки:
* gd - graph drawing library. Библиотека, ответственная за
формирование графики (http://www.boutell.com/gd/);
* libpng - требуется gd для создания графики в формате png
(http://www.libpng.org/pub/png/src/);
* zlib - данная библиотека используется для компрессии созданной
графики (ftp://sunsite.cnlab-switch.ch/mirror/infozip/zlib/);
Берем с сайта Red Hat (или диска с дистрибутивом) соответствующие
rpm-пакеты, и устанавливаем их командной rpm -i . У меня были
установлены следующие версии:
gd-1.8.4-4.rpm
libpng-1.0.12-2.rpm
zlib-1.1.4-8.rpm
Перед тем как устанавливать пакет, Вы можете проверить его наличие в
системе, а соответственно и необходимость установки командной rpm -qi.
Конечно, если у Вас установлена операционная система, не использующая
стандарт rpm-пакетов, вам придется зайти на сайт проекта, скачать
исходники и скомпилировать исполняемые файлы вручную (собственно, все
сводится к стандартным шагам - configure, make, make install).
Устанавливаем и настраиваем MRTG
Идем на сайт проекта http://people.ee.ethz.ch/~oetiker/webtools/mrtg/ .
По ссылке "Download MRTG" качаем собранный под Red Hat rpm-пакет.
Ставим аналогично библиотекам, командой rpm -i mrtg-2.x-y-z.i386.rpm.
В результате получаем в каталоге Apache c содержанием Вашего сайта
(/var/www/html/) подкаталог mrtg c html-файлами документации. Сюда же
будут помещаться результаты визуализации работы MRTG. В /etc/mrtg
помещается файл mrtg.cfg с настройками, а в /usr/bin/ утилиты
конфигурирования и непосредственно сам исполнимый файл /usr/bin/mrtg.
Далее, при стандартной настройке сервиса, нам бы пришлось настраивать
SNMP как на устройстве/интерфейсе с которого снимаем информацию, так и
на нашей локальной машине, где установлен MRTG. Мы же обойдемся без
этого, и по адресу
http://freshmeat.net/redir/cban/18710/url_tgz/cban-0.1.8-0.tgz скачаем
утилитку cban (Current BANdwidth by Nicu Pavel), которая будет
поставлять нам нужную информацию, обходясь без SNMP.
Разворачиваем архив, и кладем файл /bin/cban в /usr/sbin. Также для
нас интерес представляет файл /etc/mrtg/sample-mrtg.cfg - это, как и
обещает нам название, пример конфига для mrtg. Приведу его полностью,
комментируя значения параметров:
Title[eth0]: Traffic eth0 # название генерируемой страницы
MaxBytes[eth0]: 125000 # при получении значения, большего чем заданное,
# значение не учитывается для построения графика
AbsMax[eth0]: 125000 # при получении значения, большего чем заданное, значение
# вообще не учитывается
Options[eth0]: gauge # опция означает, что берется текущее входное значение,
# а не по нарастающему итогу
Target[eth0]: `/usr/sbin/cban -i eth0 -m` # откуда получаем данные
PageTop[eth0]: eth0 statistics # заголовок генерируемой страницы
YLegend[eth0]: Bytes/s # подпись к значению по оси Y графика
ShortLegend[eth0]: B/s # единица измерения. добавляется к максимальному,
# текущему и среднему значению
Legend1[eth0]: Incoming Traffic # подпись для входящего трафика
Legend2[eth0]: Outgoing Traffic # подпись для исходящего трафика
Legend3[eth0]: Maximum Incoming Traffic # подпись для максимального входящего трафика
Legend4[eth0]: Maximum Outgoing Traffic # подпись для максимального исходящего
трафика
LegendI[eth0]: In: # краткая подпись для цифровых данных (входящий)
LegendO[eth0]: Out: # краткая подпись для цифровых данных (исходящий)
WithPeak[eth0]: ymwd # строим графики за y-год, m-месяц, w-неделю, d-день
Фактически это готовый конфигурационный файл, работающий и без
изменений. Обращаю внимание на строчку "Target[eth0]: `/usr/sbin/cban
-i eth0 -m`". В ней прописан вызов нашей утилиты. eth0 - имя
отслеживаемого интерфейса локальной машины. При необходимости
отслеживать другой интерфейс, Вы должны здесь его указать. Для
ознакомления с другими опциями конфигурационного файла, Вы можете
просмотреть справочник reference.html, в каталоге Apache c содержанием
Вашего сайта (/var/www/html/).
Кроме того, нужно указать каталог, куда будем складывать результаты
работы в виде HTML - странички с графиками: WorkDir:
/var/www/html/mrtg. По адресу http://ваш_хост/mrtg/reference.html
находится документ расписывающий все возможные опции конфигурационного
файла.
Запуск MRTG
После того, как мы разобрались с конфигурационным файлом, осталось
попробовать запустить исполняемый файл /usr/bin/mrtg и посмотреть что
в результате получится. Даем команду:
/usr/bin/mrtg /etc/mrtg/mrtg.cfg --logging /var/log/mrtg.log
и проверяем каталог, заданный параметром WorkDir на предмет
появившихся новых файлов. Если все в порядке, то теперь можно
заставить MRTG перегенерировать статистику, например, каждые пять
минут:
crontab -e
*/5 * * * * /usr/bin/mrtg /etc/mrtg/mrtg.cfg --logging /var/log/mrtg.log
Поздравляю! Теперь у Вас есть инструмент наглядного и понятного
контроля за трафиком в офисе. Да и большому начальнику, при
необходимости, можно показывать эти "веселые картинки" :).
Заключение
Должен сказать, что было бы странным, если бы столь мощный инструмент
использовался только для мониторинга сетевого трафика. Используя MRTG,
Вы можете строить графики загрузки, например памяти или времени
отклика Вашей web-странички. Целый ряд addon-ов можно взять по адресу
http://people.ee.ethz.ch/~oetiker/webtools/mrtg/pub/contrib/ .
А. Маркелов.
.12.2003
Я установил MRTG согласно Вашей инсрукции и вот что получилось, подскажите пожалуйста.
2005-02-10 14:00:13 -- Started mrtg
2005-02-10 14:00:13 -- Can't exec "/usr/sbin/cban": Permission denied at /usr/bin/mrtg line 1550.
2005-02-10 14:00:13 -- WARNING: Running '/usr/sbin/cban -i ppp0 -m': Permission denied
2005-02-10 14:00:13 -- WARNING: Could not get any data from external command '/usr/sbin/cban -i ppp0 -m'
Maybe the external command did not even start. (Inappropriate ioctl for device)
2005-02-10 14:00:13 -- WARNING: Problem with External get '/usr/sbin/cban -i ppp0 -m':
Expected a Number for 'in' but nothing'
2005-02-10 14:00:13 -- WARNING: Problem with External get '/usr/sbin/cban -i ppp0 -m':
Expected a Number for 'out' but nothing'
2005-02-10 14:00:13 -- ERROR: Target[ppp0][_IN_] ' $$target[0]{$mode} ' did not eval into defined data
2005-02-10 14:00:13 -- ERROR: Target[ppp0][_OUT_] ' $$target[0]{$mode} ' did not eval into defined data
2005-02-10 14:00:13 -- WARNING: Skipping Update of ppp0, inlast is not defined
2005-02-10 14:00:13 -- WARNING: Skipping Update of ppp0, outlast is not defined
>Я установил MRTG согласно Вашей инсрукции и вот что получилось, подскажите пожалуйста.
>
>2005-02-10 14:00:13 -- Started mrtg
>2005-02-10 14:00:13 -- Can't exec "/usr/sbin/cban": Permission denied at /usr/bin/mrtg line 1550.
>
>2005-02-10 14:00:13 -- WARNING: Running '/usr/sbin/cban -i ppp0 -m': Permission denied
>2005-02-10 14:00:13 -- WARNING: Could not get any data from external command
>'/usr/sbin/cban -i ppp0 -m'
>Maybe the external command did not even start. (Inappropriate ioctl for device)
>
>
>2005-02-10 14:00:13 -- WARNING: Problem with External get '/usr/sbin/cban -i ppp0 -m':
>
> Expected a Number for 'in' but nothing'
>
>2005-02-10 14:00:13 -- WARNING: Problem with External get '/usr/sbin/cban -i ppp0 -m':
>
> Expected a Number for 'out' but nothing'
>
>2005-02-10 14:00:13 -- ERROR: Target[ppp0][_IN_] ' $$target[0]{$mode} ' did not eval into
>defined data
>2005-02-10 14:00:13 -- ERROR: Target[ppp0][_OUT_] ' $$target[0]{$mode} ' did not eval into
>defined data
>2005-02-10 14:00:13 -- WARNING: Skipping Update of ppp0, inlast is not defined
>
>2005-02-10 14:00:13 -- WARNING: Skipping Update of ppp0, outlast is not defined
>
Установите на файл cban бит "исполнимости".
при установке mrtg, может возникнуть вот такая вот проблема (смотрим лог /vat/log/mrtg.log)
2006-03-18 23:01:01 -- Started mrtg
2006-03-18 23:01:01 -- WARNING: Could not get any data from external command '/usr/sbin/cban -i eth0 -m'
Maybe the external command did not even start. (Illegal seek)
2006-03-18 23:01:01 -- WARNING: Problem with External get '/usr/sbin/cban -i eth0 -m':
Expected a Number for 'in' but nothing'
2006-03-18 23:01:01 -- WARNING: Problem with External get '/usr/sbin/cban -i eth0 -m':
Expected a Number for 'out' but nothing'
2006-03-18 23:01:01 -- ERROR: Target[eth0][_IN_] ' $target->[0]{$mode} ' did not eval into defined data
2006-03-18 23:01:01 -- ERROR: Target[eth0][_OUT_] ' $target->[0]{$mode} ' did not eval into defined data
эта проблема возникает, если вы запускаете дефолтовый cban, решаеться она перекомпиляцией самого cban, а именно:
#cd /cban/src
#make
#make install
после чего получаем в /cban/bin готовый под ваш router cban
>У менЯ пишет:
>2007-03-03 14:40:03 -- Started mrtg with config '/etc/mrtg/mrtg.cfg'
>
>Но, проблемма в том что, он не создает в своей рабочей папке
>никакого файла =((. Не могу понЯть что нужно еще сделать