]> git.stg.codes - stg.git/blob - doc/help/ch4.xml
Merge branch 'master' into full-month-stats
[stg.git] / doc / help / ch4.xml
1 <chapter xml:id="ch4">
2         <title>Настройка системы</title>
3         <para>После инсталляции система должна быть подвергнута процедуре настройки. Обычно следует начинать с настройки сервера.</para>
4         <para>Основные конфигурационные  файлы  сервера по умолчанию находятся в каталоге /etc/stargazer. Они включают в себя: основной конфигурационный файл stargazer.conf, файл описания направлений тарификации rules, набор скриптов On* и два каталога — conf-available.d и conf-enabled.d, содержащих конфигурационные файлы отдельных модулей. Для включения какого-либо модуля нужно сделать символическую ссылку на его конфигурационный файл в каталоге conf-enabled.d или прописать его конфигурационную секцию в разделе &lt;Modules&gt; файла stargazer.conf.</para>
5         <simplesect>
6                 <title>Настройка конфигурационного файла /etc/stargazer/stargazer.conf </title>
7                 <para>Файл имеет текстовый формат, содержащий пары ПАРАМЕТР = ЗНАЧЕНИЕ и секции &lt;ИМЯ_СЕКЦИИ ПАРАМЕТРЫ_СЕКЦИИ&gt;. Комментарии в файле начинаются с символа #. В файле описываются общие параметры, которые являются глобальными значениями для всего сервера биллинга, а также параметры соответствующих модулей. Параметры модулей должны быть заключены в секции:</para>
8 <programlisting linenumbering="unnumbered">
9 &lt;Module имя_модуля&gt;
10 список параметров модуля
11 &lt;/Module&gt;
12 </programlisting>
13                 <para>Имя модуля представляет собой имя файла этого модуля без префикса mod_ и суффикса .so. Например, секция конфигурации модуля remote_script (имя файла: mod_remote_script.so) может выглядеть так:</para>
14 <programlisting linenumbering="unnumbered">
15 &lt;Module remote_script&gt;                                                          
16 SendPeriod = 15                                                             
17 SubnetFile = subnets                                                        
18 Password = 123456                                                           
19 UserParams = Cash Tariff EnabledDirs                                        
20 Port = 9999                                                                 
21 &lt;/Module&gt;
22 </programlisting>
23                 <para>Описание глобальных параметров параметров:</para>
24                 <itemizedlist mark="opencircle">
25                         <listitem><para>Rules – обязательный параметр, указывающий серверу, где находится файл с правилами для подсчета трафика клиентов. Стандартное значение: /etc/stargazer/rules.</para></listitem>
26                         <listitem><para>LogFile – обязательный параметр, указывающий серверу расположение файла, в который будут заноситься все сообщения системы. Стандартное значение: /var/log/stargazer.log.</para></listitem>
27                         <listitem><para>PidFile — не обязательный параметр, указывающий серверу где находится файл хранящий PID (идентификатор процесса) дэмона. По умолчанию это /var/run/stargazer.pid. Используется скриптами запуска/останова.</para></listitem>
28                         <listitem><para>ModulesPath – обязательный параметр, указывающий серверу путь, где находятся подключаемые модули (плагины). Стандартное значение: /usr/lib/stg.</para></listitem>
29                         <listitem><para>DetailStatWritePeriod – обязательный параметр, указывающий серверу через какое время должна записываться детальная статистика клиента. Стандартное значение: 1/6. Данный параметр может принимать следующие значения: 3 - раз в три часа, 2 - раз в два часа, 1 - раз в чаc, 1/2 - раз в пол часа, 1/4 - раз в 15 минут, 1/6 - раз в 10 минут.</para></listitem>
30                         <listitem><para>StatWritePeriod – не обязательный параметр, указывающий серверу периодичность записи в БД информации о статистике пользователя в минутах. При большом количестве пользователей эту величину стоит увеличить, так как запись в БД может занимать длительное время. По умолчанию имеет значение 10.</para></listitem>
31                         <listitem><para>DayFee – обязательный параметр, указывающий серверу, в какой день месяца снимать с клиентских счетов сумму абонплаты, в соответствии с тарифными планами клиентов. Может принимать значения от 0 до 31, стандартное значение: 1. Следует помнить, что в некоторых месяцах не более 28 дней. Значение 0 соответствует последнему дню месяца по календарю.</para></listitem>
32                         <listitem><para>DayResetTraff – обязательный параметр, указывающий серверу в какой день месяца сбрасывать помесячную статистику клиентов и осуществлять переход на новый тариф, если он был изменен у клиента. Может принимать значения от 0 до 31, стандартное значение: 1. Следует помнить, что в некоторых месяцах не более 28 дней. Значение 0 соответствует последнему дню месяца по календарю.</para></listitem>
33                         <listitem><para>SpreadFee – обязательный параметр, указывающий серверу производить ли «размазанное» снятие абонплаты. Может принимать значения yes и no. При указании значения yes сумма абонплаты указанная в тарифе пользователя будет сниматься не раз в месяц, а каждый день равными долями. Стандартное значение: no.</para></listitem>
34                         <listitem><para>FreeMbAllowInet – обязательный параметр, указывающий серверу выполнять ли для пользователя скрипт OnConnect, если у него на балансе отсутствуют средства, но остался предоплаченный трафик. Может принимать значения yes и no. Стандартное значение: no.</para></listitem>
35                         <listitem><para>WriteFreeMbTraffCost – обязательный параметр, определяющий как  будет писаться стоимость трафика в детальной статистике. Может принимать значения yes и no, стандартное значение: no. При указании значения yes в детальной статистике пользователя стоимость трафика будет писаться в любом случае, даже если он попадает в FreeMb. При указании значения no доя исчерпания FreeMb в детальной статистике будет указана нулевая стоимость трафика.</para></listitem>
36                         <listitem><para>DayFeeIsLastDay – обязательный параметр, указывающий серверу когда снимать абонплату. Может принимать значения yes и no, стандартное значение: yes. Это влияет на то, как будет снята абонплата (АП) при переходе на новый тариф. Если у пользователя был тариф A с АП=100 и он хочет перейти на тариф B с АП=200, то при переходе на новый тариф со счета пользователя снимется 100, если указано значение yes (абонплата снята до смены тарифа), и 200, если указано значение no (абонплата снята перед сменой тарифа).</para></listitem>
37                         <listitem><para>ExecutersNum – не обязательный параметр который определяющий сколько скриптом может выполняться одновременно (регулирует количество процессов stg-exec). По умолчанию имеет значение 1. Если выполнение ваших скриптов занимает много времени имеет смысл увеличить это значение. Каждый исполнитель скриптов блокируется на время, пока отработает скрипт. Если исполнителей несколько — они принимают скрипты на выполнение по принципу «кто успел».</para></listitem>
38                         <listitem><para>StgMsgKey – не обязательный параметр отвечающий за идентификатор очереди сообщений для исполнителя скриптов. По умолчанию данный параметр имеет значение 5555. Рекомендуется не изменять значение параметра без нужды. Его изменение целесообразно лишь в том случае, если в системе требуется запустить более одной копии сервера биллинга.</para></listitem>
39                         <listitem><para>ShowFeeInCash – не обязательный параметр, определяющий как будет показано состояние счета абонента в авторизаторе и сколько денег ему будет разрешено использовать в текущем месяце. Может принимать значения yes и no, по умолчанию имеет значение yes. При указании no в авторизаторе будет показано состояние счета  без учета следующего снятия абонплаты. Так же эти деньги нельзя будет использовать для оплаты трафика в текущем месяце. Пример: у абонента на счету 200 денег при абонплате в 50 денег — в этом случае ему будет показано 150 денег в авторизаторе и он сможет в текущем месяце израсходовать только 150 денег, но снятие абонплаты не уведет его в «минус».</para></listitem>
40                         <listitem><para>FullFee – не обязательный параметр, указывающий серверу снимать полную абонплату, даже если учетная запись абонента была заморожена (или не существовала) часть учетного периода. Принимает значения yes и no, по умолчанию установлен в no.</para></listitem>
41                         <listitem><para>MessagesTimeout — не обязательный параметр, устанавливающий время жизни не отправленных сообщений абонентам. Время указывается в сутках. При превышении этого времени сообщение будет удалено, в т. ч. из БД. Если указано значение 0 то не отправленные сообщения никогда не будут удаляться из базы (в частности, это приведет к постепенному росту размера базы, увеличению нагрузки на сервер при авторизации абонентов и к тому что долго отсутствовавший абонент при авторизации получит все пропущенные сообщения). По умолчанию имеет значение 0.</para></listitem>
42                         <listitem><para>FeeChargeType — не обязательный параметр, регулирующий процесс снятия абонплаты. Может принимать значения 0, 1 и 2, по умолчанию имеет значение 0. При значении 0 абонплата снимается как обычно, при значении 1 абонплата снимается только если баланс пользователя положительный или равен нулю, при значении 2 абонплата снимается только если баланс пользователя больше или равен абонплате. Значение 2 следует использовать с осторожностью, т. к. при этом на безлимитных тарифах абоненты получат услугу бесплатно.</para></listitem>
43                         <listitem><para>ReconnectOnTariffChange — не обязательный параметр, указывающий серверу выполнить переподключение пользователя при смене тарифа. Может принимать значения yes и no, по умолчанию имеет значение no. При указании значения yes подключенные пользователи будут отключены непосредственно перед сменой тарифа и подключены сразу после нее. Может быть полезно для управления шейпером.</para></listitem>
44                         <listitem><para>Для именования направлений учета трафика в конфигурационном файле используется секция DirNames:</para></listitem>
45 <programlisting linenumbering="unnumbered">
46 &lt;DirNames&gt;
47 DirName0 = «ИМЯ НАПРАВЛЕНИЯ»
48 ...
49 DirName9 = ПОСЛЕДНЕЕ_НАПРАВЛЕНИЕ
50 &lt;/DirNames&gt;                       
51 </programlisting>                       
52                 <para>Всего предусмотрено 10 направлений с нумерацией от 0 до 9. Направления, наименование которых состоит из нескольких слов, должны быть заключены в кавычки. Если наименование направления не указано, то система считает что данное направление не используется и не будет производить по нему никаких действий. Пример: DirName0 = Мир, DirName5 = "Локальные игры". Необходимо заметить, что текущая версия системы требует, чтобы имена направлений были указаны в кодировке KOI8-R. В противном случае абоненты не смогут их прочитать в статистике авторизатора, а администраторы — в конфигураторе.</para> 
53                 <para>Настройки всех модули (кроме store module), которые необходимо подключить к серверу в момент старта должны быть указанны внутри секции Modules:</para>
54 <programlisting linenumbering="unnumbered">
55 &lt;Modules&gt;
56 &lt;Module имя_модуля&gt;
57 список параметров модуля
58 &lt;/Modules&gt;
59
60 &lt;Module имя_модуля&gt;
61 список параметров модуля
62 &lt;/Module&gt;
63 &lt;/Modules&gt;                
64 </programlisting>       
65                 <para>Если модуль не имеет настраиваемых параметров, то он все равно должен быть указан. Некоторые модули, такие как store module, обязательно требуются при старте и без их подключения система не может быть запущена. По умолчанию для указания конфигурации модулей используются отдельные файлы из каталога conf-enabled.d. Для этого используется директива &lt;IncludeFile ПУТЬ_К_ФАЙЛУ&gt;&lt;/IncludeFile&gt;. Одна директива указана в секции Modules, а вторая в корне файла конфигурации (для store module).</para>
66                 <sect2>
67                 <title>Описание параметров модуля InetAccess (auth_ia) для работы с авторизаторами абонентов:</title>
68                 <itemizedlist mark="opencircle">
69                         <listitem><para>Port – обязательный параметр, определяющий на каком порту сервер будет принимать обращения авторизаторов абонентов. Стандартное значение: 5555.</para></listitem>
70                         <listitem><para>UserTimeout – обязательный параметр, указывающий серверу, через какое время в секундах абонент будет отключен если авторизатор не отвечает серверу на запросы. Может принимать значения от 15 до 1200, стандартное значение: 65.</para></listitem>
71                         <listitem><para>UserDelay – обязательный параметр, указывающий серверу время в секундах, через которое происходит опрос авторизатора абонента. Сервер шлет абоненту запрос подтверждения работы авторизатора, а авторизатор абонента должен прислать ответ что он находится в рабочем состоянии. Так же это время, через которое в авторизаторе обновляется статистика. Может принимать значения от 5 до 600, стандартное значение: 60. Следует заметить что значение UserDelay должно быть меньше чем значение UserTimeout.</para></listitem>
72                         <listitem>
73                                 <para>FreeMb – обязательный параметр, определяющий в каком виде абоненту будет показано значение FreeMb. Данный параметр может принимать следующие значения:</para>
74                                 <itemizedlist mark="none">
75                                         <listitem><para>0 - количество бесплатных мегабайт в пересчете на цену нулевого направления;</para></listitem>
76                                         <listitem><para>1 - количество бесплатных мегабайт в пересчете на цену первого направления;</para></listitem>
77                                         <listitem><para>2 - количество бесплатных мегабайт в пересчете на цену второго направления;</para></listitem>
78                                         <listitem><para>...</para></listitem>
79                                         <listitem><para>9 - количество бесплатных мегабайт в пересчете на цену девятого направления;</para></listitem>
80                                         <listitem><para>cash - количество денег на которые клиент может бесплатно работать;</para></listitem>
81                                         <listitem><para>none - ничего не передавать.</para></listitem>
82                                 </itemizedlist>
83                         </listitem>
84                 </itemizedlist>
85                 <para>Обмен данными авторизатора с сервером осуществляется по протоколу UDP. Можно указать несколько модулей авторизатора auth_ia для авторизации с разных портов.</para>
86                 </sect2>
87                 <sect2>
88                 <title>Модуль авторизации auth_ao.</title>
89                 <para>Модуль параметров не имеет. Используется для поддержки режима Always Online у абонентов. Без включения этого модуля установка параметра alwaysOnline для абонента эффекта иметь не будет. В режиме Always Online абонент находится в авторизованном состоянии все время, независимо от использования авторизатора. Тем не менее он может быть отключен по причине отсутствия средств на счету, заблокирован администратором или «заморожен». В этом режиме так же возможно использование авторизатора за одним исключением — абонент не может сам вызвать «отключение».</para>
90                 </sect2>
91                 <sect2>
92                 <title>Описание параметров модуля SGConfig (conf_sg) для работы с конфигуратором:</title>
93                 <itemizedlist mark="opencircle">
94                         <listitem><para>Port – обязательный параметр, определяющий, на каком порту сервер будет принимать обращения конфигураторов. Стандартное значение: 5555.</para></listitem>
95                 </itemizedlist>
96                 <para>Обмен конфигуратора с сервером осуществляется по протоколу TCP. Можно указать несколько модулей конфигуратора с указанием разных портов.</para>
97                 </sect2>
98                 <sect2>
99                 <title>Описание параметров модуля файловой БД:</title>
100                 <itemizedlist mark="opencircle">
101                         <listitem><para>WorkDir – обязательный параметр, указывающий серверу где находится рабочая директория с файлами БД. Стандартное значение: /var/stargazer.</para></listitem>
102                         <listitem><para>ConfOwner, ConfGroup, ConfMode – обязательные параметры, описывающие владельца, группу и права доступа на файлы конфигурации (conf) абонента соответственно. ConfOwner должен содержать корректное имя пользователя системы (см. файл /etc/passwd), стандартное значение: root. ConfGroup должен содержать корректное название группы в системе (см. файл /etc/group), стандарное значение: root. ConfMode должен содержать корректные права на файл (только ugo-биты), стандартное значение: 640.</para></listitem>
103                         <listitem><para>StatOwner, StatGroup, StatMode – обязательные параметры, описывающие владельца, группу и права доступа на файлы статистики (stat) абонента соответственно. StatOwner должен содержать корректное имя пользователя системы (см. файл /etc/passwd), стандартное значение: root. StatGroup должен содержать корректное название группы в системе (см. файл /etc/group), стандарное значение: root. StatMode должен содержать корректные права на файл (только ugo-биты), стандартное значение: 640.</para></listitem>
104                         <listitem><para>UserLogOwner, UserLogGroup, UserLogMode – обязательные параметры, описывающие владельца, группу и права доступа на файлы журналов (log) абонента соответственно. UserLogOwner должен содержать корректное имя пользователя системы (см. файл /etc/passwd), стандартное значение: root. UserLogGroup должен содержать корректное название группы в системе (см. файл /etc/group), стандарное значение: root. UserLogMode должен содержать корректные права на файл (только ugo-биты), стандартное значение: 640.</para></listitem>
105                 </itemizedlist>
106                         <para>При создании каталогов (например для записи детальной статистики) используются те-же права, но с добавлением x-бита для всех ненулевых полей. Например: для 640 будут права 750, а для 644 будут 755. Для записи детальной статистики используются параметры StatOwner, StatGroup и StatMode. Для записи сообщений используются параметры ConfOwner, ConfGroup и ConfMode.</para>
107                 </sect2>
108         </chapter>
109         <para></para>