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

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)
  named 9.7.0
  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.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 17 чел.
За последние 30 мин было: 63 человек
За сегодня было
12 показов,
4 уникальных IP
 

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

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.1281 секунд
Из них PHP: 48%; SQL: 52%; Число SQL-запросов: 86 шт.
Исходный размер: 154386; Сжатая: 24641