Перейти до

madf

Сitizens
  • Всього повідомлень

    4 122
  • Приєднався

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

  • Дней в лидерах

    22

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

  1. Это понятно, что проблема либо виндового конфигуратора либо на сервере со stargazer-ом что-то.

    Базу читает, показывает. А менять что либо невозможно. Права на файлы баз как был так и есть.

    Пробовал расширить до 777 - не помогло...

    chmod -R 777 /var/stargazer/users/
    Пользователя добавляет. Но тут же открываю на редактирование - выдает "Неверное значение...". Удаление пользователя проходит без проблем.

    Далее провел сборку заново(сохранив свои конфиги):

    #tar zxvf stg-2.409-rc2.tar.gz
    #cd stg-2.409-rc2
    #cd projects/stargazer/ 
    #env CC=clang CXX=clang++ sh build
    #gmake install
    Запускаю с чистой базой, где всего один юзер. И пробую редактировать. Но не тут-то было... Получил опять "Неверное значение....".

     

    Виндовый конфигуратор — очень древняя штука. Последние изменения в нем были в 2008-м году и с каждым выходом новой винды я надеюсь что он наконец умрет. К сожалению, у Windows очень хорошо с обратной совместимостью :)

     

    А что в логе stg при таких ошибках?

    Работает ли sgconf?

  2. На сколько я понял код отправляет параметры при дисконнекте пользователя.

    Нет, он исправляет проблему отправки неправильных параметров при дисконнекте. Фактически раньше при дисконнекте отправлялись те которые были при коннекте.
  3. ...

    Далее делаю так(просто ./build выдает ошибку):

    Фря?

    ...

    Делаю далее:

    # make install
    make: "/usr/home/stg-2.409-rc2/projects/rscriptd/Makefile" line 31: Missing dependency operator
    ...
    #
    Ну раз выдал ошибку  делаю так:

     

     

    # gmake install
    mkdir -m 0755 -p //usr/sbin
    install -m 0755 -o root -s rscriptd //usr/sbin/rscriptd
    ...
    #

     

    Фря!

    Копирую файл rscriptd из /usr/home/stg-2.409-rc2/projects/rscriptd/ в /usr/sbin/

    gmake install только что его скопировал. И конфиги все. И скрипты. И все что у вас ранее было наконфигурено — больше не наконфигурено.

    Запускаю:

     

     

    /etc/rc.d/rscriptd start
    Проверил, что есть две строки в процессах.

     

    Запускаем на другом сервере:

     

    /ietc/rc.d/stargazer start
    Проверяем наличие процессов stargazer.

     

    Смотрим отправку пакетов на удаленный сервер с помощью tcpdump - есть.

    На удаленном сервере также проверяем приход пакетов управления на порт 9999 - есть.

    В процессах rscriptd есть. В логе есть отметка о его запуске. 

    Что делает патченный rscriptd?

     

    ТО же что и не патченный.

    А ничего.... 

    Что проверить надо мне?

    что не так сделал?

    Наконфигурить.
  4.  

    Это процесс накладный по CPU а не по RAM или дисковому пространству.

     

    Странно, у меня, при условии, что таблица постоянно обновляется, CPU 15% а RAM 99.9% 

     

    Я видимо не так прочитал коммент. Прием и анализ этой информации жрет CPU. Хранение ее не требует ни CPU ни RAM — хранение на диске происходит.

  5. Вот патч исправляющий проблемы с передачей параметров в rscriptd при дисконнекте.

    diff --git a/projects/rscriptd/listener.cpp b/projects/rscriptd/listener.cpp
    index cc2a056..0b626af 100644
    --- a/projects/rscriptd/listener.cpp
    +++ b/projects/rscriptd/listener.cpp
    @@ -396,6 +396,7 @@ while (it != pending.end() && count < 256)
                 {
                 printfd(__FILE__, "Disconnect user '%s'\n", it->login.c_str());
                 // Disconnect existing user
    +            uit->params = it->params;
                 Disconnect(*uit);
                 users.erase(uit);
                 }
    

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

  6. О_о так лучше)) еще вопрос. как можно узнать сколько пк стоит у абона после его роутера?

    Кроме как прийти и посмотреть? Никак.

    В модуле детальной статистики вы не увидите заголовки ресурсов, на которые заходили пользователи. Кроме того, хранение подобного рода информация в БД очень накладный процесс и требует большого количества ОЗУ. Так что, если есть возможность, зеркалируйте трафик и разбирайте его.

    Это процесс накладный по CPU а не по RAM или дисковому пространству.

  7. ...

     

     

    Спасибо, что сказали про тайм-аут. Как это происходит на NAS можете описать?

    В rscriptd.conf есть параметр UserTimeout, задается в секундах. Если в течении этого времени не буду приходить подтверждения о том что юзер еще законнекчен — он будет отключен. Выполнится OnDisconnect.
  8. ...

    вначале выдавал команду фаерволу на блокировку пакетов на порт 9999 удаленному серверу(с командой отключения юзеров), которые отправляет stg при выключении. Зачем это сделано? Ну вот представьте себе. Возникла необходимость профилактики сервера. Администратор дает команду остановки сервера и тут начинаются звонки от абонентов с вопросами - А где инет?! Вот чтоб не было этого я и дописал команду. При запуске на управляющем сервер:

    ...

    Они все равно отпадут по тайм-ауту.

     

    По поводу неправильного значения — буду смотреть.

  9. Так, стоп, давайте разберемся. Параметр не передается или передается с неправильным значением? Потому что я обсуждал не передачу параметра и в ваших скриптах нашел причину этому. Сейчас вы пишете что параметр все таки передается, но значение неправильное. Чему верить?

  10. Скрипт OnDisconnect на удаленном сервере NAS(таблицы тут у нас свои):

    #!/bin/sh
    
    FwCMD="/sbin/ipfw"
    login=$1
    ip=$2
    id=$3
    cash=$4
    d0=$5
    ...
    
    ...

    .....
    UserParams = Userdata0 #Passive #Phone #RealName #Userdata1 #Userdata6 #Note #Credit #Tariff
    ....
    
    ...

     

    Ну я же уже писал выше: login, ip, id. Нету там никакого cash. Если нужен — добавьте через UserParams.

  11. Madf, я в файле OnChange дописал скрипт который меняет параметр Userdata0 в зависимости от состояния параметров Down, Passive. А именно логика такая: Down=0&Passive=0 -> Usedata0=V, Down=0&Passive=1 -> Usedata0=Z, Down=1&Passive=1(или 0) -> Userdata0=O. Далее в проверках передачи состояния от управляющего сервер на NAS обнаружил, что скрипт OnDisconnect на удаленном сервере (NAS) не получает измененный параметр Userdata0.

    В общем получается, что при переходе юзера из состояния Онлайн в состояние Офлайн или Заморожен, скрипт OnDisconnect на NAS-е получает всего 4 параметра: LOGIN, IP, CASH, ID.

    У меня передается.

     

    Другие параметры передаются только в том виде которые были до команды перехода юзера в состояние Офлайн или Заморожен. 

    На текущий момент пишем скрипт для обоих серверов, который бы передавал параметры на NAS, не используя rscriptd.

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

    Или может я что-то не так делаю...?

    Как вы определяете значения Down/Passive в OnChange?
  12. Я поддержу предложение GrDEV.

    В текущей ситуации на боевых серверах трафик управляется и рулится на одном серваке для группы юзеров(серверов несколько). Решили управление свести в одно ПО для нескольких серверов доступа(NAS). В процессе подготовки серверов обнаружены недочеты(я чуть ранее писал). В итоге на данный момент из-за невозможности передать Passive пришлось начать составлять скрипт чтобы глобально переписать Userdata0(сейчас используется как идентификатор параметра услуги для администраторов сети) для передачи его на удаленный NAS.

    Т.к. параметр Passive имеет значимую роль, я все же буду ждать исправления от авторов. Чтоб я мог в будущем использовать Userdata0 по текущему назначению, а Passive по прямому назначению.

    Благодарности авторам за Stargazer.

    Тут нечего исправлять, все работает. Буду ли я приводить параметры скриптов rscriptd к параметрам скриптов stg я пока не решил. Вероятно в версии 2.4 нет.
  13. ...

    Как вариант просто сделать проверку на стандартные параметры. Все что попадает в выборку - стандартные, все остальное - пользовательские. Тогда и совместимость останется и будет как универсальное решение.

    Не вижу как это решает проблему.

    stg: login ip cash id dirs <userparams>

    rscriptd: login ip id <userparams>

  14. Параметр Down тоже не смог передать на удаленный NAS.

    Я так понимаю вы взяли стоковые примеры скриптов OnConnect/OnDisconnect за основу. По неизвестной причине, rscriptd по умолчанию передает меньше параметров. А именно, login, ip, id. То есть UserParams будут идти начиная с 4-го аргумента. В таком раскладе все передает нормально.

     

    Вот только я теперь не знаю, что будет более правильно сделать: исправить скрипты (тогда непонятно почему локальные скрипты и rscriptd разные) или исправить rscriptd (и сломать обратную совместимость).

  15. Есть сервер с базой и stg-2.409-rc2. Включен модуль remote_script. В конфиге remote_script.conf указал передаваемые параметры: 

    UserParams = Passive
    Есть удаленный сервер NAS. установлен rscriptd. В нем есть OnConnect и OnDosconnect, в редакции под наши нужды.

    В общем не могу добиться передачи параметра Passive. Проверял передачу других параметров: Note, Phone, Userdata0...9, Credit, IP, Tariff, RealName - приходят на удаленный сервер. Параметры Login, IP, Cash, Id передаются. 

    А вот Passive никак....

    Подскажите что проверить надо бы мне?

     

    Воспроизвел у себя, буду исправлять.
×
×
  • Створити нове...