Netams это мощный инструмент, не только для подсчета трафика, но и для ограничения доступа в интернет, ограничению скорости доступа, квотированию трафика, биллинга и много чего еще. Про полные возможности программы читайте документацию на официальном сайте Netams. В данной статье мы будем устанавливать самую простейшую конфигурацию по учету трафика. Но в системе уже должны быть установлены и работать apache, mysql (про установку apache и mysql и стартовые скрипты). А также должна быть установлена библиотека libpcap, с помощью которой netams и будет считать трафик.
Установка Netams
У думаю по установке больших вопросов возникнуть не должно. Ставите netams из своих репозитариев или портов. Очень рекомендую обновить порты и репозитарии перед установкой netams, т.к. netams достаточно часто обновляется и исправляет свои баги.
Ниже я приведу установку из исходников, которая справедлива для всех unix систем 😉
Скачиваем последнюю версию с сайта Netams. На текущий день это версия 3.4.5. Запускаем configure и внимательно смотрим за тем с какими опциями у нас будет собираться пакет. Самое главное, чтобы конфигуратор netams определил поддержку MySQL.
#/usr/src/netams-3.4.5# ./configure.sh
##########################################################
## Configuring NeTAMS for build targets... ##
Linux operating system...
Will have LIBIPQ support
Optional features: Use_cli_enable BW_limit Fast_FW_checks Layer7_filter Hash_database
Will have MYSQL support
[ /usr/lib/mysql /usr/local/include/mysql ]
Will have MYSQL (static) support
[ /usr/lib/mysql /usr/local/include/mysql ]
GLib 2.0 found disabling OpenSSL
[ /usr/lib /usr/include/glib-2.0 /usr/lib/glib-2.0/include ]
Will have BILLING service
Will have DEBUG flag set
Will have RADIUS support
## Configuration file was built. ##
##########################################################
Затем стандартные
#make
#make install
Переходим к настройке.
Настройка Netams
Первым делом создаем в MySQL базу для Netams. Я предпочитаю это делать из командной строки самого сервера MySQL. Авторизовываемся на sql сервере и создаем базу и пользователя netams с полными правами на свою базу.
#mysql -u root -p
mysql>create database netams;
mysql>GRANT ALL ON netams.* TO netams@localhost IDENTIFIED BY 'password_user_netams';
mysql>flush privileges;
mysql>exit;
Теперь можно править основной конфиг netams – netams.conf.sample. Найти его можно в /etc или в /usr/local/etc в зависимости от вашего дистрибутива и способа установки.
Переименовываем его в netams.conf и приводим к такому простейшему виду:
показать
Вышеприведенная конфигурация netams подходит для компьютеров с двумя сетевыми картами, когда один интерфейс выход в интернет, а второй смотрит в локальную сеть.
Разберем конфиг netams подробно. Вносите свои изменения в требуемых местах. Малозначимые строки конфигурации я упущу. Про них прочитайте на сайте проекта.
user name admin real-name "Admin" password aaa email root@localhost permit all
Измените пароль aaa на свой.
service server 0
login local
listen 20001
max-conn 6
В данной секции service server выбран локальный тип входа, как наиболее безопасный. Listen 20001 это порт, который будет слушать программа для изменения конфигурации и сбора статистики, max-conn число одновременных подключений к процессу. В принципе менять что-то в данной секции не требуется.
service processor
lookup-delay 20
flow-lifetime 120
policy name all-trafic target proto ip
restrict all pass local pass
unit host oid 009750 name internet ip ваш_ip_интернет ds-list 1 acct-policy all-trafic
unit host oid 009751 name local ip ваш_ip_локалка ds-list 2 acct-policy all-trafic
Очень важная секция. В данной секции задаются политики учета трафика. У нас пока только одна политика с названием all-trafic, под которую попадает весь трафик.
restrict all pass local pass – политика по умолчанию – в нашем случае пропускаем всех.
Далее перечисляем юниты, задаем им уникальные имена, ip адреса и привязку к data-source и политике. Я дал названия internet и local.
service storage 1
type mysql
host localhost
user netams
password ****
dbname netams
accept all
Секция, где мы задем базу данных, хост, имя для базы данных, логин и пароль. Подставьте свои, которые вы заводили на сервере MySQL.
#интернет
service data-source 1
type libpcap
source eth0
rule 11 "ip"
#локалка
service data-source 2
type libpcap
source eth1
rule 11 "ip"
Перечисляем интерфейсы по которым хотим считать статистику. Задайте вместо eth0 и eth1 свои. Если у вас есть третий интерфейс, просто сделайте аналогичную service data-source 3 для него. Надеюсь суть вы уловили..
service html
path /usr/local/apache/htdocs/netams/stat
run 5min
url http://192.168.0.17/netams/stat
htaccess no
client-pages all
account-pages none
Секция для записи статистики. Пропишите свои пути до главной директории apache и подставьте свой ip. Вход в статистику в данной секции разрешен всем, за это отвечает переменная htaccess no. А иначе надо авторизовываться по имени-паролю.
service scheduler
oid 08FFFF time 5min action "html"
Секция заданий. Раз в 5 минут выполняем действие сохранить статистику. Так что раз в 5 минут статистика будет обновляться в html страничках apache сервера.
Запуск Netams и просмотр статистики.
Когда все требуемые изменения внесены в файл пробуем выполнить первый запуск natams. В /etc/rc.d/init.d у вас должен был появиться файл netams-startup.sh. Выполняем
#netams-startup.sh start
И смотрим логи /var/log/netams.log, в них не должно быть ошибок. Пробуем присоединиться к netams. В консоле выполняем
# telnet localhost 20001
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
NeTAMS 3.4.5 (3490.1) root@m1k / Mon 26 Jul 2010 11:08:53 +0400
Username: admin
Password:
#
Должны приконнектиться к сервису netams. Пробуем набрать команды show config, show version, save. Никаких ошибок быть не должно, в противном случае внимательно читаем log. Выход из netams – команда exit.
Для просмотра статистики, вставляем нижеприведенную секцию в конфигурацию apache. Пути до корневой директории сайта подставьте свои
<Location /netams>
Options Indexes FollowSymLinks MultiViews
Order allow,deny
allow from all
DefaultLanguage ru
AddDefaultCharset WINDOWS-1251
</Location>
<Location /netams/cgi-bin>
# AuthUserFile /usr/local/apache/htdocs/netams/stat/.htpasswd
Options Indexes FollowSymLinks MultiViews ExecCGI
Order allow,deny
allow from all
DefaultLanguage ru
AddDefaultCharset WINDOWS-1251
</Location>
Alias /netams /usr/local/apache/htdocs/netams
AddHandler cgi-script .cgi
Перезапускаем apache.
Ну и само собой в корне сайта apache должна быть директория /netams с админскими скриптами в подпапке cgi-bin, папкой stat куда будут сохраняться статистика netams и парой других папок. По умолчанию эта директория ставится по пути /var/www/netams. Если у вас корневая директория apache находится по другим путям, то просто скопируйте папку netams со всем содержимым в корень своего сайта.
Теперь пришла очередь немного модифицировать конфиги двух скриптов config.cgi в папке ./cgi-bin и ./cgi-bin/admin. Открываем эти файлы в любом текстовом редакторе и в самом начале изменяем пароль admin-a который вы задали в netams.conf, а также имя базы netams, имя пользователя базы netams и если надо хост где запущен MySQL.
В принципе все. Можно попробовать посмотреть статистику, набрав в браузере http://ваш_ip/netams/stat
А вот и сразу у меня всплыл баг. В IE6-IE7 не захотела разворачиваться страничка с просмотром значений накопившейся статистики collapse policies, а в Firefox все работало, также работает в IE8.
Вот такие вот мелкие косяки встречаются за netams.. Но все поправимо 😉 Немного поискал и нашел ответ. Скачиваете уже переделанный netams.js и заменяете тот что поставился при установке. Вот теперь работает во всех основных браузерах, что у меня есть..
Пропишите автоматический запуск Netams в стартовые скрипты ОС и очень рекомендую почитать документацию по netams. Особенно по политикам расчета трафика и привязки этих политик к вашим юнитам. В следующей статье я приведу более сложные политики подсчета трафика и разберемся немного над сервисом quota.
Очень подробная инструкция, Спасибо!
Только не хватает одного, параметра socket не хватает.
У меня без него не завелся Netams, хорошо когда есть логи…)
Напишите без какой строки не завелся netams и какую версию и build использовали.
Я думаю всем будет интересно
Использовал NetAMS 3.4.5.
Все делал по Вашей статье, трафик после не считался. Зашел в логи /var/log/netams. Там написано can’t connect to MySql socket…..
После отредактировал /etc/netams.conf, добавил строчку socket /var/lib/mysql/mysql.sock, ее взял из файла /etc/my.cnf
После в логах страшных строк не было и трафик появился в /var/www/html/netams/stat
Ваша статья самая полная и понятная из всего рунета лично для меня.
До этого пытался заставить работать NetAMS, он не работал…
У меня правда CentOS 5.5, может поэтому так.
Вот мои строчки:
service storage 1
type mysql
socket /var/lib/mysql/mysql.sock
accept all