
Установки Ubilling на Ubuntu server 10.04.3 LTS |
![]() |
![]() |
![]() |
Автор: Administrator |
27.11.11 12:50 |
Общие аспекты установки Ubilling на
Данное руководство актуально для версии Ubilling 0.0.7 Требования к установленному ПО
Установка требуемого внешнего ПОВ данном примере рассматривается установка всего требуемого ПО при помощи apt. # sudo bash # apt-get install mysql-server-core-5.1 # apt-get install mysql-client-core-5.1 # apt-get install libmysqlclient16 # apt-get install libmysqlclient-dev # apt-get install apache2 (mysql-server при установке запросит пароль суперпользователя БД, для примера это у нас будет newpassword) # apt-get install mysql-server (bandwidthd при установке запросит имя сетевого адаптера через который вести учет и подсети пользователей) # apt-get install bandwidthd # apt-get install softflowd # apt-get install expat # apt-get install libexpat-dev # apt-get install php5-cli # apt-get install libapache2-mod-php5 # apt-get install php5-mysql # apt-get install dhcp3-server # aptitude install build-essential # a2enmod php5 редактируем /usr/local/etc/sudoers User_Alias BILLING = www BILLING ALL = NOPASSWD: ALL Установка Stargazer# wget http://stg.dp.ua/download/server/2.407-p1/stg-2.407-p1.tar.gz # tar zxvf stg-2.407-p1.tar.gz # cd stg-2.407-p1/projects/stargazer/ # ./build # make install # cd ../sgconf && ./build && make && make install # cd ../sgconf_xml/ && ./build && make && make install редактируем /etc/stargazer/stargazer.conf, приводя его в соответствие текущим потребностям Также рекомендуется ознакомиться с документацией по Stargazer для уточнения деталей. # путь к логфайлу LogFile = /var/log/stargazer.log # путь к pid PIDFile = /var/run/stargazer.pid # файл с описанием класов трафика Rules = /etc/stargazer/rules # время записи детальной статистики в базу DetailStatWritePeriod = 1/4 # время сброса счетчиков трафика в базу StatWritePeriod = 10 # день снятия абонплаты DayFee = 1 # это последний день месяца? DayFeeIsLastDay = no # день обнуления счетчиков трафика DayResetTraff = 1 # "размазанное" снятие абонплаты SpreadFee = no # позволять пользователю доступ если у него остался предоплаченый трафик? FreeMbAllowInet = no # писать стоимость предоплаченого трафика? WriteFreeMbTraffCost = yes # снимать полную абонплату ежемесячно? FullFee = yes # названия класов трафика относительно /etc/stargazer/rules <DirNames> DirName0 = Internet DirName1 = Internal DirName2 = DirName3 = DirName4 = DirName5 = DirName6 = DirName7 = DirName8 = DirName9 = </DirNames> ExecutersNum = 1 # путь модулей ModulesPath = /usr/lib/stg # модуль хранения данных <StoreModule store_mysql> # хост MySQL dbhost = localhost # имя базы dbname = stg # логин пользователя MySQL dbuser = root # пароль пользователя MySQL rootdbpass = newpassword </StoreModule> <Modules> # модуль авторизации AlwaysOnline (рекомендуется) <Module auth_ao> </Module> # модуль авторизации штатного авторизатора stargazer <Module auth_ia> Port = 5555 UserDelay = 60 UserTimeout = 65 FreeMb = cash </Module> # модуль коллектора трафика NetFlow <Module conf_sg> Port = 5555 </Module> </Modules> редактируем конфиг /etc/stargazer/rules ALL 192.168.56.0/24 DIR1 ALL 0.0.0.0/0 DIR0 запускаем stargazer # stargazer Убеждаемся в том что модуль store_mysql создал все нужные таблицы в БД # mysql -u root -p stg -e "SHOW TABLES" Enter password: +---------------+ | Tables_in_stg | +---------------+ | admins | | messages | | stat | | tariffs | | users | +---------------+ Останавливаем stargazer #killall stargazer Устанавливаем текущую версию Ubilling# cd /var/www/ # mkdir billing # cd billing # wget http://ubilling.net.ua/ub.tgz # tar zxvf ub.tgz # chmod -R 777 content/ config/ multinet/ exports/ remote_nas.conf vservices.php разворачиваем дамп с нужными таблицами по умолчанию # cat docs/test_dump.sql | mysql -u root -p stg убеждаемся нормально ли развернулся дамп #mysql -u root -p stg -e "SHOW TABLES" Enter password: +---------------+ | Tables_in_stg | +---------------+ | address | | admins | | apt | | build | | cardbank | | cardbrute | | cashtype | | city | | contracts | ..много разных таблиц.. | vcash | | vservices | | weblogs | +---------------+ редактируем конфиг config/mysql.ini ;Хост БД server = "localhost" ;порт MySQL port = "3306" ;логин пользователя MySQL username = "root" ;его пароль password = "newpassword" ;имя базы db = "stg" character = "UTF8" prefix = "billing" редактируем файл config/billing.ini Прежде всего следует определиться с методом взаимодействия со stargazer. На данный момент возможен выбор одного из трех обработчиков: sgconf, sgconfxml(рекомендуется) и xmlrpc. ; метод взаимодействия со stargazer baseconf = sgconfxml ; путь к sgconf SGCONF=/usr/sbin/sgconf ; путь к sgconf_xml SGCONFXML=/usr/sbin/sgconf_xml ; хост на котором запущен stargazer STG_HOST=localhost ; порт конфигуратора STG_PORT=5555 ; порт XMLRPC XMLRPC_PORT=8081 ; логин администратора stargazer (по умолчанию admin) STG_LOGIN=admin ; пароль администратора stargazer (по умолчанию 1234567) STG_PASSWD=123456 ;Пути окружения ;путь к sudo SUDO=/usr/bin/sudo ;путь к top в пакетном режиме TOP = /usr/bin/top -b -n1 ;путь к cat CAT=/bin/cat ;путь к grep GREP=/bin/grep ;путь к RC скрипту isc-dhcpd RC_DHCPD=/etc/init.d/dhcp3-server ;путь к uptime UPTIME=/usr/bin/uptime ;путь к ping PING=/bin/ping ;путь к PHPSysInfo PHPSYSINFO=phpsysinfo/ ;язык по умолчанию LANG = ua ;размер иконок в "панели задач" TASKBAR_ICON_SIZE = 128 ; опции регистрации новых пользователей ; регистрировать новых пользователей со случайным MAC REGRANDOM_MAC=1 ; регистрировать новых пользователей с флагом "Всегда онлайн" REGALWONLINE=1 ; регистрировать новых пользователей с отключенной детальной статистикой REGDISABLEDSTAT=1 правильность путей к программам окружения можно проверить при помощи команды whereis создаем несколько нужных симлинков# ln -fs /var/www/billing/multinet /etc/dhcp3/multinet # ln -fs /var/www/billing/remote_nas.conf /etc/stargazer/remote_nas.conf # ln -fs /var/lib/bandwidthd/htdocs /var/www/band разворачиваем заготовки стартовых скриптов# cp -f docs/presets/Linux/etc/* /etc/stargazer/ # chmod a+x /etc/stargazer/* Особенностью пресетов под Linux является необходимость инициализации шейпера при помощи скрипта shaper.sh который имеет вид: #!/bin/bash IFUP=eth0 IFDOWN=eth1 IPT="/sbin/iptables" tc="/sbin/tc" SPEEDUP=100mbit SPEEDDOWN=100mbit $IPT -t mangle --flush $tc qdisc add dev $IFDOWN root handle 1: htb $tc class add dev $IFDOWN parent 1: classid 1:1 htb rate $SPEEDDOWN ceil $SPEEDDOWN $tc qdisc add dev $IFUP root handle 1: htb $tc class add dev $IFUP parent 1: classid 1:1 htb rate $SPEEDUP ceil $SPEEDUP и требует минимальной коректировки под ваши реалии в виде вписывания соответствующих скоростей и имен интерфейсов. В общем последовательность запуска должна быть следующей: iptables - правила iptables shaper.sh - инициализация шейпера stargazer - сам stargazer скрипт shaper.stop.sh служит для сброса корневых дисциплин и как следствие - для всех пользователей. редактируем конфиг /etc/stargazer/config прописывая в него текущие параметры MySQL host = localhost username = root password = newpassword database = stg редактируем файл /etc/stargazer/OnConnect Вписываем интерфейс на котором будет производиться шейпинг пользователей а также контроль доступа в виде IFACE="eth0" запускаем stargazer # stargazer и посещаем web-интерфейс который исходя из нашего примера имеет вид: http://192.168.56.2/billing/ Первоначальная настройкаВесь процес первоначальной настройки вплоть до регистрации первого пользователя В общих чертах последовательность должна быть такой:
Настройка DHCPDредактируем конфиг /etc/dhcp3/dhcpd.conf option domain-name «ourisp»; option domain-name-servers 172.30.0.1; default-lease-time 3600; max-lease-time 43200; authoritative; ddns-update-style none; log-facility local7; one-lease-per-client true; deny duplicates; subnet 172.30.0.0 netmask 255.255.248.0 { default-lease-time 3600; option domain-name "ctv"; option subnet-mask 255.255.248.0; option routers 172.30.0.1; include "/etc/dhcp3/multinet/ethernet.conf"; } Периодические задачив # crontab -e добавляем 20 0 * * 1 cd /var/www/billing/ ; /usr/bin/php /var/www/billing/vservices.php > /var/log/vservices.log Стартовый скрипт/etc/init.d/billing #!/bin/sh service mysql start service apache2 start /usr/sbin/stargazer /usr/sbin/bandwidthd /usr/sbin/softflowd -i eth0 -n 127.0.0.1:42111 назначаем ему нужные права # chmod a+x /etc/initd.d/billing останавливаем stargazer и проверяем все ли запускается как надо после чего и смотрим как все запускается вместе: # killall stargazer # /etc/init.d/billing # ps aux | grep stargazer # ps aux | grep bandwidthd # ps aux | grep softflowd Итак на данный момент мы рассмотрели с вами наиболее примитивный пример в котором сам биллинг, его БД, сенсор и коллектор netflow а также весь routing/shape пользовательского трафика проходят на одном единичном хосте. Естественно для сетей с каким либо существенным количеством абонентов и трафика это не является допустимой архитектурой. К счастью stargazer предлагает очень простой и елегантный механизм масштабирования по горизонтали, зовущийся rscriptd и позволяющий удаленно исполнять скрипты OnConnect/OnDisconnect. Более глубоко настройка NAS будет рассмотрена в другом документе с наглядными примерами и заготовками конфигов. На этом этапе написания документации хотелось бы в общих чертах рассмотреть общие принципы работы удаленных NAS на rscriptd. Основы конфигурации удаленного NAS на rscriptdвставляем в /etc/stargazer/stargazer.conf <Module remote_script> SendPeriod = 10 SubnetFile =/etc/stargazer/remote_nas.conf Password = secretpassword UserParams=Cash Tariff Port = 9999 </Module> описания NAS для различных подсетей храняться в файле remote_nas.conf в виде 172.30.0.0/24 192.168.0.3 что соотвествует тому, что команды для пользователей в подсети 172.30.0.0/24 следует отправлять rscriptd запущенном на сервере 192.168.0.3 Сборка rscriptd# wget http://stg.dp.ua/download/server/2.407-p1/stg-2.407-p1.tar.gz # tar zxvf stg-2.407-p1.tar.gz # cd stg-2.407-p1/projects/rscriptd/ # ./build # make install редактируем конфиг /etc/stargazer/rscriptd.conf LogFileName=/var/log/rscriptd.log ExecutersNum=1 ConfigDir=/etc/rscriptd Password=secretpassword Port=9999 UserTimeout=60 ScriptOnConnect=/etc/rscriptd/OnConnect ScriptOnDisconnect=/etc/rscriptd/OnDisconnect Скрипты OnConnect/OnDisconnect/GetSpeed/GetMac/GetUpSpeed вы можете использовать точно теже что и в описанном выше примере только с той разницей что параметры в OnConnect/OnDisconnect передаються в виде LOGIN=$1 IP=$2 CASH=$4 ID=$3 Тонкая настройкаНе является платформозависимой и соответствует приведенной в примере для FreeBSD Кабинет пользователянастраивается аналогично примеру для FreeBSD
оригинал: http://wiki.ubilling.net.ua ссылка на статью: http://thin.kiev.ua/index.php?option=com_content&view=article&id=460:ubuntu-server-10043-lts&catid=39:linux&Itemid=63
{jcomments on} |
Последнее обновление 09.04.12 09:30 |
