Считаем трафик с помощью Netams

NetamsNetams это мощный инструмент, не только для подсчета трафика, но и для ограничения доступа в интернет, ограничению скорости доступа, квотированию трафика, биллинга и много чего еще. Про полные возможности программы читайте документацию на официальном сайте 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

Просмотр статистики Netams

А вот и сразу у меня всплыл баг. В IE6-IE7 не захотела разворачиваться страничка с просмотром значений накопившейся статистики collapse policies, а в Firefox все работало, также работает в IE8.

Ошибка на странице IE

Вот такие вот мелкие косяки встречаются за netams.. Но все поправимо 😉 Немного поискал и нашел ответ. Скачиваете уже переделанный netams.js и заменяете тот что поставился при установке. Вот теперь работает во всех основных браузерах, что у меня есть..

Починили отображение в IE7

Пропишите автоматический запуск Netams в стартовые скрипты ОС и очень рекомендую почитать документацию по netams. Особенно по политикам расчета трафика и привязки этих политик к вашим юнитам. В следующей статье я приведу более сложные политики подсчета трафика и разберемся немного над сервисом quota.

Запись опубликована в рубрике Netams, Считаем трафик с метками , , , , , . Добавьте в закладки постоянную ссылку.

6 комментариев Считаем трафик с помощью Netams

  1. Alm говорит:

    Очень подробная инструкция, Спасибо!

  2. Alm говорит:

    Только не хватает одного, параметра socket не хватает.
    У меня без него не завелся Netams, хорошо когда есть логи…)

    • mik говорит:

      Напишите без какой строки не завелся netams и какую версию и build использовали.
      Я думаю всем будет интересно

  3. Alm говорит:

    Использовал 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

  4. Alm говорит:

    Ваша статья самая полная и понятная из всего рунета лично для меня.
    До этого пытался заставить работать NetAMS, он не работал…
    У меня правда CentOS 5.5, может поэтому так.

  5. Alm говорит:

    Вот мои строчки:

    service storage 1
    type mysql
    socket /var/lib/mysql/mysql.sock
    accept all

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *