Перейти до

Рекомендованные сообщения

Опубликовано:

Предлагаю добавлять в этот топик ответы на часто задаваемые вопросы.

Основные правила:

1. Тут не цитируют и не отвечают.

2. Если не уверены в своём вопросе\ответе - отправьте по ЛС модераторам\администратору

3. _ВСЕ_ критики и коменты _ТОЛЬКО_ в ЛС

Опубліковано:

В: При коннекте конфигуратора вылазит сообщение "Recv header ansver error"

О: Нужно добавить в stargazer.conf в строку AdminAllowFrom ip адрес компьютера или подсети с которой осуществляется попытка подключения.

Опубліковано:

В: При коннекте конфигуратора вылазит сообщение "Incorrect header"

О: Необходимо проверить версию, конфигуратора и сервера на совместимость.

Опубліковано:

В: После установки старгейзера и редакирования правил rules в винде и перезапись поверх существующих -- старгейзер не запускается

О: Надо отредактировать файл rules убрать ^M одним знаком в конце каждой строчки, на этот символ ругается только файл рулес. Также стоит сохранять в винде правилу используя \n\r

Или воспользоватся обычным скриптом

DOS to UNIX

 

Run the following :

 

# perl -pi.bak -e 's/\r\n/\n/g' [file]

 

It will copy [file] to [file].bak, and edit the original

Опубліковано:

В: После начала работы у пользователей не считается трафик !!!

О: Проверьте интерфейс в настройках пользователей, там должен стоять именно тот интерфейс, на который они идут

Опубліковано:

В: Как правильно зафильтровать ICMP через FreeBSD ipfw

 

О: Расшифровка кодов ICMP сообщений:

 

0 echo reply

3 destination unreachable

4 source quench

5 redirect

8 echo request

9 router adver-tisement

10 router solicitation

11 time-to-live exceeded

12 IP header bad

13 timestamp request

14 timestamp reply

15 information request

16 information reply

17 address mask request

18 address mask reply

 

${fwcmd} add 300 allow icmp from any to внешний_IP in via внешний_интерфейс icmptype 0,3,4,11,12
${fwcmd} add 301 allow icmp from внешний_IP to any out via внешний_интерфейс icmptype 3,8,12
${fwcmd} add 304 allow icmp from внешний_IP to any out via внешний_интерфейс frag
${fwcmd} add 305 deny log icmp from any to any in via внешний_интерфейс

Опубліковано:

В: как сделать чтобы трафик считался без запуска авторизатора у пользователя?

О: поставить этому пользователю галку "Всегда OnLine".

Опубліковано:

В: Как из отмаскараднутой сети пользоваться авторизатором?

О: Авторизатор работает по протоколу UDP. Согласно RFC-768 в нем отсутствуют номера сессий, поэтому роутер не может "знать", кому отдавать датаграммы после получения ответа от старгейзера. Для таких сетей необходимо пользоваться авторизатором через веб-интерфейс.

 

by FuriKuri

Опубліковано:

В: Как запустить или остановить, а также рестартануть СТГ сервер?

О: Пример скрипта stgctl который понимает такие команды как start stop restart

#!/bin/sh

case "$1" in
   start)
/sbin/stargazer
echo "Starting Billing Server..."
sleep 1
;;
   stop)
pid=$(ps -ax|grep stargazer|grep -v grep | awk '{print $1}')
kill ${pid} > /dev/null 2>&1
echo "Stop Billing Server..."
sleep 1
;;
   restart)
pid=$(ps -ax|grep stargazer|grep -v grep | awk '{print $1}')
kill ${pid} > /dev/null 2>&1
echo "Stop Billing Server..."
sleep 2
/sbin/stargazer
echo "Starting Billing Server..."
sleep 1
  ;;
   *)
echo "Используй: `basename $0` { start | stop | restart }"
exit 64
;;
esac

  • 3 weeks later...
Опубліковано:

В: Как настроить скрипт OnConnect на FreeBSD для ipfw

О: Пример скрипта OnConnect

 

