Краткое описание установки beta¶
Внимание, данная инструкция устарела и не является полной для полноценной настройки системы. В скором времени эта страница будет обновлена.¶
дисклеймер. Описание совсем сырое, местами кривое, некоторые решения - откровенные "костыли". Надеюсь со временем будет лучше) С радостью приму любые замечания или пожелания на dw.chvk@gmail.com
Установка рассматривается на примере AltLinux Server 4.0.1 В других дистрибутивах, возможно, будут какие-то отличия, но в целом проблем возникнуть не должно. Если у вас возникли какие-то затруднения обратитесь на форум.
Обзор.¶
TrafStat получает данные от коллектора trafd. Информация о собранном трафике обрабатывается скриптом trafcron и заносится в базу MySQL. Просмотр статистики осуществляется через web-интерфейс, написанный на php.
Системные требования.¶
Для работы с TrafStat нам понадобятся:- Trafd. Совместимая с текущей версией TrafStat версия Trafd имеется в дистрибутиве, или можеть быть получена с сайта разработчика.
- MySQL версии (??)
- Веб-сервер. В рассматриваемом случае - Apache
- Модули apache2-mod_php5 и php5-mysql
- libpcap
- perl-DBI
- perl-DBD-mysql
- php5-gd2
- 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