NetAMS-Front
Описание
Ntams-Front — фронт end клиент для известной в определенных кругах считалке трафика Netams (автор Антон Винокуров). В Netams уже присутствует некий интерфейс для отображения статистики потребления трафика пользователями, но он мне кажется немного «убогим». Netams-Front полностью написан на php, использует базу данных Netams его конфиг, и telnet для управления им. Интерфейс тестировался под ос Linux (CentOS, Fedora, Ubuntu) и FreeBSD. Для последней есть порт (огромное спасибо alexey@renatasystems.org). Для использования интерфейса не требуется ни каких дополнительных модулей к php кроме php-mysql.
Основной функционал можно разбить на две части, первая отображение статистики, вторая управление данными. Если с первой частью все более менее нормально, то с управлением не все так хорошо, много чего не реализовано. Статистика отображается в трех видах: детальная, сводная и детализация запрошенных url-ов. Детальная статистика отображает трафик в разрезе юнитов, протоколов. Сводная по юнитам верхнего уровня. Детализация запрошенных url — показывает по каким сайтам ходил пользователь. Из блока управления, реализовано управление юнитами и протоколами, а так же сервисные функции управления базой данных (резервное копирование, очистка).
В последней версии (0.4) реализован небольшой windows клиент, для отображения информации в треи системы. Клиент написан на Delphi7, его исходные коды есть в архиве с 0.4-й версией.
Скриншоты
- Детальная статистика по юниту «Офис»
- Детальная статистика по юниту «Зюскин Егор»
- Квоты юнита «Зюскин Егор»
- Сводная статистика
- Windows клиент
Установка и настройка
Настраиваем Netams. По желанию, создаем отдельного пользователя netams-front на mysql сервере, с доступом к базе данных netams, можно ограничить доступ к таблицам, необходимые таблицы «oids» и «summary». Если Netams-front и Netams находятся на разных серверах, в конфиге Netams необходимо переменную «login» установить в «any» (или ip адрес сервера на котором будет установлен Netams-front). Не забываем про файрвол, необходимо дать доступ на порт 20001 по протоколу tcp. Если Netams и Netams-front находятся на разных серверах, то на последнем придется собрать «netamsctl» из пакета netams, для управления сервисом.
Устанавливаем Netams-fron. Качаем последнюю версию, распаковываем обычно для linux /var/www/html/netams-front. Правим /etc/netams/.netamsctl.rc:
login=admin password=aaa host=localhost
проверяем работоспособность netamsctl netamsctl -f /etc/netams/.netamsctl.rc примерный вывод:
NeTAMS 3.4.5 (3490.2) root@localhost / Sat 09 Oct 2010 22:08:08 +0600 Run time 35 days 23 hours 54 mins 7.7314 secs System time: 35 days 23 hours 54 mins 1 mins 53.0428 secs Average CPU/system load: 0.00%Process ID: 15388 RES: 0K Memory allocated: 45258307 (1171059), freed (1149021) (0 NULL) [22038 used] Total objects: Oids used: 26 NetUnits: 14 Policies: 10 Services: 11 Users: 1 Connections: 1 active, 47 total Services info: Storage ID=1 type mysql wr_q 0/87294 rd_q 0/0 Data-source ID=1 type LIBPCAP source eth0:0 loop 18084150 average 59 mcsec Perf: average skew delay 172827 mcsec, PPS: 12, BPS: 1042 Alerter 0 queue max: 255, current: 0 Scheduled tasks: 1
Если у Вас примерно такой вывод тогда, netamsctl настроен верно и можно переходить к следующему шагу. Иначе необходимо разобраться почему не удается присоединиться к netams серверу на 20001 порт.
Настраиваем Netams-front. Настройка сводится к правке одного файла «config.php»
define('PATH','/');# Путь относительно директории виртуального хоста $cfg['backup_dir'] = './backup';# Директория для резерного копирования (пока не работает) $cfg['admins_ip'] = '127.0.0.1';# ip адресса админов через пробел $i++;# Переменная для удобства добавления серверов $data_base[$i]['name'] = 'Server1';# Имя сервера $data_base[$i]['dbhost'] = '192.168.0.1';# Хост базы данных mysql $data_base[$i]['dbuname'] = 'root';# Имя пользователя mysql $data_base[$i]['dbpass'] = ' ';# Пароль mysql $data_base[$i]['dbname'] = 'netams';# Имя базы данных $data_base[$i]['netamsclient'] = 'telnet'; # telnet or clt $data_base[$i]['netamsctl'] = '/usr/local/sbin/netamsctl -f /etc/netams/.netamsctl.rc'; # команда для запуска $data_base[$i]['netamshost'] = '192.168.0.1';# Хост telnet сервера NetAms $data_base[$i]['netamsport'] = 20001;# Порт telnet сервера NetAms $data_base[$i]['netamsuser'] = 'admin';# Пользователь telnet сервера NetAms $data_base[$i]['netamspass'] = 'aaa';# Пароль telnet сервера NetAms $data_base[$i]['netamstimeout'] = 10;# Таймаут для подглючения $data_base[$i]['netamscommandtimeout'] = 125000; #таймаут для отработки программы $data_base[$i]['traffic_list'] = 'ip local'; # Список общих политик через пробел $data_base[$i]['traffic_sum_calc'] = ''; # Сумматор политик $data_base[$i]['proto_hide_list'] = 'urls'; # Список скрываемых политик для групп $data_base[$i]['group_show_policy'] = 'ip local www'; # Политики показа для групп $data_base[$i]['user_grouping_by_ip'] = false ;# (not impl) Группировать по ip адесу (пока не готово) $data_base[$i]['adv_users'] = '127.0.0.1 192.168.0.2 192.168.0.3';# IP адреса пользователей через пробел, кто имеет доступ ко всей статистике $data_base[$i]['round_traffic_to'] = 2;# Округления трафика после точки $data_base[$i]['urls_monitor_enabled'] = true; # Включён ли сервис монитора url-layer-detect
Если все настроено верно, то при заходе браузером на сервер Вы увидите картинку как на скриншоте. Если нет подключения к базе или к самому Netams, интерфейс выдаст соответствующую ошибку. Если интерфейс выдал белый экран, то включайте проказ ошибок в php, уровень отчета в E_ALL & ~E_NOTICE и смотрите в каком месте проблема.













