Эта записка содержит краткую информацию по установке NetAMS v4 на CentOS 6 Linux.
Старую версию биллинга v3.4, знают практически все Линуксоиды, а особенно FreeBSD-ники. Так как она устанавливается из портов.
Помимо установки будет рассмотрен процесс настройки подсчета трафика на двух интерфейсах.
В настоящее время продукт активно дорабатываться, исправляются ошибки, добавляются новые фичи . Разработчик старательно "вылизывает" свой продукт, делая его стабильным и функциональным, что конечно радует конечных пользователей.
Не советую ставить биллинг начинающим, так как система из разряда "сделай все сам". Чтобы ее настроить до конца потребуются глубокие знания в ОС Linux, скриптинге и т.д.
Советую взглянуть на другие решения.
Содержание:
1. Закачка и установка NetAMS 4 в /usr/local
2. Установка Java Machine
3. Установка MySQL и создание базы
4. Правка файлов конф. файлов NetAMS
5. Создание симлинков Java
6. Установка Libpcap 1.1
7. Создание скрипта запуска NetAMS
8. Вход в веб интерфейс
9. Настройка Netams на учет трафика
10. Настройка NAT
11. Настройка локального DNS для кэширования запросов
12. Проверка, а тикает ли трафик
Итак приступим, для начала установим виновника.
1. Закачка и установка NetAMS 4 в /usr/local
Скачайте NetAMS 4 с официального сайта (файл netams4.0.1634-linux-i386.tar.gz). Для этого пройдите по ссылке:
http://www.netams.com/netams4_download.html
Полученный архивный файл требуется распаковать в папку /usr/local/
# mkdir /usr/local/netams4
# mv netams4.0.1634-linux-i386.tar.gz /usr/local/netams4
# cd /usr/local/netams4
# tar -zxvf netams4.0.1634-linux-i386.tar.gz
На сайте разработчика, часто появляются новые версии биллинга, проверьте сайт на наличие свежей версии.
2. Установка Java Machine
Установите JAVA JRE, скачайте Java здесь:
# wget http://sourceforge.net/projects/javaruntime/files/jre-6u27-linux-i586-rpm.bin/download -O jre-6u27-linux-i586-rpm.bin
# chmod 750 jre-6u27-linux-i586-rpm.bin
# ./jre-6u27-linux-i586-rpm.bin
3. Установка MySQL и создание базы
Установите MySQL
# yum install mysql-server mysql-devel -y
Создайте базу netams4, для этого запустите демон СУБД MySQL
# service mysqld start
Поставьте в автозагрузку MySQL
# chkconfig mysqld on
Настройке опции работы MySQL
# mysql_secure_installation
А теперь создайте базу netams4, разрешите пользователю "netams" с паролем "password" работать с созданной базой
# mysql -u root -p
mysql> Enter password: *****
mysql> CREATE DATABASE netams4;
mysql> GRANT ALL PRIVILEGES ON netams4.* TO 'netams'@'localhost' IDENTIFIED BY 'password';
mysql> quit
4. Правка файлов конф. файлов NetAMS
Настройте NetAMS
Открываем файл /usr/local/netams4/netams4.properties и меняем следующие параметры:
db.sql.mysql.user=netams
db.sql.mysql.password=password
Также необходимо поменять значение в файлах:
/usr/local/netams4/webadmin/webadmin-startup.sh
-> LOGFILE="/var/log/netams4/run-web.log"
/usr/local/netams4/jserver/jserver-startup.sh
-> LOGFILE="/var/log/netams4/run.log"
# mkdir /var/log/netams4
Это все делается для хранения логов в месте, где они должны хранится, а не в папке самого NetAMS4
5. Создание симлинков Java
Создадим симлинки JAVA
# java -version
Java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)
# which java
/usr/bin/java
# find /usr -name "java" |grep jre
/usr/java/jre1.6.0_27/bin/java/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/bin/java/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.19/jre/bin/java/usr/java/jre1.6.0_27/bin/java/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/bin/java/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.19/jre/bin/java
Здесь нас интересует первая строчки.
# cd /usr/local/netams4
# ln -s /usr/java/jre1.6.0_27 java
# cd jserver
# ln -s /usr/java/jre1.6.0_27 java
6. Установка Libpcap 1.1
Установим Libpcap зависимости:
# yum install flex bison gcc gcc-c++ -y
Скачаем сам Libpcap:
# wget http://www.tcpdump.org/release/libpcap-1.1.1.tar.gz
Распакуем его:
7. Создание скрипта запуска NetAMS
Создадим скрипт автозапуска NetAMS
# vi /etc/init.d/netams4
#!/bin/sh
# Startup script for netams4
#
# chkconfig: 2345 41 59
# description: Run netams4
# Source function library.
. /etc/init.d/functions
#Проверяем, есть ли файл /usr/local/netams4/netams4.properties
[ -f /usr/local/netams4/netams4.properties ] || exit
LOCKFILE=/var/lock/subsys/netams4
RETVAL=0
# Функция старта netams4
start() {
echo -n "Starting netams4: "
daemon 'cd /usr/local/netams4/jserver/ && sh jserver-startup.sh && cd /usr/local/netams4/webadmin && sh webadmin-startup.sh && cd /usr/local/netams4/repserver && sh repserver-startup.sh'
RETVAL=$?
[ $RETVAL -eq 0 ] && touch "$LOCKFILE"
echo
}
#Функция стопа netams4
stop() {
echo -n "Shutting down netams4: "
rm -f /var/run/netams4.pid
local PID=$(ps ax|grep netams4.properties|grep preferIPv4Stack|awk '{print $1;}')
if [ -n "$PID" ]; then
for i in $PID
do kill $i
done
local array=( $PID )
echo "Netams4 processes stopped: ${array[@]}"
else
echo "Netams4 not running"
fi
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f "$LOCKFILE"
echo
}
# Функция рестарта netams4
restart()
{
stop
start
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload|restart)
restart
;;
condstop)
if [ -e "$LOCKFILE" ]; then
stop
fi
;;
condrestart)
if [ -e "$LOCKFILE" ]; then
restart
fi
;;
status)
status netams4
RETVAL=$?
;;
*)
echo "Usage: ${0##*/} {start|stop|reload|restart|condstop|condrestart|status}"
RETVAL=1
esac
exit $RETVAL
Добавим скрипт в автозапуск:
# chmod 750 /etc/init.d/netams4
# chkconfig --level 35 netams4 on
8. Вход в веб интерфейс
Запустим демон netams4:
# service netams4 start
Теперь осталось зайти в Веб Интерфейс:
127.0.0.1:8080/webadmin/webadmin.html
Логин/пароль: netams/netams
9. Настройка Netams на учет трафика
После установки NetAMS, требуется произвести его настройку.
Для этого надо завести контракт, выбрать источник данных и т.д.
Продолжим с настройки источника данных.
1. Источник данных
Добавим источник данных для интерфейса eth0, так как именно он смотрит в интернет. Зайдем в веб интерфейс Netams по адресу http://127.0.0.1:8080/webadmin
Разработчики Netams4 категорически не советуют использовать источник данных "JPcapLocalDataSource". Поэтому мы добавим источник данных "RemoteAgentDatasource".
Далее проследуем по меню:
Система (System) -> Источники данных (Data sources) -> Добавить новый источник (Add new datasource)-> RemoteAgentDatasource.class 2.2 -> OK
По окончанию нажимаем кнопку "ПУСК"
Чтобы трафик учитывался, вам понадобится запустить специального агента командой:
/usr/local/netams4/jserver/agent/n4agent_pcap -e /usr/local/netams4/jserver/agent/access-ipset.sh -c 127.0.0.1:20002 -p /var/run/n4agent.pid -d -q >/dev/null 2>&1
Желательно добавить эту команду в автозагрузку:
# vi /etc/rc.d/rc.local
Добавляем в конец файла выше упомянутую строчку:
/usr/local/netams4/jserver/agent/n4agent_pcap -e /usr/local/netams4/jserver/agent/access-ipset.sh -c 127.0.0.1:20002 -p /var/run/n4agent.pid -d -q >/dev/null 2>&1
2. Контракты
Заходим в Элементы -> Контракты -> Добавить ->
Наименование: Vanka Vstanka
Тип контракта: Personal
Группа контактов: MasterGroup
Имя пользователя: Vanka
Пароль: Vstanka
Нажимаем кнопку "Применить"
Нажимаем кнопку "Другие настройки"
Вкладка Лицевые счета -> Добавить -> Валюта -> RUR -> Применить
Вкладка Учетные объекты -> Добавить -> Вбиваем IP адрес и префикс локальной сети, например 192.168.1.0/24
Имя профиля: enable monitor (any)
Вкладка Услуги -> Тариф -> Only Traffic
-----------------> Лицевой счет -> RUR
-----------------> Учетный объект -> 192.168.1.0/24
10. Настройка NAT
Настроем NAT:
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.20.30.40
Здесь:
192.168.1.0/24 - адрес локальной сети
10.20.30.40 - адрес сетевого адаптера смотрящего в интернет.
Включим пересылку пакетов через наш шлюз:
# nano /etc/sysctl.conf -> net.ipv4.ip_forward = 1
Применим настройки без перезагрузки:
# sysctl -p
11. Настройка локального DNS для кэширования запросов
Установим и настроим BIND для организации кэширующего DNS сервера
Вводим следующие команды:
# yum install bind -y
# vi /etc/named.conf
listen-on { 127.0.0.1; 192.168.1.2; }; # IP адрес сетевой карты подключенной в локальную сетьallow-query { 127.0.0.1; 192.168.1.0/24; }; # Адрес локальной сети
Теперь проверим работу DNS сервера, запустим службу DNS:
# service named start
Выйдет сообщение наподобие этого:
Starting named: [ OK ]
Добавим службу named (он же Bind) в автозагрузку:
# chkconfig named on
12. Проверка, а тикает ли трафик
Теперь осталось проверить, ведется ли учет трафика. Для этого нам нужен компьютер в локальной сети, который будет выходит в Интернет через наш шлюз с установленным NetAMS4. Присвоем ему IP адрес локальной сети, маску, IP адрес шлюза и ДНС.
Закачаем какой нибудь файл из сети Интернет. Через не которое время зайдем на наш сервер http://127.0.0.1:8080
Далее зайдем в Отчеты -> Простой отчет - > Vanka Vstanka -> Сформировать
Видим, что трафик тикает =)