Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
| Наступна ревізія | Попередня ревізія | ||
| 
                    setupfreebsd [2022/09/24 14:39] 127.0.0.1 зовнішнє редагування  | 
                — (поточний) | ||
|---|---|---|---|
| Рядок 1: | Рядок 1: | ||
| - | ====== Общие аспекты установки Ubilling на FreeBSD 8.x ====== | ||
| - | |||
| - | |||
| - | ====== Внимание ====== | ||
| - | Данное руководство актуально для версии Ubilling 0.1.9 (сильно устарело, | ||
| - | {{: | ||
| - | |||
| - | |||
| - | |||
| - | ===== Возможные конфигурации ===== | ||
| - | |||
| - | Существует три наиболее распространенных конфигурации | ||
| - |   - СУБД (MySQL), Stargazer, Ubilling, NAS на одном физическом сервере, | ||
| - |   - СУБД, Stargazer, Ubilling, NAS - различные физические сервере, | ||
| - |   - Компромиссный с точки зрения стоимости и быстродействия вариант, | ||
| - | |||
| - | ===== Требования к установленному ПО ===== | ||
| - | * FreeBSD 6.x-8.x | ||
| - | * MySQL >=5.x | ||
| - | * libexpat | ||
| - | * Stargazer версии 2.407 или выше | ||
| - |   * Конфигураторы Stargazer - sgconf/ | ||
| - | * PHP версии >=5.x собранный с поддержкой CLI и MySQL | ||
| - | * Apache версии >=1.3 | ||
| - | * ISC-DHCPD >=3.x | ||
| - | * sudo | ||
| - | * Ядро FreeBSD собранное с IPFW и DUMMYNET (для NAS) | ||
| - | * bandwidthd (для NAS) | ||
| - | * softflowd (для NAS) | ||
| - | * thttpd (для NAS) | ||
| - | |||
| - | |||
| - | ===== Конфигурации установки для примера ===== | ||
| - | 1. СУБД (MySQL), Stargazer, Ubilling, NAS на одном физическом сервере\\ | ||
| - |   | ||
| - | 2. СУБД, Stargazer, Ubilling размещены на одном сервере а вся обработка пользовательского трафика производиться на удаленном NAS\\ | ||
| - |   | ||
| - | |||
| - | ===== Установка требуемого внешнего ПО ===== | ||
| - | В данном примере рассматривается установка всего требуемого ПО при помощи системы портов. | ||
| - | |||
| - |   # cd / | ||
| - |   # cd / | ||
| - |   # cd / | ||
| - |   # cd / | ||
| - |   # cd / | ||
| - |   # cd / | ||
| - |    | ||
| - | //php5 должен быть собран с поддержкой CLI и модулем Apache// | ||
| - |   # cd / | ||
| - | // | ||
| - |   # cd / | ||
| - | |||
| - | **редактируем / | ||
| - |   mysql_enable=" | ||
| - |   apache_enable=" | ||
| - |   dhcpd_enable=" | ||
| - |   dhcpd_flags=" | ||
| - |   dhcpd_conf="/ | ||
| - |   dhcpd_ifaces=" | ||
| - | |||
| - | **редактируем / | ||
| - | User_Alias BILLING = www | ||
| - |   BILLING  | ||
| - | |||
| - | **запускаем Apache и MySQL** | ||
| - |   # / | ||
| - | # apachectl start | ||
| - | |||
| - | **устанавливаем новый пароль пользователя root для mysql (newpassword — для примера)** | ||
| - | #mysqladmin -u root password newpassword | ||
| - | |||
| - | ===== Установка Stargazer ====== | ||
| - |   # fetch http:// | ||
| - | # tar zxvf stg-2.407-p1.tar.gz | ||
| - |   # cd stg-2.407-p1/ | ||
| - | # ./build | ||
| - | # gmake install | ||
| - | # cd ../sgconf && ./build && gmake && gmake install | ||
| - |   # cd ../ | ||
| - | |||
| - | **редактируем / | ||
| - | Также рекомендуется ознакомиться с [[http:// | ||
| - |    | ||
| - |   # путь к логфайлу  | ||
| - |   LogFile = / | ||
| - | # путь к pid | ||
| - |   PIDFile = / | ||
| - | # файл с описанием класов трафика | ||
| - |   Rules = / | ||
| - | # время записи детальной статистики в базу | ||
| - | DetailStatWritePeriod = 1/4 | ||
| - | # время сброса счетчиков трафика в базу | ||
| - | StatWritePeriod = 10 | ||
| - | # день снятия абонплаты | ||
| - | DayFee = 1 | ||
| - |   # это последний день месяца? | ||
| - | DayFeeIsLastDay = no | ||
| - | # день обнуления счетчиков трафика | ||
| - | DayResetTraff = 1 | ||
| - |   # " | ||
| - | SpreadFee = no | ||
| - |   # позволять пользователю доступ если у него остался предоплаченый трафик? | ||
| - | FreeMbAllowInet = no | ||
| - |   # писать стоимость предоплаченого трафика? | ||
| - | WriteFreeMbTraffCost = yes | ||
| - |   # снимать полную абонплату ежемесячно? | ||
| - | FullFee = yes | ||
| - |   # названия класов трафика относительно / | ||
| - |   < | ||
| - |     DirName0 = Internet  | ||
| - |     DirName1 = Internal  | ||
| - | DirName2 = | ||
| - | DirName3 = | ||
| - | DirName4 = | ||
| - | DirName5 = | ||
| - | DirName6 = | ||
| - | DirName7 = | ||
| - | DirName8 = | ||
| - | DirName9 = | ||
| - |   </ | ||
| - | ExecutersNum = 1 | ||
| - | # путь модулей | ||
| - |   ModulesPath = / | ||
| - | # модуль хранения данных | ||
| - |   < | ||
| - | # хост MySQL | ||
| - |     dbhost = localhost  | ||
| - | # имя базы | ||
| - | dbname = stg | ||
| - | # логин пользователя MySQL | ||
| - | dbuser = root | ||
| - | # пароль пользователя MySQL | ||
| - |     rootdbpass = newpassword  | ||
| - |   </ | ||
| - |   < | ||
| - | # модуль авторизации AlwaysOnline (рекомендуется) | ||
| - |   <Module auth_ao>  | ||
| - |   </ | ||
| - | # модуль авторизации штатного авторизатора stargazer | ||
| - |   <Module auth_ia>  | ||
| - | Port = 5555 | ||
| - | UserDelay = 60 | ||
| - | UserTimeout = 65 | ||
| - | FreeMb = cash | ||
| - |   </ | ||
| - | # модуль коллектора трафика NetFlow | ||
| - | <Module cap_nf> | ||
| - | TCPPort = 42111 | ||
| - | UDPPort = 42111 | ||
| - |   </ | ||
| - |   # модуль конфигуратора  | ||
| - |   <Module conf_sg>  | ||
| - | Port = 5555 | ||
| - |   </ | ||
| - |   </ | ||
| - | |||
| - | **редактируем конфиг / | ||
| - |   ALL      | ||
| - |   ALL      | ||
| - | |||
| - | **запускаем 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 / | ||
| - | # mkdir billing | ||
| - | # cd billing | ||
| - |   # fetch http:// | ||
| - | # tar zxvf ub.tgz | ||
| - | # chmod -R 777 content/ config/ multinet/ exports/ remote_nas.conf vservices.php | ||
| - | |||
| - | **разворачиваем дамп с нужными таблицами по умолчанию** | ||
| - | |||
| - |   # cat docs/ | ||
| - | |||
| - | убеждаемся нормально ли развернулся дамп | ||
| - |   #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/ | ||
| - | приводя его в соответствие с текущей ситуацией | ||
| - | ;Хост БД | ||
| - |   server = " | ||
| - | ;порт MySQL | ||
| - |   port = " | ||
| - | ;логин пользователя MySQL | ||
| - |   username = " | ||
| - | ;его пароль | ||
| - |   password = " | ||
| - | ;имя базы | ||
| - |   db = " | ||
| - |   character = " | ||
| - |   prefix = " | ||
| - | |||
| - | **редактируем файл config/ | ||
| - | Прежде всего следует определиться с методом взаимодействия со stargazer. На данный момент возможен выбор одного из трех обработчиков: | ||
| - | |||
| - | ; метод взаимодействия со stargazer | ||
| - |   baseconf = sgconfxml  | ||
| - |   ; путь к sgconf  | ||
| - |   SGCONF=/ | ||
| - | ; путь к sgconf_xml | ||
| - |   SGCONFXML=/ | ||
| - | ; хост на котором запущен stargazer | ||
| - |   STG_HOST=localhost  | ||
| - | ; порт конфигуратора | ||
| - |   STG_PORT=5555  | ||
| - | ; порт XMLRPC | ||
| - |   XMLRPC_PORT=8081  | ||
| - | ; логин администратора stargazer (по умолчанию admin) | ||
| - |   STG_LOGIN=admin  | ||
| - | ; пароль администратора stargazer (по умолчанию 123456) | ||
| - |   STG_PASSWD=123456  | ||
| - | ;Пути окружения | ||
| - | ;путь к sudo | ||
| - |   SUDO=/ | ||
| - | ;путь к top в пакетном режиме | ||
| - |   TOP = / | ||
| - | ;путь к cat | ||
| - |   CAT=/ | ||
| - | ;путь к grep | ||
| - |   GREP=/ | ||
| - | ;путь к RC скрипту isc-dhcpd | ||
| - |   RC_DHCPD=/ | ||
| - | ;путь к uptime | ||
| - |   UPTIME=/ | ||
| - | ;путь к ping | ||
| - |   PING=/ | ||
| - | ; путь к kill | ||
| - |   KILL=/ | ||
| - | ; путь к PID файлу stargazer | ||
| - |   STGPID=/ | ||
| - | ; указывает на потребность посылки SIGHUP к stargazer при добавлении NAS-а. | ||
| - | STGNASHUP=0 | ||
| - | ;путь к PHPSysInfo | ||
| - |   PHPSYSINFO=phpsysinfo/  | ||
| - | ;язык по умолчанию | ||
| - | LANG = ua | ||
| - |   ; | ||
| - | TASKBAR_ICON_SIZE = 128 | ||
| - | ; опции регистрации новых пользователей | ||
| - | ; регистрировать новых пользователей со случайным MAC | ||
| - |   REGRANDOM_MAC=1  | ||
| - |   ; регистрировать новых пользователей с флагом " | ||
| - |   REGALWONLINE=1  | ||
| - | ; регистрировать новых пользователей с отключенной детальной статистикой | ||
| - | REGDISABLEDSTAT=1 | ||
| - | |||
| - | |||
| - |    | ||
| - | // | ||
| - | |||
| - | |||
| - |    | ||
| - | |||
| - | |||
| - | **разворачиваем заготовки стартовых скриптов** | ||
| - |   # cp -f docs/ | ||
| - |   # chmod a+x / | ||
| - | |||
| - | **редактируем конфиг / | ||
| - | прописывая в него текущие параметры MySQL | ||
| - | |||
| - |   host = localhost  | ||
| - | username = root | ||
| - |   password = newpassword  | ||
| - | database = stg | ||
| - | |||
| - | **редактируем файл / | ||
| - | Вписываем интерфейс на котором будет производиться шейпинг пользователей а также контроль доступа в виде | ||
| - | |||
| - |   IFACE=" | ||
| - | |||
| - | **создаем несколько нужных симлинков** | ||
| - |   # chmod -R 777 / | ||
| - |   # ln -fs / | ||
| - |   # ln -fs / | ||
| - |   # ln -fs / | ||
| - |   # ln -fs / | ||
| - | |||
| - | **редактируем конфиг / | ||
| - | |||
| - | прописывая в него подсеть пользователей, | ||
| - | |||
| - |   subnet 172.30.0.0/ | ||
| - |   dev " | ||
| - | output_cdf true | ||
| - | recover_cdf true | ||
| - | |||
| - | **запускаем stargazer** | ||
| - | |||
| - | # stargazer | ||
| - | |||
| - | и посещаем web-интерфейс который исходя из нашего примера имеет вид: [[http:// | ||
| - | |||
| - | // | ||
| - | |||
| - | Если мы увидели нечто подобное рисунку приведенному ниже значит установка идет по плану ;) \\ | ||
| - | {{: | ||
| - | \\ | ||
| - | |||
| - | |||
| - | ===== Возможные проблемы ===== | ||
| - | Возможно в верхней части страницы будет отображаться ошибка\\ | ||
| - | //Warning: date() [function.date]: | ||
| - | исправляется эта неожиданность довольно просто - вписыванием вашей текущей временной зоны, например date.timezone=" | ||
| - | #apachectl restart | ||
| - | |||
| - | Если при попытке нажать на иконку практически любого из модулей мы видим ошибку //wrong data input// возможно в PHP включен magic_quotes.\\ | ||
| - | |||
| - | Вставляем в файл **/ | ||
| - | |||
| - | magic_quotes_gpc = Off | ||
| - | magic_quotes_runtime = Off | ||
| - | magic_quotes_sybase = Off | ||
| - | |||
| - | Перезапускаем Apache | ||
| - | # apachectl restart | ||
| - | |||
| - | ===== Первоначальная настройка ===== | ||
| - | Весь процес первоначальной настройки вплоть до регистрации первого пользователя запечатлен в виде [[http:// | ||
| - | |||
| - | В общих чертах последовательность минимальной настройки приемлемой для того чтобы начинать регистрировать пользователей, | ||
| - |   - добавляем нового админа, | ||
| - | - добавляем классы трафика в соответствии с описанными ранее для stargazer | ||
| - | - добавляем нужные сети | ||
| - | - вешаем на эти сети услуги | ||
| - | - добавляем нужные нам тарифы | ||
| - | - назначаем им скоростя | ||
| - | - добавляем сервера доступа | ||
| - | - настраиваем соответствующим образом dhcp | ||
| - | - добавляем населенные пункты | ||
| - | - добавляем в города улицы и дома куда будем селить абонентов | ||
| - |   - также желательно заполнить справочник " | ||
| - | |||
| - | ===== Настройка DHCPD ===== | ||
| - | Начиная с версии 0.0.8 глобальный конфиг dhcpd.conf, файлы с хостами и описания подсетей генерируються автоматически исходя из настроек заполненных в модулях " | ||
| - | |||
| - | Шаблонизация глобального конфига и описаний подсетей при надобности производиться в файлах **config/ | ||
| - | ===== Периодические задачи ===== | ||
| - | **в # crontab -e добавляем** | ||
| - |   20 0 * * 1  cd / | ||
| - | |||
| - | ===== Стартовый скрипт ===== | ||
| - | |||
| - | **/ | ||
| - | |||
| - | #!/bin/sh | ||
| - |   / | ||
| - |   / | ||
| - |   / | ||
| - | |||
| - | **назначаем ему нужные права** | ||
| - |   # chmod a+x / | ||
| - | |||
| - | **останавливаем stargazer и проверяем все ли запускается как надо** | ||
| - | после чего смотрим как все запускается вместе: | ||
| - | |||
| - | # killall stargazer | ||
| - |   # / | ||
| - | # ps aux | grep stargazer | ||
| - | # ps aux | grep bandwidthd | ||
| - | # ps aux | grep softflowd | ||
| - | |||
| - | Итак на данный момент мы рассмотрели с вами наиболее примитивный пример в котором сам биллинг, | ||
| - | |||
| - | |||
| - | Более глубоко настройка NAS будет рассмотрена  | ||
| - | |||
| - | ===== Основы конфигурации удаленного NAS на rscriptd ===== | ||
| - | ** вставляем в / | ||
| - | |||
| - |   <Module remote_script>  | ||
| - | SendPeriod = 10 | ||
| - | 	SubnetFile =/ | ||
| - | Password = secretpassword | ||
| - | UserParams=Cash Tariff | ||
| - | Port = 9999 | ||
| - |   </ | ||
| - | |||
| - | описания NAS для различных подсетей храняться в файле remote_nas.conf в виде\\ | ||
| - | |||
| - |   172.30.0.0/ | ||
| - | |||
| - | что соотвествует тому, что команды для пользователей в подсети 172.30.0.0/ | ||
| - | |||
| - | ===== Сборка rscriptd ===== | ||
| - | |||
| - |   # fetch http:// | ||
| - | # tar zxvf stg-2.407-p1.tar.gz | ||
| - |   # cd stg-2.407-p1/ | ||
| - | # ./build | ||
| - | # gmake install | ||
| - | |||
| - | **редактируем конфиг / | ||
| - | |||
| - |   LogFileName=/ | ||
| - |   ExecutersNum=1  | ||
| - |   ConfigDir=/ | ||
| - | Password=secretpassword | ||
| - |   Port=9999  | ||
| - |   UserTimeout=60  | ||
| - |   ScriptOnConnect=/ | ||
| - |   ScriptOnDisconnect=/ | ||
| - | |||
| - | Скрипты OnConnect/ | ||
| - | |||
| - |   LOGIN=$1  | ||
| - | IP=$2 | ||
| - |   CASH=$4  | ||
| - | ID=$3 | ||
| - | |||
| - | ===== Тонкая настройка ===== | ||
| - | **в файле config/ | ||
| - | |||
| - |    | ||
| - | |||
| - | ===== Кабинет пользователя ===== | ||
| - | - находиться в каталоге userstats | ||
| - |   - следует прописать параметры БД в config/ | ||
| - |   - параметры самой статистики в config/ | ||
| - | - Более подробное описание опций можно увидеть [[userstats|здесь]] | ||
| - | |||