#Этот скрипт вызывается в момент, когда пользователь
#успешно прошел авторизацию на сервере. Задач скрипта - перестроить
#файрвол так, что бы пользователь получил доступ в интернет.
#В поле Примечание у абонента я устанавливаю скорость по типу 64Kbit/s

LOGIN=$1
IP=$2
CASH=$3
ID=$4
SPEED=`cat /var/stargazer/users/$LOGIN/conf | grep 'Note=' | cut -d "=" -f2`
fwcmd="/sbin/ipfw -q"
cur_date=`date \+\%Y.\%m.\%d`
cur_time=`date \+\%H:\%M:\%S`

${fwcmd} pipe `expr $ID + 101` config bw $SPEED
${fwcmd} add `expr $ID + 501` pipe `expr $ID + 101` tcp from any to $IP via rl1
${fwcmd} add `expr $ID '*' 10 + 10001` allow icmp from $IP to any out via rl1 icmptype 0,3,4,11,12
${fwcmd} add `expr $ID '*' 10 + 10002` allow ip from $IP to any
${fwcmd} add `expr $ID '*' 10 + 10003` allow ip from any to $IP


echo "C `date +%Y.%m.%d-%H.%M.%S`       $ID     $IP     $CASH" >> /var/stargazer/users/$LOGIN/connect.log
echo "C `date +%Y.%m.%d-%H.%M.%S`       $ID     $LOGIN  $IP     $CASH" >> /var/stargazer/users/allconnect.log
echo "<=;$cur_date;$cur_time;$ID;$LOGIN;$IP;$CASH" >> /home/stat/logs/connect.log

Опубліковано:

В: Как настроить скрипт OnDisconnect на FreeBSD для ipfw

О: Пример скрипта OnDisconnect

LOGIN=$1
IP=$2
CASH=$3
ID=$4

fwcmd="/sbin/ipfw"
cur_date=`date \+\%Y.\%m.\%d`
cur_time=`date \+\%H:\%M:\%S`


${fwcmd} delete `expr $ID + 501`
${fwcmd} delete `expr $ID '*' 10 + 10001`
${fwcmd} delete `expr $ID '*' 10 + 10002`
${fwcmd} delete `expr $ID '*' 10 + 10003`

echo "D `date +%Y.%m.%d-%H.%M.%S`       $ID     $IP     $CASH" >> /var/stargazer/users/$LOGIN/connect.log
echo "D `date +%Y.%m.%d-%H.%M.%S`       $ID     $LOGIN  $IP     $CASH" >> /var/stargazer/users/allconnect.log
echo "=>;$cur_date;$cur_time;$ID;$LOGIN;$IP;$CASH" >> /home/stat/logs/connect.log

  • 2 months later...
Опубліковано: (відредаговано)

В: Как собрать статистику за любой учётный период по трафику, и вывод получить в консоли?

О: Воспользоваться нижеприведённым скриптом, если есть пожелания для доработки, приму и внесу! Может использоваться пока автор не сделает это шататным средством.

Обновлено, теперь есть общая сумма по траффику и сумме в валюте, несколько опций, улучшен вывод.

#!/usr/bin/perl
$version="0.96";
$dialog="y";#Запуск или не запуск диалога
#Дефолтный путь к БД
$path_default="/var/stargazer/users";
#Дефолтный отчётный период
$date_default="2005.11";
#Размер 1 киллобайта в байт
$kb="1000";
#Размер 1 мегабайта в кбайт
$mb="1000";
$mod_def="y";#Модификатор месяца, используется для получения статистки либо за текущий месяц, либо за указнный месяц.
            #По дефолту если дату не вводить, а отавить пустой, то отчёт будет 
            #статистике за текущий месяц! Положительное
            #значение должно быть y
$mod_t_def="D";#Модификатор отображения статистки по тарфику, D - download; U - upload
$mod_f_def="n";#Нужен ли вывод в файл
$file_def="./report.txt";#Имя и путь файла вывода
$cent=3;#Стоимость 1 мб переданной информации
$lite_def="n";#Облегчённый вывод, удобен при экспорте в эксель
$tpl="| ";#Шаблон формата вывода(любые значения)
$split=":";#Шаблон разделителя полей вывода(любое значение)
################################################################################################################
if($dialog eq "y")
   {&dialog;}
else {&no_dialog;}
sub no_dialog{
$path=$path_default;
$mod_d=$mod_def;
$mod_t=$mod_t_def;
$mod_f=$mod_f_def;
$date=$date_default;
$file=$file_def;
$lite=$lite_def;
&main;
}
sub dialog{
   system "clear";
   print "Программа выгрузки статистики из биллинга STARGAZER-2 по абонентам v.$version\nГород Челябинск ЗАО 'V-LAN'\n";
   print "Вводные данные:";
   print "Размер 1КБ=$kb байт; ";
   print "Размер 1МБ=$mb киллобайт\n";
   print "Введите буть к БД Старгейзера-2[$path_default]:";
   $path=<STDIN>;chomp $path;
   if($path eq "")
       {$path=$path_default;}
   print "Нужен ли отчёт за текущий месяц(y/n)[$mod_def]:";
   $mod_d=<STDIN>;chomp $mod_d;
   if($mod_def eq "n")
       {if($mod_d eq "" or $mod_d eq "n")
           {$mod_d=1;print "Отчётный период[$date_default]:";$date=<STDIN>;chomp $date;}
       else
           {$mod_d=2;}}
   else
       {if($mod_d eq "" or $mod_d eq "y")
           {$mod_d=3;}
       else
           {$mod_d=4;print "Отчётный период[$date_default]:";$date=<STDIN>;chomp $date;}}
   print "Отчёт за входящий или исходящий трафик(D/U)[$mod_t_def]:";
   $mod_t=<STDIN>;chomp $mod_t;
   if($mod_t eq "")
      {$mod_t=$mod_t_def;}
   print "Нужен ли вывод в файл?(y/n)[$mod_f_def]:";
   $mod_f=<STDIN>;chomp $mod_f;
   if($mod_f eq "")
      {$mod_f=$mod_f_def;}
   if($mod_f eq "y"){
       print "Путь и имя файла вывода($file_def)[$file_def]:";
       $file=<STDIN>;chomp $file;
       if($file eq "")
           {$file=$file_def;}
   }
   print "Нужен ли облегчённый вывод?(y/n)[$lite_def]:";
   $lite=<STDIN>;chomp $lite;
   if($lite eq "")
       {$lite=$lite_def;}
   &main;
}
sub main{
   system "ls $path >>./tmp1";
   open (TMP,"./tmp1");
   @uname=<TMP>;close TMP;
   unlink "./tmp1";
   $user=@uname;
   if($mod_d eq "1" or $mod_d eq "4")
       {if($date eq ""){$date=$date_default;}
       $date=join(".","",$date);}
   else
       {$date="";$date_print="Текущий месяц";}
   for($i=0;$i<$user;++$i){
       $dir="$path/@uname[$i]";
       chomp @uname[$i];$uname=@uname[$i];
       chomp $dir;system "echo $uname>>./tmp2";
       system "cat $dir/stat$date|grep $mod_t >>./tmp2";
       system "tr '=' '\n'< ./tmp2 > ./tmp3";}
   unlink "./tmp2";
   open (TMP,"./tmp3");
   @traf=<TMP>;close TMP;
   unlink "./tmp3";
   $traf=@traf;$a=0;
   if($mod_t eq "D")
      {$filter="DOWNLOAD";}
   else
       {$filter="UPLOAD";}
   ($sec,$min,$hour,$day_m,$month,$year,$day_w,$day_y,$other)=localtime(time);
   $year=$year+1900;
   if($month<10)
       {$month=join("",$a,$month);}
   if($lite eq "y")
       {$tpl="";&stdout;}
   else
       {&stdout;}
}
sub stdout{
   if($mod_f eq "n")
       {
       print "\n$year-$month-$day_m-$hour-$min\n","Таблица статистики абонентов (Для служебных целей) за $date_print $filter:\n\n";
       for($i=0;$i<$traf;++$i){
       $uname=@traf[$i];chomp $uname;$i=$i+2;
       $D0=@traf[$i];chomp $D0;$i=$i+2;
       $D1=@traf[$i];chomp $D1;$i=$i+2;
       $D2=@traf[$i];chomp $D2;$i=$i+2;
       $D3=@traf[$i];chomp $D3;$i=$i+2;
       $D4=@traf[$i];chomp $D4;$i=$i+2;
       $D5=@traf[$i];chomp $D5;$i=$i+2;
       $D6=@traf[$i];chomp $D6;$i=$i+2;
       $D7=@traf[$i];chomp $D7;$i=$i+2;
       $D8=@traf[$i];chomp $D8;$i=$i+2;
       $D9=@traf[$i];chomp $D9;
       $summ=$D0+$D1+$D2+$D3+$D4;
       $summ=($summ/$kb)/$mb;
       print "--------------------------------\n";
       print "$tpl$uname$split $summ MB\n";
       $money=$summ*$cent;
       print "$tplНа сумму$split $money P\n";
       $a=$a+$summ;
       $imoney=$money+$imoney;
       }
   print "################################\n";
   print "$tplОбщий траффик$split $a MB\n";
   print "$tplНа сумму$split $imoney\n";
   }
   else{
       open(ECHO,">>$file");
       print ECHO "\n$year-$month-$day_m-$hour:$min:$sec\n","Таблица статистики абонентов (Для служебных целей) за $date_print $filter:\n\n";
       for($i=0;$i<$traf;++$i){
       $uname=@traf[$i];chomp $uname;$i=$i+2;
       $D0=@traf[$i];chomp $D0;$i=$i+2;
       $D1=@traf[$i];chomp $D1;$i=$i+2;
       $D2=@traf[$i];chomp $D2;$i=$i+2;
       $D3=@traf[$i];chomp $D3;$i=$i+2;
       $D4=@traf[$i];chomp $D4;$i=$i+2;
       $D5=@traf[$i];chomp $D5;$i=$i+2;
       $D6=@traf[$i];chomp $D6;$i=$i+2;
       $D7=@traf[$i];chomp $D7;$i=$i+2;
       $D8=@traf[$i];chomp $D8;$i=$i+2;
       $D9=@traf[$i];chomp $D9;
       $summ=$D0+$D1+$D2+$D3+$D4;
       $summ=($summ/$kb)/$mb;
       print ECHO "--------------------------------\n";
       print ECHO "$tpl$uname$split$summ\n";
       $money=$summ*$cent;
       print ECHO "$tplНа сумму$split$money\n";
       $a=$a+$summ;
       $imoney=$money+$imoney;
       }
   print ECHO "################################\n";
   print ECHO "$tplОбщий траффик$split$a\n";
   print ECHO "$tplНа сумму$split$imoney\n";
   close ECHO;
   }
}

