Перейти до

chinhis

Маглы
  • Всього повідомлень

    70
  • Приєднався

  • Останній візит

Сообщения додав chinhis

  1. Так першочергово треба провірити чи приходить мультикаст на порт найкраще самою ж астрою
    astra --analyze udp://interface_Name@239.255.5.1:1235
    ідеально би мультикаст подати на окремий інтерфейс сервера де астра, ну і дальше якшо приходить MPTS мій робочий конфіг:
    make_channel({
        name = "10020",
        input = {"udp://vlan1023@227.0.0.9:100#pnr=10020"},
        output = {"http://0:20003/10020#keep_active"},
    })
    make_channel({
        name = "10030",
        input = {"udp://vlan1023@227.0.0.9:100#pnr=10030"},
        output = {"http://0:20003/10030#keep_active"},
    })
    make_channel({
        name = "10040",
        input = {"udp://vlan1023@227.0.0.9:100#pnr=10040"},
        output = {"http://0:20003/10040#keep_active"},
    })
     

  2. отже, перестроїв я все на інші мережевки, на НАСі ОнДісконект вернув до попереднього вигляду, тепер білінг і нас зеднані пачкордом. Наразі політ норм... таймаут поки що не зменшував, подивлюся шо буде вечером у прайм тайм.

  3. Так в мене так і є по білінгу спілкується по тому інтерфейсу що і юзері бігають тіки в влані, поставив був спочатку таймаут 240 - качелі дальше  були, зара стоїть 600 - вроді норм, але чи то може нагрузка зменшилась чи дійсно помогло .... хз. Завтра попробую перекофгувати на інші інтерфеси білінг і нас і зеднаю їх окремим кабельком без свіча. Поки шо ОнДісконект лишаю закоментованими строки шо відключають юзера

  4. Доброго вечора! Відокремлений НАС працював без проблем останніх півроку ніякий настройок останнім часом не мінялося, від учора (Вечером) появилися проблеми в лозі allconnect юзери конектяться а потім всіх масово виключає і так по кругу... вчора пару ребутів сервера помогли , сьогодні знову повторилося - наразі закоментував всі строки в ONDisconect на NAS. В кого які припущення що могло статися?

  5. всім привіт!

     

    останнім часом спостерігаю такі записи в логах старгейзера 

     

    1 [conf_sg] Received invalid header from 61.216.2.14:25596.

     

    2 [conf_sg] Failed to read data from 172.16.0.59:1357. Unexpected EOF.

     

     

    що це ? як з цим боротись? 

  6. Всім привіт, тоже боровся з цією проблемою, вирішив її так:

     

    (в мене кабінет резолвиться по доменному імені - аля user.isp.com, який вказує на іп білінга)

     

    1). в фаєрі на насі роблю редірект на 127.0.0.1:80 / 443 де слухає нжинкс, тобто фаєр завертає все до себе, якшо юзер з насу хоче зайти на прорезолвену ір білінга:

     

    ${FwCMD} table 17 add іп-адрес-білінга_де ровернутий-кабінет-юзера/32

    ${FwCMD} add 160 fwd 127.0.0.1,80 ip from table\(2\) to table\(17\) dst-port 80 via vlan*
    ${FwCMD} add 160 fwd 127.0.0.1,443 ip from table\(2\) to table\(17\) dst-port 443 via vlan*
     
    2). Нжинкс на насіф все прокидує (проксує) на внутрішню ір білінга
     
    http {
     
        ssl_session_cache   shared:SSL:10m;
        ssl_session_timeout 10m;
     
        server {
     
        listen  80;
        listen 443 ssl;
        server_name localhost;
        client_max_body_size 16m;
     
        # Enable SSL
        ssl_certificate /CA/webserver.crt;
        ssl_certificate_key /CA/webserver.key;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
        ssl_prefer_server_ciphers on;
     
        location / {
     
            add_header 'Access-Control-Allow-Methods' 'GET,POST,DELETE,OPTIONS';
            add_header 'Access-Control-Allow-Credentials' 'true';
            add_header 'Access-Control-Allow-Origin' "$http_origin";
            add_header 'Access-Control-Allow-Headers' 'WD-Since,WD-Start,WD-Direction,WD-Length,WD-Ids,Content-Type,WD-Client-Id';
            add_header 'Access-Control-Expose-Headers' 'WD-Total-Length,WD-Phone-Modal,WD-Client-Id,WD-Udid,WD-Need-More';
     
            proxy_pass http://100.100.100.10:80/;
     
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     
    #        root /usr/local/www/data/;
    #        index  index.html index.htm;
            }
     
          }
        }
     

    3). Так як в мене авторизація в кабінеті без паролю а по ip, то ще в авторизаційному скрипті кабінета підправив трохи код, і  :( постоянно після обнови потрібно його знову змінювати, - бажано би шоб ці зміни включили в оф. версію:

     

    vi /usr/local/www/apache24/data/billing/userstats/modules/engine/api.userstats.php 
    ф-цію  zbs_UserDetectIp привести до такого вигляду
     
    function zbs_UserDetectIp($debug = false) {
        $glob_conf = zbs_LoadConfig();
        $ip = '';
     
        //default auth method
        if ($glob_conf['auth'] == 'ip') {
            if (!empty($_SERVER['HTTP_CLIENT_IP']))
            {
                    $ip=$_SERVER['HTTP_CLIENT_IP'];
            }
            elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
            {
                    $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
            }
            else
            {
                    $ip=$_SERVER['REMOTE_ADDR'];
            }
        }
        //password based auth
        if ($glob_conf['auth'] == 'login') {
            if ((isset($_COOKIE['ulogin'])) AND ( isset($_COOKIE['upassword']))) {
                $ulogin = trim(vf($_COOKIE['ulogin']));
                $upassword = trim(vf($_COOKIE['upassword']));
                $ip = zbs_UserCheckLoginAuth($ulogin, $upassword);
            }
        }
        if ($debug) {
             //$ip='172.30.0.2';
        }
     
        return($ip);
    }
     
    P.S таким чином в мене все наразі працює без проблем, також при цій схемі в мене проходить редірект боржників , заморозків, на відповідні сторінки (субдомени), які розвернуті на білінгу, а дефолтний скрипт на білінгу вирішує кого куда перенаправити
  7. Замітив наступну штуку:

     

    в логах старгазера, що клієнту встановлюється баланс -0.00000

     

    2016-03-01 00:00:06 -- Admin '@stargazer', 0.0.0.0: User '1422882660': 'cash' parameter changed from '45.300000' to '-14.700000'. Subscriber fee charge
    2016-03-01 00:00:06 -- Admin '@stargazer', 0.0.0.0: User '1422882660': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic
    2016-03-01 00:06:10 -- Admin 'admin', 127.0.0.1: User '1422882660': 'credit' parameter changed from '0.000000' to '60.000000'. 
    2016-03-01 00:06:10 -- Admin 'admin', 127.0.0.1: User '1422882660': 'creditExpire' parameter changed from '0' to '1457222400'. 
    2016-03-01 00:06:10 -- Admin 'admin', 127.0.0.1: User '1422882660': 'cash' parameter changed from '-14.700000' to '-14.700000'. 
    2016-03-04 19:48:57 -- Admin 'admin', 127.0.0.1: User '1422882660': 'cash' parameter changed from '-14.700000' to '-0.000000'. 
    2016-03-06 02:00:01 -- User: 1422882660. Credit expired.
     
    2016-03-04 19:48:57 - клієнт через опенпайз (приват) оплатив 14.7 грн, чому баланс получився відємним?
     
    де що трбе передивитись в настройках?
  8.  

    :(  по ідеї , мало би працювати так я хочу відповідно якшо зробити по скріншоті (що раніше скидав), але при збережені тарифа - воно шось не зберігає так як прописую

    віртуальні сервіси, безкоштовні тарифи та скрипти на перевірку трафіку вам у допомогу.

    наприклад написати сервіс та обробку до нього з перевіркою зміни трафіку.

     

    подивіться як зроблено в remote api

    fullhostscan + param [traffdiff]
    

     

    Зробив по вашій пораді -добавив в ремота апі код:

    if($_GET['action'] == 'feeOnTrafficChange'){
        $tariffTrafficChangePrice=array('1day-4uah'=>'-4', '1day-4uah-kabel'=>'-4', '1day-5uah'=>'-5', '1day-5uah-kabel'=>'-5'); /*тарифи які потрібно обробити де ключ -назва тарифу , значення - вартість тарифу з мінусом спереді. (можна ше якось по інакшому придумати: в алтер.іні загнати, чи якусть табл створити в базі, чи повязати на додаткові поля профілю .... але пока так)))*/
     if(!is_array($tariffTrafficChangePrice) || empty($tariffTrafficChangePrice)){
      die('ERROR:NO tariff for process');
     }
     $textUserTraffic='';
     $allUser=simple_queryall("SELECT `login`,`Passive`, `Down`, `Tariff`,`D0`,`U0`,`Cash` FROM `users`"); //провіряю тіки інтернет трафік в мене він 0
     if ($allUser && !empty($allUser)){
      
        $lastDayUserTraffic=array(); // ('login (KEY ARRAY)' -> 'lastDayTraffic (VALUE ARRAY)')
        if (file_exists($_SERVER['DOCUMENT_ROOT'].'/exports/userTraffic.txt')){// всі логіни з трафіком з часу останнього запуску скрипта
          $dataFile = fopen($_SERVER['DOCUMENT_ROOT'].'/exports/userTraffic.txt','r');
          while (!feof($dataFile)) {
    	$string = trim(fgets($dataFile));
    	if (isset($string) && !empty($string)){
    	  $string=explode(' ', $string);
    	  $lastDayUserTraffic[$string[0]]=(int) trim($string[1]);
    	}
          }
          fclose($dataFile);
        }
    		    
      foreach($allUser as $key => $value){
         $totalUserTraffic = (int) trim($value['D0']) + (int) trim($value['U0']);
         if ($totalUserTraffic !=0 && array_key_exists(trim($value['Tariff']),$tariffTrafficChangePrice)){
    	$curUserTariff=trim($value['Tariff']);
    	$curLogin=trim($value['login']);
    	if (!empty($lastDayUserTraffic) && isset($lastDayUserTraffic) && array_key_exists($curLogin, $lastDayUserTraffic)){
    	  if( $totalUserTraffic != $lastDayUserTraffic[$curLogin]){
    	    zb_CashAdd($value['login'], $tariffTrafficChangePrice[$curUserTariff], 'add', 1, 'Abonplata - traffic day tariff');// абонка
    	  }
    	}
    	else { //new user was created today
    	  zb_CashAdd($value['login'], $tariffTrafficChangePrice[$curUserTariff], 'add', 1, 'Abonplata - traffic day tariff');// абонка
    	}
    				
         }
         $textUserTraffic.=trim($value['login']).' '.$totalUserTraffic."\n";
         }
      }// end foreach
      $fp = fopen($_SERVER['DOCUMENT_ROOT'].'/exports/userTraffic.txt', 'w'); //створення файлу з трафіком на наст день
      fwrite($fp, $textUserTraffic);
      fclose($fp);
      die (0);
    			
    }// end my api
    

    - створити відповідні тарифи в системі з абонкою 0 грошей, та прописати в массив у скрипті

     

    - добавити в крон на запуск десь в 23:55 - чому раніше ніж північ - бо може получитися так шо в ост. день місяця нет получиться нахаляву, оскільки в базі підчищаються дані про трафік, а якшо в когось зніме абонку на 5 хв скоріше - великої проблеми не буде.

     

    - перед першим запуском треба ств. файл exports/userTraffic.txt достатньо закоментувати 2 строки де знімається абонка  (zb_CashAdd($value['login'], $tariffTrafficChangePrice[$curUserTariff], 'add', 1, 'Abonplata - traffic day tariff') ;)

     

    - після кожного оновлення знову прийдеться цей код вставляти у скрипт ремоте апі ну і прослідковувати чи в релізі не помінялися назви ф-цій чи формат return в глобальних ф-ціях (zb_CashAdd, simple_queryall ......)

    - підкоректувати autoupdate.sh шоб бекапило  exports/userTraffic.txt

     

    можливо хтось шось видозмінить, чи підкорегує алгоритм, і з часом шось похоже зявиться в оф релізі - мене пока так влаштовує.

  9. :(  по ідеї , мало би працювати так я хочу відповідно якшо зробити по скріншоті (що раніше скидав), але при збережені тарифа - воно шось не зберігає так як прописую

     

    Розібрався - вже зберігає настройки тарифу так як треба, просто сецсимволи треба екранувати в даному випадку / - записати як \/

     

    Тепер треба потестити (Запустити процес зняття абонки вручну тестовому логіну, - як пока хз), бо так прийдеться тиждень тестити бо система вже робоча з ральними юзерами  :D

  10. шось дуже скудний мануал по редагуванню тарифів в старгазері.

     

    тут на скріншоті редаг тарифу я дешо на кидав.. хотів би спитатитись знаючих чи получиться в мене те шо я хочу (шоб знімало 4 грн за сутку в абона, якшо перевищить 0 мб трафіку в інтернет), в мене ше встановлений розмазаний тип абонплати.

     

    tarif.png

  11. просто беру на обслужку мережу провайдера, мікбіл взагалі не знаю і влом розбиратись, а з убілінгом уже давно дружу

    + в мікбілі всі модулі платні, і на флеші інтерфейс написаний - довго грузе, і кабінет на флеші (не завжди в юзера актуальний флеш)

  12. так згідний, шо є такі уніки, але я так просто спитався, бо перевожу абоінв з мікбіла на убілінг, а там є така можливість і є 12 абонів з таким тарифом, а тепер розкажи ім шо в них абонплата буде кожен день зніматись чи юзав чи не юзав нет ))

  13. :)  я то, то все знаю, але мабуть хтось шось тай вже придумав... або є якийсь патч до старгазера, як наприклад зміна періодів тарифікації.

     

    можна ж вирахувати чи в абона за сутку були зміни в к-сті трафіка (внутрішній, інтернет ....), і вже відповідно до цих змін знімати чи не знімати абонку, але тіки на відповідних тарифах, де це має бути дозволено.

  14. 1. Прописати аліас відповідної мережі білих ІР на мережевку яка дивиться на юзерів.

    2. Загнати цю мережу в фаєр в таблицю 10 , (як описав nightfly), а також добавити відповідні правила в фаєр для табл 10.

    3. Створити цю мережу в убілінг, у відповідності як добавляються прості (сірі) мережі

    4. Створити відповідний персональний ДХЦП шаблон для цієї мережі в убілінг, якшо мережа білих ІР не /24

  15. відключив автозаморозку , поставив feeCgargeType=1, розморозив всіх автозаморозків, привів їх баланс у відповідність до реальних даних,

    подивлюсь шо буде 1 березня коли зніме абонплату  :D

  16. То як там з розморозкою, після здійснення оплати? Було б добре в кабінеті юзера - можливість самостійно розморожуватись. Шось таке планується ????

    Чи ставити http://wiki.ubilling.net.ua/doku.php?id=stargazerdailyfee , шукати золоту середину, і відключати н-х автозаморозку?

×
×
  • Створити нове...