Краткое описание установки beta

Внимание, данная инструкция устарела и не является полной для полноценной настройки системы. В скором времени эта страница будет обновлена.

дисклеймер. Описание совсем сырое, местами кривое, некоторые решения - откровенные "костыли". Надеюсь со временем будет лучше) С радостью приму любые замечания или пожелания на

Установка рассматривается на примере AltLinux Server 4.0.1 В других дистрибутивах, возможно, будут какие-то отличия, но в целом проблем возникнуть не должно. Если у вас возникли какие-то затруднения обратитесь на форум.

Обзор.

TrafStat получает данные от коллектора trafd. Информация о собранном трафике обрабатывается скриптом trafcron и заносится в базу MySQL. Просмотр статистики осуществляется через web-интерфейс, написанный на php.

Системные требования.

Для работы с TrafStat нам понадобятся:
  1. Trafd. Совместимая с текущей версией TrafStat версия Trafd имеется в дистрибутиве, или можеть быть получена с сайта разработчика.
  2. MySQL версии (??)
  3. Веб-сервер. В рассматриваемом случае - Apache
  4. Модули apache2-mod_php5 и php5-mysql
  5. libpcap
  6. perl-DBI
  7. perl-DBD-mysql
  8. php5-gd2
Для сборки trafd так же понадобятся
  • make
  • gcc
  • libpcap
  • libpcap-devel

Установка

Установка базы данных

создаем временный каталог

[dwak@localhost ~]$ mkdir /tmp/trafstat && cd /tmp/trafstat

качаем TrafStat

[dwak@localhost trafstat]$ wget http://redmine.shelek.su/attachments/download/14/trafstat-0.1-beta.r107.tar.gz

Распаковываем

[dwak@localhost trafstat]$ tar xzf ./trafstat-0.1-beta.r107.tar.gz

Создаем БД и пользователя

[dwak@localhost trafstat]$ mysql -u root -p12345

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.0.51a ALT Linux MySQL RPM
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> create database trafstat;
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on trafstat.* to trafstat@localhost identified by '12345' with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql> quit

Устанавливаем заготовку базы

[dwak@localhost trafstat]$ mysql -u trafstat -p12345 trafstat < /tmp/trafstat/trafstat-0.1-beta/sql/base.sql

Установка веб-интерфейса

Копируем файлы веб-интерфейса в рабочую директорию веб-сервера

[dwak@localhost trafstat]$ sudo mkdir /var/www/apache2/html/trafstat

[dwak@localhost trafstat]$ sudo cp -R /tmp/trafstat/trafstat-0.1-beta/www/* /var/www/apache2/html/trafstat/
[dwak@localhost trafstat]$ sudo chown apache2:apache2 -R /var/www/apache2/html/trafstat/

Установка коллектора трафика

[dwak@localhost /]# cd tmp/trafstat/trafstat-0.1-beta/package/trafd-build/

[dwak@localhost trafd-build]$ sudo ./trafd.SlackBuild

После этого trafd будет собран в /tmp/package-trafd после чего файлы trafd нужно разложить по соответствующим папкам системы. От дистрибутива к дистрибутиву могут наблюдаться различия, для AltLinux разложить нужно так:

[dwak@localhost /]$ sudo cp /tmp/package-trafd/etc/rc.d/rc.trafd.new /etc/init.d/trafd

[dwak@localhost /]$ sudo chmod u+x /etc/init.d/trafd
[dwak@localhost /]$ sudo cp /tmp/package-trafd/etc/trafd/trafctl.conf.new /etc/trafd/trafctl.conf
[dwak@localhost /]$ sudo cp /tmp/package-trafd/etc/trafd/traflog.format.new /etc/trafd/traflog.format
[dwak@localhost /]$ sudo cp /tmp/package-trafd/usr/bin/* /usr/sbin/ <<< это, безусловно, уродство. в
[dwak@localhost /]$ sudo cp /tmp/package-trafd/usr/bin/* /usr/bin/ <<< ближайшее время порешаем. Подробнее issue #51
[dwak@localhost /]$ sudo cp -R /tmp/package-trafd/usr/doc/trafd-3.0.3-b7 /usr/share/doc
[dwak@localhost /]$ sudo cp -R /tmp/package-trafd/usr/man/ /usr/share/
[dwak@localhost /]# sudo cp -R /tmp/package-trafd/var /
[dwak@localhost /]# sudo chown trafd:trafd -R /var/spool/trafd/
h3. Установка скриптов для выгрузки статистики в БД

[dwak@localhost /]$ sudo mkdir /usr/libexec/trafstat

[dwak@localhost /]$ sudo cp /tmp/trafstat/trafstat-0.1-beta/scripts/trafcron.pl /usr/libexec/trafstat/
[dwak@localhost /]$ sudo cp /tmp/trafstat/trafstat-0.1-beta/scripts/trafsave.pl /usr/libexec/trafstat/
[dwak@localhost /]$ sudo mkdir /etc/trafstat
[dwak@localhost /]$ sudo cp /tmp/trafstat/trafstat-0.1-beta/scripts/trafstat.conf /etc/trafstat/

Настройка

На нашем шлюзе 2 интерфейса: eth0 192.168.0.10/24 смотрит наружу, eth1 10.0.0.1 - внутренний.
h3. trafd

Если ваша сеть за натом, то снимать статистику нужно с внутреннего интерфейса, если нет - то с любого. Для указания trafd источника сбора статистики служит параметр interfaces в /etc/trafd/trafctl.conf. в нашем случае:

interfaces="eth1"

Скрипты выгрузки статистики

Основной конфигурационный файл /etc/trafstat/trafstat.conf
Для нашего случая:

Options for access to the database

trafsave_db_name = trafstat
trafsave_db_user = trafstat
trafsave_db_pass = 12345
trafsave_delay = 3
trafcron_time_offset = -2
h3. web-интерфейс

Теперь нужно настроить общение между веб-интерфейсом и БД. Настройки хранятся в файле config.php, в корне папки веб-интерфейса. В нашем случае /var/www/apache2/html/trafstat/config.php Назначение полей вобщем интуитивно:

/* настройки базы данных */

$dbhost = 'localhost'; // сервер MySQL
$dbname = 'trafstat'; // имя базы данных
$dbuser = 'trafstat'; // имя пользователя для доступа к базе (чтение/запись)
$dbpasswd = '12345'; // пароль пользователя

Теперь веб-интерфейс должен быть доступен по адресу http://192.168.0.10/trafstat

Проверка

запускаем trafd

service trafd start

и пробуем статистику

[dwak@localhost /]$ sudo /usr/libexec/trafstat/trafcron.pl

Если на http://192.168.0.10/trafstat данные о статистике обновились, то осталось только добавить выгрузку трафика в cron

[dwak@localhost /]$ sudo crontab -e

и добавить строчку навроде

*/5 * * * * /usr/libexec/trafstat/trafcron.pl 2>&1 > /dev/null