И ещё этот скрипт нельзя использовать если среди пользовтаелей есть новички, тоесть если в каталоге у пользователя нет файла stat.2005.хх! Его необходимо будет создать, а поля в файле выставить равными 0.

Відредаговано Max
  • 7 months later...
Опубліковано:

Q: Как позволить одному логину получать доступ с разных IP

Ф: Достаточно в поле IP Адрес ввести все допустимые ip через запятую и пробел

10.20.30.2, 10.20.30.3, 10.20.50.85 итд

  • 2 months later...
Опубліковано:

В: Как автоматизировань поднятие STG при вылете его из процессов?

О: Коль случилась/случается такая неприятность - можно решить ее таким вот скриптиком под названьем stglife.sh, пример приведен ниже :

#!/bin/sh

# Делаем выборку из активных процессов
NUM='ps ax|grep stargazer|wc -l'

if [ $NUM -lt 2 ]; then

# Запускаем, советую перед тем как запустить убить, т.е. restart
      /usr/local/rc.d/stgctl restart

fi

 

Добавляем запись в cron, время по вкусу:

5,35    *    *    *    *    root    /usr/local/bin/stglife.sh

  • 2 weeks later...
Опубліковано:
В: Как автоматизировань поднятие STG при вылете его из процессов?

О: Коль случилась/случается такая неприятность - можно решить ее таким вот скриптиком под названьем stglife.sh, пример приведен ниже :

#!/bin/sh

# Делаем выборку из активных процессов
NUM='ps ax|grep stargazer|wc -l'

if [ $NUM -lt 2 ]; then

# Запускаем, советую перед тем как запустить убить, т.е. restart
      /usr/local/rc.d/stgctl restart

fi

 

Добавляем запись в cron, время по вкусу:

5,35    *    *    *    *    root    /usr/local/bin/stglife.sh

Не всегда можно увидить второй процесс grep и перезагрузка будет происходить даже при нормально работающим stargazer. Поэтому корректней было бы:

 

NUM='ps ax | grep stargazer | grep -v grep | wc -l

if [ $NUM -lt 1 ]; then

 

и т.д.

  • 4 months later...
Опубліковано:

В: Перезапускаешь stargazer, а он в лог пишет:

Bind admin socket failed

или

Bind failed

что делать?

 

О: Проверить, какие процессы заняли tcp и/или udp порты старгейзера под себя.

Во FreeBSD проверяется через

sockstat -4l | grep 5555 (или какой там у вас порт).

В моем случае, этим процессом был named, который почему-то открыл tcp порт 5555, как непривеллигированный.

Перезагрузка named помогла, он перестал занимать этот порт.

А потом уже можно загружать stargazer.

  • 8 months later...
Опубліковано:

Вопрос - необходимо увеличить число направлений для подсчета траффика...

 

простое изменение константы DIR_NUM в исходниках поможет ?

  • 10 months later...
  • 4 months later...
Опубліковано:
В: Как автоматизировань поднятие STG при вылете его из процессов?

 

Предложенные здесь скрипты проверки состояния и перезапуска СТГ - не всегда срабатывают.

Тут вот немного изменённый вариант:

http://local.com.ua/forum/index.php?s=&amp...ost&p=99151

  • 9 months later...
Опубліковано:
В: При коннекте конфигуратора вылазит сообщение "Recv header ansver error"

О: Нужно добавить в stargazer.conf в строку AdminAllowFrom ip адрес компьютера или подсети с которой осуществляется попытка подключения.

Сегодня поймал такой баг. После внимательно выкуривания логов Старгейзера было обнаружено:

Была попытка создать нового администратора. Администратор создался, но в его конфиге не было ни единого символа. Следовательно модуль конфигуратора при попытке загрузке выдавал ошибку о невозможности прочтения такого-то администратора.

Решение:

Вручную удалить администратора и перезапустить Старгейзер/Сервак.

 

Надеюсь кому-нибудь поможет.

  • 2 years later...
Опубліковано:

В: Как сделать так что б stargazer стартовал при загрузке FreeBSD, и понимал команды

О: 1. В папку /usr/loca/etc/rc.d Добавляем файл stg.sh

2. Вписываем содержимое:

#!/bin/sh

stg_enable=${stg_enable-"NO"}

. /etc/rc.subr
name="stg"
rcvar=`set_rcvar`
command="/usr/sbin/stargazer"

load_rc_config $name
run_rc_command "$1"

 

3. файл зделать исполняемым chmod 755 stg.sh

4. в файле /etc/rc.conf добовляем stg_enable="YES"

 

Пояснения :

1. расширение .sh обязательное номинальное требование

2. В: Почему такой короткий скрипт?

О: Файл rc.subr содержит методы стандартных аргументов, если болие понятно то управление stargazer'ом ведеться как обычным деманом.

 

Испытано на версии FreeBSD 8.2 ядро GENERIC

Опубліковано:

Еще можно добавить для старта

 

# PROVIDE: stargazer
# REQUIRE: mysql

Чтобы стартовало после мускуля, для постгреса тоже можно опцию добавить

  • 7 months later...
Опубліковано:

всем привет!

я так понял для подключения у абонента к серверу нужно запускать виндовое приложение.

а можна просто втиркнуть кабель в сетевуху и получить айпишник?

на freebsd 9 работает?

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    • Немає користувачів, що переглядають цю сторінку.
×
×
  • Створити нове...