Установка NiTraf в Ubuntu

23 Апр
2009

Net-Acct (exorsus.net/projects/net-acct) – весьма простой в настройке и использовании коллектор транзитного трафика с богатыми возможностями. Оригинальная версия сохраняет собранную информацию в текстовый файл, но есть и форк netacct-mysql (netacct-mysql.sf.net), позволяющий записывать данные в базы MySQL или PostgreSQL. Постепенно эти проекты обросли многочисленными анализаторами журналов (например, Sawmill – www.sawmill.net/formats/net_acct.html) и интерфейсами. Одной из таких «надстроек» является NiTraf (nitalaut.sarkor.uz), способный подсчитывать трафик по IP-адресам за выбранный период, поддерживающий квоты и задание алиасов, а также отображающий детальную статистику по портам и протоколам. Информация сохраняется в MySQL и затем выводится через веб-интерфейс.


Для работы программы потребуется собственно Net-Acct, серверы MySQL и Apache2. В Ubuntu/Debian их установка выглядит так:

$ sudo aptitude install net-acct mysql-server python-mysqldb apache2 apache2-utils

Подготовливаем MySQL сервер:

$ mysql -uroot -prootpassword
> CREATE DATABASE trafdata;
> USE trafdata;
> GRANT ALL ON trafdata.* TO traf@localhost IDENTIFIED BY ‘trafadmin’;
> QUIT;

В скриптах NiTraf жестко зашит путь /opt/trafdata/raw, куда Net-Acct должен сохранять информацию. Cоздаем этот каталог:

$ sudo mkdir -p /opt/trafdata/raw

Все настройки Net-Acct производятся в единственном файле /etc/naccttab:

$ sudo nano /etc/naccttab

# сюда пишем логи и дамп
file /opt/trafdata/raw/net-acct.log
dumpfile /opt/trafdata/raw/dump
debugfile /opt/trafdata/raw/net-acct.debug

# Трафик, проходящий через этот сетевой интерфейс, не учитываем
notdev eth1
# Установка устройства в режим приема всех пакетов
#device eth0
# Снимать данные только с этого устройства
#iflimit eth0
# Игнорировать внутрисетевой трафик
ignoremask 255.255.255.0
# Игнорировать loopback сеть (аналогично можно указать и другие сети)
ignorenet 127.0.0.0 255.0.0.0
# Этот параметр обязательно должен быть включен
# ряд disable отключает вывод определенных полей, 7 – подсчет пакетов
disable 7

Перезапускаем демон:

$ sudo /etc/init.d/net-acct restart

Распаковываем архив с NiTraf и копируем каталоги на свое место:

$ tar xzvf nitraf-20070320.tar.gz
$ sudo mv -v ./nitraf/nitraf /etc
$ sudo mv -v ./nitraf/traf /var/www

В файле /etc/nitraf/mysql/create_mysql_tables.py необходимо указать адрес LAN:

LAN=’192.168.10.’

После чего запускаем скрипт:

$ sudo /etc/nitraf/mysql/create_mysql_tables.py

Вначале лучше вручную проверить работу скриптов, используемых для сбора статистики:

$ cd /etc/nitraf
$ sudo ./rawtraf.py
$ sudo ./settings/checkquota.py

Если все в порядке, редактируем /etc/crontab, добавив в него две строки:

*/10 * * * * root cd /etc/nitraf; ./rawtraf.py
*/5 * * * * root cd /etc/nitraf/settings; ./checkquota.py

Учет трафика начался, переходим к настройке веб-интерфейса. Создаем файл сайта traf такого содержания:

$ sudo nano /etc/apache2/sites-available/traf

<Directory «/var/www/traf/»>
Options Indexes MultiViews FollowSymLinks ExecCGI
AllowOverride All
AddDefaultCharset CP1251
</Directory>

Активируем новый сайт:

$ sudo a2ensite traf

Чтобы веб-интерфейс функционировал, в конфиге Apache должны быть прописаны две директивы:

AddHandler cgi-script .cgi
LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so

И включены необходимые модули:

$ sudo a2enmod mime
$ sudo a2enmod cgi

Перезапускаем веб-сервер:

$ sudo /etc/init.d/apache2 force-reload

Все готово. Система работает. Доступ к каталогу охраняет файл .htaccess, поэтому задаем пароль:

$ htpasswd -c /var/www/traf/.htaccess username

Который и используем для входа. Если защита не нужна .htaccess можно удалить.

Настройки

Настройки

Теперь набираем в браузере ссылку http://localhost/traf и смотрим собранную статистику.

Подсчет трафика в NiTraf

Подсчет трафика в NiTraf

Комментировать

Наверх