Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  frox
  SARG
  samba & ClamAV
  named
  proftpd
  cacti
  SAMBA+AD+NT ACL
  MySQL
  hylafax
  DDNS+DHCP
  cvsupd
  Samba как PDC
  Основы LDAP
  LDAP+SSL
  LDAP auth
  knockd
  rsync
  MRTG
  Rejik
  Jabber - OpenFire
  Samba(PDC) + Ldap
  squid+AD
  ATSlog
  vsftpd
  LDAP: samba, dns, dhcp
  Free-SA
  cups-samba на samba+AD
  irc + services
  Nagios - мониторинг сети
  TeamSpeak
  icecast2
  verlihub (p2p)
  Icecast2 + Darkice
  OOPS
  vsftpd + mysql
  Amanda
  HAVP
  Рыбалка на FreeBSD
  DNS сервер NSD
  DNS сервер Unbound
  mpd5, msmtp, dynamic ip
  ProFTPd + LDAP
  OpenVPN + LDAP
  Samba (PDC+BDC)
  BIND & AD
  POWERDNS
  3proxy
  eGroupWare
  GLPI
  SugarForge CRM
  Bacula
  Mysql - базовое описание
  Asterisk IP PBX
  Samba & CUPS & AD & ACL
  SMSTools 3
  Samba+ NT ACL
  phpmyadmin
  1С:Предприятие 8.1
  PurefFTPd
  qemu network
  AimSniff
  comms/scmxx
  Zoneminder
  Openfire Jabber Server
  Zoneminder 2
  Принт-Сервер Samba+LPD & AD
  Кластер OpenLDAP 2.4
  Lightsquid
  Установка Zabbix-1.6
  Установка net2ftp
  VSFTPD + AD && MySQL
  Network UPS Tools
  mpd5 L2TP client
  Apache 2.2 as a proxy
  ejabberd+mysql+icq
  HotSpot
  Установка и использование Zenoss на FreeBSD 7.2
  mysql-proxy
  DNS zones
  squid+sams+sqstat
  transmission-daemon
  Squid+AD (group access)
  SysAid Server
  MySQL Master+Master
  proftpd file auth&quota
  usb_modeswitch
  NSDadmin
  iperf Тест скорости между хостами
  Простой факс-сервер mgetty+sendfax
  SQUID-MultiCpuSystem
  vsftpd + system users
  Syslog server
  Температура в серверной
  Nagios+Digitemp
  Avast! FreeBSD
  Настройка git+gitosis
  Firefox SyncServer
  Scan+Print server FreeBSD 9
  proftpd,pgsql,web
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> программы —> MRTG

MRTG

Автор: dysel.


Недавно назрела необходимость снимать статистику с ADSL модема. Изначально закралось подозрение, что копать нужно в сторону SNMP. Недолгие копания в мануале модема это подозрение подтвердили. Итак, задача:

1. Снимать статистику по загружености интерфейсов с модема;
2. Отображать ее в виде графиков;
3. Графики отоброжать на WEB страничке;

Вспомнил, что когда-то кто-то где-то рассказывал про то как делал аналогичное и использовал при этом MRTG. Ищем в портах:

# cd /usr/ports
# make search name="mrtg"

Port:   mrtg-2.13.2,1
Path:   /usr/ports/net-mgmt/mrtg
Info:   The multi-router traffic grapher
Maint:  demon@FreeBSD.org
B-deps: freetype2-2.1.10_3 gd-2.0.33_4,1 jpeg-6b_4 perl-5.8.8 pkgconfig-0.20
png-1.2.8_3
R-deps: freetype2-2.1.10_3 gd-2.0.33_4,1 jpeg-6b_4 p5-PathTools-3.16
p5-Pod-Parser-1.34 p5-SNMP_Session-1.08 p5-Scalar-List-Utils-1.18,1
perl-5.8.8 pkgconfig-0.20
png-1.2.8_3
WWW:    http://www.mrtg.org/

Находим и устанавливаем:

# cd /usr/ports/net-mgmt/mrtg
# make && make install && make clean

После установки отправляемся в /usr/local/etc/mrtg генерировать конфиг:

# cfgmaker public@192.168.0.250 > mrtg.cfg

192.168.0.250 это мой модем, а public community модема. Теперь осталось полученый конфиг немножко подправить.

# Created by
# /usr/local/bin/cfgmaker public@192.168.0.250

### Global Config Options

#  Путь к директории, в которую будем складывать странички статистики
WorkDir: /usr/local/www/data/mrtg

### Global Defaults

#  для отображения в битах и роста графиков справа
Options[_]: growright, bits