Поздравляю с переходом на вордпресс. NetamsFront работает, в боевых условиях. Может на днях займусь поиском одного гадкого бага, Если найду — отпишусь. Спасибо за прогу .
да, баг мелкий, но гадкий, и непонятно откуда ноги. Если долго не смотреть статистику (админом) то при входе может упасть нетамс сам, что очень может доставить. Юзерами не проверял, но шеф, имеющий свойство залезть под админом посмотреть что как раз в месяц его регулярно вызывает.
Баг ни как не связан с самим фронтом …
Боевой сервер аптайи 300+ пользуемся фронтом раз в пол года, ни одного разрыва =)
Что за имя сервера?
$data_base[$i]['name'] = ‘Server1′;# Имя сервера
То как он будет отображаться, подразумевается работа с несколькими серверами.
Команда netamsctl -f /etc/netams/.netamsctl.rc не может выдать указанный примерный вывод.
netamsctl -f /etc/netams/.netamsctl.rc «show version» может
Делал все по инструкции в итоге такие вот ошибки
Deprecated: Function eregi() is deprecated in /usr/local/www/netams-front/kernel.php on line 8
Deprecated: Function eregi() is deprecated in /usr/local/www/netams-front/config.php on line 8
Deprecated: Function eregi() is deprecated in /usr/local/www/netams-front/include/class-calendar.php on line 8
Deprecated: Function eregi() is deprecated in /usr/local/www/netams-front/include/class-ctree.php on line 8
Deprecated: Function eregi() is deprecated in /usr/local/www/netams-front/include/db.php on line 9
Deprecated: Function eregi() is deprecated in /usr/local/www/netams-front/kernel.php on line 242
Deprecated: Function eregi() is deprecated in /usr/local/www/netams-front/kernel.php on line 242
Deprecated: Function eregi() is deprecated in /usr/local/www/netams-front/kernel.php on line 310
Access denied
Версия php 5.3 не использует функцию eregi().
php.ini:
mbstring.func_overload = 4
Решит вашу проблему.