EnableIPv6: no

# Ниже я выкинул ненужные мне интерфейсы

Target[adsllan]: 1:public@192.168.0.250:
SetEnv[adsllan]: MRTG_INT_IP="192.168.0.250" MRTG_INT_DESCR="ETHERNET/0"
MaxBytes[adsllan]: 1250000
Title[adsllan]: Traffic Analysis for LAN on ADSL
PageTop[adsllan]: <h1>Traffic Analysis for LAN on ADSL</h1>

Target[adslwan]: 5:public@192.168.0.250:
SetEnv[adslwan]: MRTG_INT_IP="10.105.43.2" MRTG_INT_DESCR="ATM-VC/2"
MaxBytes[adslwan]: 132000
Title[adslwan]: Traffic Analysis for WAN on ADSL
PageTop[adslwan]: <h1>Traffic Analysis for WAN on ADSL</h1>

Теперь можно попробовать запустить MRTG с этим конфигом:

# mrtg mrtg.cfg

Первые два запуска MRTG поругается на отсутствие файлов в рабочей директории. Откуда бы им взятся? ;) Если все хорошо, то можно запускать MRTG демоном.

# echo 'mrtg_daemon_enable="YES"' >> /etc/rc.conf
# cd /rc.d
# ./mrtg_daemon start
# ps -ax | grep mrtg
59356  ??  Is     0:01.20 /usr/local/bin/perl -w /usr/local/bin/mrtg --pid-file

Теперь бы еще индексный файл положить в директорию web. Этим и займемся:

# cd ..
# indexmaker mrtg.conf > index.html
# cp index.html /usr/local/www/data/mrtg

Все, заходим, любуемся графиками.

ЗЫ. Не забывайте дать права на запись MRTG в рабочую директорию.



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=13586.

размещено: 2006-11-23,
последнее обновление: 2007-03-18,
автор: dysel

оценить статью:

vanvan, 2006-11-27 в 9:33:06

Довесок к MRTG
Просто контроль за каждым тазиком(компьютером) в фирме


#cat /etc/rc.firewall
f="/sbin/ipfw add"
fcom="/sbin/ipfw"
...
#Счетчики
#---count 100 ------------------------
for p in 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 40 51 54 55 100
do
$f 100 count ip from any to 220.111.111.$p via xl0 out
$f 100 count ip from 220.111.111.$p to any via xl0 in
done
#-----------------------------------
#
#
# cat /usr/local/etc/mrtg/mrtg.cfg
....
....
#*************************************************************
Target[127.0.0.1_55]: `/bin/cat /usr/MRTG/220.111.111.55.mrtg`
SetEnv[127.0.0.1_55]: MRTG_INT_IP="220.111.111.55" MRTG_INT_DESCR="xl1"
MaxBytes[127.0.0.1_55]: 1000000
XZoom[127.0.0.1_55]: 2.0
YZoom[127.0.0.1_55]: 2.0
Options[127.0.0.1_55]: growright,bits
Title[127.0.0.1_55]: Traffic Analysis for Internet traffic
PageTop[127.0.0.1_55]: <H1>Traffic Analysis for Internet traffic</H1>
<TABLE>
  <TR><TD>ifName:</TD>     <TD>Pupkin</TD></TR>
  <TR><TD>Max Speed:</TD>  <TD>1.0 MBytes/s</TD></TR>
</TABLE>
#*************************************************************

А файл /usr/MRTG/220.111.111.55.mrtg`
каждые 5 минут обновляет cron
типа
#!/bin/sh
cd /usr/MRTG
f=/sbin/ipfw
dt=`date +"%H-%M %d-%m-%Y"`
MASK=220.111.111.
AWK=/usr/bin/awk
#---------------------------------------------------
$f show 100 > ipfw.tmp
#---------------------------------------------------
for ip in 21 23 24 28 29 34 35 40 51 54 55
do
cat ipfw.tmp | grep $MASK$ip | $AWK '{print $3 }' >$MASK$ip.mrtg
echo $dt >>$MASK$ip.mrtg
echo $MASK$ip >>$MASK$ip.mrtg
ip=`expr $ip + 1`
done
#---------------------------------------------------
$f zero 100




Kacnep, 2006-11-27 в 13:17:42

Харошый скрЫпт ) но если к grep доваить -w то например в файл 220.111.111.1.mrtg не будет попадать каунты от следующих IP

220.111.111.10
220.111.111.11
220.111.111.12
....
220.111.111.100
итд.

ЗЫ.

cat ipfw.tmp | grep $MASK$ip | $AWK '{print $3 }' >$MASK$ip.mrtg

cat ipfw.tmp | grep -w $MASK$ip | $AWK '{print $3 }' >$MASK$ip.mrtg

drewhka, 2007-01-11 в 21:14:10

Вместо
# indexmake mrtg.conf > index.html
должно быть
# indexmaker mrtg.conf > index.html

KrivoSoft, 2007-07-13 в 16:53:34

>ЗЫ. Не забывайте дать права на запись MRTG в рабочую директорию.
Также после запуска # mrtg mrtg.cfg и перед запуском MRTG демоном
не лишним будет сделать chown mrtg:mrtg для всех файлов с которыми работает MRTG (в каталоге на который указывает параметр WorkDir:)

Al, 2007-10-18 в 13:07:25

Для сннятия статистики с freebsd-машины,необходимо установить пакет,который будет эту статистику предоставлять,а mrtg обрабатывать

Ставим net-snmp
добавляем в /etc/rc.conf

snmpd_enable="YES"
snmptrapd_enable="YES"
snmptrapd_flags="-a -p /var/run/snmptrapd.pid"

для настройки есть интерактивный режим:
snmpconf -i

Выбираем snmp.conf, затем
System Information Setup
Там 3 опции:
1.The [typically physical] location of the system
– географическое положение

2.The contact information for the administrator
– ваш майл

3.The proper value for the sysServices object
– там 3 вопроса (1-да, 0-нет). Спрашивает,какие сервисы вашей машиной предоставляются
Далее finished

Выбираем Access Control Setup. выбираем SNMPv1/SNMPv2c read-only access community name.Там спросят комюнити (это типа пароля). Потом указываем,откуда можно конектиться-lcalhost,напр.далее- Enter .)
вводим finished.

Выбираем Agent Operating Mode,затем The IP address and port number that the agent will listen on.указываем адрес и порт,на кот. будет отдавать данные

Выходим.
Далее создадуться конфиги
Запускаем
/usr/local/etc/rc.d/snmpd start

Проверяем
sockstat -4 | grep snmp

Получаем:
root     snmpd      11699 8  tcp4   *:199                *:*
root     snmpd      11699 9  udp4   127.0.0.1:161        *:*
Все

Al, 2007-10-18 в 13:30:02

Не забываем добавлять в крон
/usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg > /dev/null
на ежеминутное выполнение(или как нравится).Так мы снимаем статистику с устройства

Pavel, 2007-10-18 в 13:42:52

На сколько мне не изменяет память у мртг время обновления графика не может быть меньше 300 секунд. Так что не смысла от того что по крону он будет обновляться каждую минуту нет. Может я ошибаюсь.

PS Вроде был патч какойто который снимал это ограничение.

Daemony, 2007-11-01 в 20:14:37

Касательно последнего поста (перед моим).
Согласен с комментатором.
Насчет патча. Кто о нем что-то слышал?
Или я пошел гуглить... ;)

Pavel, 2007-11-02 в 9:51:54

Видел информацию на какомто форуме очень давно. Но сам так и не нашел патч.

Buttler, 2007-11-13 в 9:39:19

Патч? Если запись логов производится в RRD-базу, тогда дискретность можно уменьшить до минуты. Да и снижается потребление ресурсов по сравнению с использованием штатных средств mrtg.

Но задача усложняется ввиду изучения rrdtool, в частности, rrdgraph(1), т.к. отрисовку графиков нужно будет делать самому (достойных скриптов не нашел - сделал cам). Но оно того стоит =)  

vanvan, 2007-12-24 в 18:56:07

Кому лень писать пальчиками скрипт для пополнения
/usr/locla/etc/mrtg/mrtg.conf
для счетчиков

#!/bin/sh
AWK=/usr/bin/awk
MASK=192.168.248.
ip=1
while ( [ $ip -lt 255 ])
do
namehost=`cat /etc/hosts | grep -w $MASK$ip | $AWK '{print $2}'`
echo "#*************************************************************" >>mrgg_config.tmp
echo "Target[127.0.0.1_$ip]: \`/bin/cat /usr/MRTG/$MASK$ip.mrtg\`" >>mrgg_config.tmp
echo "SetEnv[127.0.0.1_$ip]: MRTG_INT_IP=$ip1 MRTG_INT_DESCR=\"xl0\"" >>mrgg_config.tmp
echo "MaxBytes[127.0.0.1_$ip]: 1000000" >>mrgg_config.tmp
echo "XZoom[127.0.0.1_$ip]: 2.0" >>mrgg_config.tmp
echo "YZoom[127.0.0.1_$ip]: 2.0" >>mrgg_config.tmp
echo "Options[127.0.0.1_$ip]: growright,bits" >>mrgg_config.tmp
echo "Title[127.0.0.1_$ip]: Traffic Analysis for Internet traffic" >>mrgg_config.tmp
echo "PageTop[127.0.0.1_$ip]: <H1>Traffic Analysis for Internet traffic</H1>" >>mrgg_config.tmp
echo " <TABLE>" >>mrgg_config.tmp
echo "   <TR><TD>ifName:</TD>     <TD>$namehost</TD></TR>" >>mrgg_config.tmp
echo "   <TR><TD>Max Speed:</TD>  <TD>1.0 MBytes/s</TD></TR>" >>mrgg_config.tmp
echo " </TABLE>" >>mrgg_config.tmp
ip=$(expr $ip + 1)
done



sasha, 2008-03-27 в 12:13:23



ERROR: CFG Error in "setenv[127.0.0.1_1]", line 51: MRTG_INT_IP= MRTG_INT_DESCR="rl0" must be XY="dddd" AASD="kjlkj" ...

Sasha, 2008-03-27 в 12:18:09

echo "SetEnv[127.0.0.1_$ip]: MRTG_INT_IP=$MASK$ip MRTG_INT_DESCR=\"rl0\"" >>mrgg_config.tmp

sasha, 2008-03-27 в 13:42:30

SNMP Error:
no response received
SNMPv1_Session (remote host: "localhost" [127.0.0.1].161)
                 community: "public"
                request ID: 553211476

sasha, 2008-03-27 в 13:42:58

root     bsnmpd     942   3  udp4   127.0.0.1:58342       127.0.0.1:162
root     bsnmpd     942   5  udp4   *:*                   *:*

писечка, 2008-05-16 в 17:04:34

1Товарищщи! 2Это поля для ввода комментариев к статье, а не для вопросов. 4Сюда пишите найденные баги, или какие-то фичи :)
Для вопросов есть форум!

Анонимус, 2008-08-26 в 9:47:28

Товaрищщи! Это поля для ввода комментариев к статье, а не для вопросов. Сюда пишите найденные баги, или какие-то фичи :)
Для вопросов eсть форум!

Анонимус, 2008-08-26 в 9:49:46

Тoварищщи! Это поля для ввода комментариев к статье, а не для вопросов. Сюда пишите найденные баги, или какие-то фичи :)
Для вопросов есть форум!

KrivoSoft, 2009-02-07 в 16:53:20

После обновления perl до 5.8.9 перестал стартовать MRTG с руганью на "Can't locate MRTG_lib.pm in @INC".
Пресобирать MRTG было лениво, попробовал методом тыка посдунуть старые файлы туды, где оно их ожидало:
cp /usr/local/lib/perl5/site_perl/5.8.8/*.pm /usr/local/lib/perl5/site_perl/5.8.9/

Вроде помогло и работает.

Baneff, 2009-02-07 в 18:10:53

2: KrivoSoft
man perl-after-upgrade

KrivoSoft, 2009-02-08 в 22:19:39

Спасибо, познавательно!

InventoR, 2009-12-17 в 0:54:04

Can't locate SNMP_util.pm in @INC (@INC contains: /usr/local/bin/../lib/mrtg2 /usr/local/bin /usr/local/lib/perl5/5.8.9/BSDPAN /usr/local/lib/perl5/site_perl/5.8.9/mach /usr/local/lib/perl5/site_perl/5.8.9 /usr/local/lib/perl5/5.8.9/mach /usr/local/lib/perl5/5.8.9 .) at /usr/local/bin/mrtg line 292.

cd /usr/ports/net-mgmt/p5-SNMP_Session && make install clean

Неоригинально, 2010-02-06 в 17:51:12

Неоригинально. И заколебали уже :)

arh665, 2011-05-12 в 1:03:01

и все бы хорошо, но никак не могу заставить скриптом shell перечитать конфиги по крону, с интервалом каждая минута. Если исполнять прямо в консоли например sh cкриптом:
cd /usr/local/bin/cfgmaker
mrtg mrtg.cfg

график обновляется, это если руками, а если через крон не хочет и все, хоть ты тресни. так же пробовал приписывать крону сразу набор команд, вместо скрипта типа cd /usr/local/bin/cfgmaker && mrtg mrtg.cfg, все равно не хочет обновлять статистику. Что подскажете?


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 47 чел.
За последние 30 мин было: 184 человек
За сегодня было
2790 показов,
692 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0398 секунд
Из них PHP: 27%; SQL: 73%; Число SQL-запросов: 77 шт.
Исходный размер: 170356; Сжатая: 26808