Jump to content

Падение СТГ и глюки авторизатора


Recommended Posts

Недавно начал падать сервер стг, в логах ниче не видно :)

2008-01-04 17:42:30 -- Stg v. Stg 2.403b
2008-01-04 17:42:30 -- Message queue created successfully. msgKey=5555 msgID=8978432
2008-01-04 17:42:30 -- Timer thread started successfully.
2008-01-04 17:42:30 -- Storage plugin: mysql_store v.0.67 (Alf). Loading successfull.
2008-01-04 17:42:30 -- Users started successfully.
2008-01-04 17:42:30 -- Traffcounter started successfully.
2008-01-04 17:42:30 -- Module: 'bpf_cap v.1.0'. Start successfull. 0
2008-01-04 17:42:30 -- Module: 'InetAccess authorizator v.1.1'. Start successfull. 50
2008-01-04 17:42:30 -- Module: 'Always Online authorizator v.1.0'. Start successfull. 70
2008-01-04 17:42:30 -- Module: 'Pinger v.1.01'. Start successfull. 100
2008-01-04 17:42:30 -- Module: 'Stg configurator v.0.05'. Start successfull. 220
2008-01-04 17:42:30 -- Stg started successfully.
2008-01-04 17:42:30 -- +++++++++++++++++++++++++++++++++++++++++++++
2008-01-04 17:47:37 -- Stg v. Stg 2.403b
2008-01-04 17:47:37 -- Message queue created successfully. msgKey=5555 msgID=9437184
2008-01-04 17:47:37 -- Timer thread started successfully.
2008-01-04 17:47:37 -- Storage plugin: mysql_store v.0.67 (Alf). Loading successfull.
2008-01-04 17:47:38 -- Users started successfully.
2008-01-04 17:47:38 -- Traffcounter started successfully.
2008-01-04 17:47:38 -- Module: 'bpf_cap v.1.0'. Start successfull. 0
2008-01-04 17:47:38 -- Module: 'InetAccess authorizator v.1.1'. Start successfull. 50
2008-01-04 17:47:38 -- Module: 'Always Online authorizator v.1.0'. Start successfull. 70
2008-01-04 17:47:38 -- Module: 'Pinger v.1.01'. Start successfull. 100
2008-01-04 17:47:38 -- Module: 'Stg configurator v.0.05'. Start successfull. 220
2008-01-04 17:47:38 -- Stg started successfully.
2008-01-04 17:47:38 -- +++++++++++++++++++++++++++++++++++++++++++++

так его стартовать приходится постоянно, падает буквально каждые 10 минут. Из логов видно, какой версии и что установлено. Вот конфиг-файл:

 

################################################################################
#                        Файл настроек сервера stargazer                       #
################################################################################
# Имя лог-файла куда пишутся события
LogFile = /var/log/stargazer.log
# Имя файла в котором определяются правила подсчета трафика
Rules = /etc/stargazer/rules
# Время через которое пишется d БД детальная статистика пользователя
# Значения: 1, 1/2, 1/4, 1/6.
# 1 - раз в чаc, 1/2 - раз в пол часа, 1/4 - раз в 15 мин, 1/6 - раз в 10 мин
DetailStatWritePeriod=1/6
# Периодичность записи записи в БД информации о статистике пользователя (минуты)
# При большом кол-ве пользователей эту величину стоит увеличить, т.к.
# запись в БД может занимать длительное время.
# Значения: 1...1440 (минуты)
StatWritePeriod = 1
# День снятия абонплаты
# Значения: 0...31. 0 - Последний день месяца
DayFee = 1
# Абонплата снимается в последний (yes) или первый (no) день учетного периода.
# Это влияет на то, как будет снята абонплата (АП) при переходе на новый тариф.
# Если у пользователя был тариф A с АП=100 и он хочет перейти на тариф B с АП=200,
# то при переходе на новый тариф со счета пользователя снимется 100, если
# DayFeeIsLastDay = yes и 200, если DayFeeIsLastDay = no
DayFeeIsLastDay = yes
# День сброса данных о трафике за месяц и день перехода пользователей на новые тарифы
# Значения: 0...31. 0 - Последний день месяца
DayResetTraff = 1
# "Размазанное" снятие абонплаты. Снятие АП не раз в месяц, а каждый
# день 1/30 или 1/31 части АП
# Значения: yes, no
SpreadFee = yes
# Данная опция определяет может ли пользователь получить доступ в интерент
# если у него на счету нет денег, но остался предоплаченный трафик
# Значения: yes, no
FreeMbAllowInet = no
# Эта опция определяет что будет писаться в стоимость трафика в detail_stat.
# Если у пользователя еще есть предоплаченный трафик и WriteFreeMbTraffCost = no,
# то в detail_stat стоимость будет 0. Если у пользователя уже нет
# предоплаченного трафика и WriteFreeMbTraffCost = no, то в detail_stat
# будет записана стоиость трафика. При WriteFreeMbTraffCost = yes стоимость
# трафика будет записана в любом случае.
WriteFreeMbTraffCost = no
# Названия направлений. Направления без названий не будут отображаться в
# авторизаторе и конфигураторе. Названия состоящие из нескольких слов должны
# быть взяты в кавычки
<DirNames>
   DirName0 = Интернет
   DirName1 =
   DirName2 =
   DirName3 =
   DirName4 =
   DirName5 =
   DirName6 =
   DirName7 =
   DirName8 =
   DirName9 =
</DirNames>
# Кол-во запускаемых процессов stg-exec.
# Эти процессы отвечают за выполнение скриптов OnConnect, OnDisconnect, ...
# Кол-во процессов означает сколько скриптов могут выполнятся одновременно.
# Значения: 1...1024
ExecutersNum = 1
# Message Key для stg-exec.
# Идентификатор очереди сообщений для выполнятеля скриптов.
# Его изменение может понадобится если есть необходимость запустить несколько
# экземпляров stg. Если вы не понимаете, что это, не трогайте этот параметр!
# Значения: 0...2^32
# Значение по умолчанию: 5555
# ExecMsgKey = 5555
# Путь к директории, в которой находятся модули сервера
ModulesPath = /usr/lib/stg
################################################################################
# Store module
# Настройки плагина работающего с БД сервера
# Второй параметр - это имя модуля без mod_ в начале и .so в конце
# Т.е. полное имя модуля mod_store_files.so
<StoreModule store_mysql>
   dbuser = root
   rootdbpass = ******
   dbname = stargazer
   dbhost = 127.0.0.1
</StoreModule>

################################################################################
# Прочие модули
<Modules>
   # Настройки плагина авторизации Always Online "mod_auth_ao.so"
   # Второй параметр - это имя модуля без mod_ в начале и .so в конце
   # Т.е. полное имя модуля mod_auth_ao.so
   <Module auth_ao>
   </Module>
   # Настройки плагина авторизации InetAccess "mod_auth_ia.so"
   # Второй параметр - это имя модуля без mod_ в начале и .so в конце
   # Т.е. полное имя модуля mod_auth_ia.so
   <Module auth_ia>
       # Порт на котором принимаются обращения от авторизатора
       # Значения: 1...65534
       Port = 5555
       # Время между посылками запроса пользователю жив ли он
       # и обновлением данных статистики (секунды)
       # Значения: 5...600
      UserDelay = 25
       #Таймаут для пользователя. Если в течение этого времени авторизатор
       #не отвечает, пользователь будет отключен
       # Значения: 15...1200
       UserTimeout = 25
       # Этот параметр определяет что будет передаваться программе InetAccess от сервера
       # как отстаток предоплаченного трафика
       # Значения:
       # FreeMb = 0 - кол-во бесплатных мегабайт в пресчете на цену нулевого направления
       # FreeMb = 1 - кол-во бесплатных мегабайт в пресчете на цену первого направления
       # FreeMb = 2 - кол-во бесплатных мегабайт в пресчете на цену второго направления
       # FreeMb = 3 - кол-во бесплатных мегабайт в пресчете на цену третьего направления
       # ........................
       # FreeMb = 9 - кол-во бесплатных мегабайт в пресчете на цену девятого направления
       # FreeMb = cash - кол-во денег на которые юзер может бесплатно качать
       # FreeMb = none - ничего не передавать
       FreeMb = cash
   </Module>
   # Модули можно использовать несколько раз с разными параметрами
   #<Module auth_ia>
   #    Port = 7777
   #    UserDelay = 15
   #    UserTimeout = 65
   #    FreeMb = 0
   #</Module>
   # Настройки модуля конфигурации SgConfig "mod_conf_sg.so"
   # Второй параметр - это имя модуля без mod_ в начале и .so в конце
   <Module conf_sg>
       # Порт по которому сервер взаимодействует с конфигуратором
       # Значения: 1...65535
       Port = 5555
   </Module>
   # Модуль захвата трафика "mod_cap_ether.so"
   # Второй параметер - это имя модуля без mod_ в начале и .so в конце
   # Без параметров. Только имя модуля.
   <Module cap_bpf>
       iface=vr0
       # Модуль без параметров
   </Module>
   # Настройки модуля пингующего пользователей "mod_ping.so"
   # Второй параметр - это имя модуля без mod_ в начале и .so в конце
   <Module ping>
       # Время, в секундах, между пингами одного и того же пользователя
       # Значения: 10...3600
       PingDelay = 15
   </Module>
</Modules>
################################################################################

 

Еще авторизатор стал мигать... В общем такого еще небыло за историю моего юзания стг. Кто чем поможет?

Link to post
Share on other sites

Было бы неплохо получить лог отладочного режима. А если падает с Segmentation fault, Illegal instruction или Bus error - тогда и корку до кучи.

Link to post
Share on other sites

Нафиг логи :(

В этом серваке как минимум мы нашли 2 баги приводивших к падению :)

Имхо, надо разбиратся с багом с авторизатором в параллельной ветке и переходить на новую версию.

Link to post
Share on other sites

Фигася, у меня пока еще не было такого с этой версией... тьфу тьфу.

Борис, да с удовольствием перейдем на новую версию сервера если бы не модуль и админка Альфа, даешь безглючную версию БЕЗ патчей :).

Link to post
Share on other sites
Фигася, у меня пока еще не было такого с этой версией... тьфу тьфу.

Борис, да с удовольствием перейдем на новую версию сервера если бы не модуль и админка Альфа, даешь безглючную версию БЕЗ патчей :).

+1

Link to post
Share on other sites
Нафиг логи :(

В этом серваке как минимум мы нашли 2 баги приводивших к падению :)

Имхо, надо разбиратся с багом с авторизатором в параллельной ветке и переходить на новую версию.

Сервак и модуль мускуля брал с сайта Макса, наложил патч от Альфа, собрал поставил, все работало. Седня шось перестало, авторизатор кстати постоянно переконнекчивается, отключил олвейз онлайн, сервер перестал падать, но авторизатор все еще переконнекчивается. Месяц-два все было ок. Фиг его знает, 97 клиентов в базе.

 

Насчет нового - было бы десяток клиентов, да, пусть немного протестят, я подожду...

Link to post
Share on other sites
Сервак и модуль мускуля брал с сайта Макса, наложил патч от Альфа, собрал поставил, все работало. Седня шось перестало...

Ну класс - обсуждается текущая сборка, а ты про сервак от Макса с патчем от Алферова. Там жеж уже куча изменений!

Link to post
Share on other sites
Сервак и модуль мускуля брал с сайта Макса, наложил патч от Альфа, собрал поставил, все работало. Седня шось перестало...

Ну класс - обсуждается текущая сборка, а ты про сервак от Макса с патчем от Алферова. Там жеж уже куча изменений!

Насколько я понял, эту версию во всю юзают и Альф и Макс (и я ы), ничего негативного насчет стабильности я от них не слышал на этом форуме. Поэтому человек и спросил в чем может быть бочина...

По крайней мере я тоже считаю что версия 2.4-2007.01.20-13.47.20 самая стабильная из всей ветки релизов 2.4, простите, но это ТАК.

Захожу ежедневно в тему Новая сборка СТГ 2.4, и страшно даже ставить на рабочую машину новую версию... багов все больше и больше... такое ощущение что они не фиксяца а пишуца )))

Link to post
Share on other sites

Я себе поставил таки новую сборку.

Правда пришлось модуль авторизатора старый (1.1) допиливать и ставить.

И в классе RAW_PACKET вернул к предыдущему виду функцию GetLen()

 

Пока полет вроде нормальный (тьфу*3).

Link to post
Share on other sites

Сейчас такие глюки шо я не могу... Сборка та же шо и в первом посте писал, авторизатор постоянно переконнекчивается, постоянно перевыполняются онконнект/ондисконнект... Бывает шо онконнект не выполняется. Переконнекчиваешься вручную авторизатором, выполняется. Шо делать?

Link to post
Share on other sites
Сервак и модуль мускуля брал с сайта Макса, наложил патч от Альфа, собрал поставил, все работало. Седня шось перестало...

Ну класс - обсуждается текущая сборка, а ты про сервак от Макса с патчем от Алферова. Там жеж уже куча изменений!

хочу отметить что у нас на сайте лежит оригинальный стг версии 13.47.20, а уже патчи на него накладывать это дело каждого....

по поводу стабильности: да я юзаю пока 13.47.20 и слазить с неё ещё месяца два не буду потому что оно стерпело все патчи, и не падает.

Link to post
Share on other sites

Сервер СТГ стал падать буквально внезапно... щас не падает, перестал, но зато авторизатор любит переконнекчиваться, и ондисконнект/онконнект не всегда выполняются, выполняются как хотят. Вследствии этого начинают загаживаться правила фаерволла, получается что-то типо этого:

 

10946 5 224 allow ip from 10.10.1.22 to any

10946 0 0 allow ip from 10.10.1.22 to any

10946 0 0 allow ip from 10.10.1.22 to any

10946 0 0 allow ip from 10.10.1.22 to any

10946 0 0 allow ip from 10.10.1.22 to any

10946 0 0 allow ip from 10.10.1.22 to any

10946 0 0 allow ip from 10.10.1.22 to any

10946 0 0 allow ip from 10.10.1.22 to any

10946 0 0 allow ip from 10.10.1.22 to any

10946 0 0 allow ip from 10.10.1.22 to any

10946 0 0 allow ip from 10.10.1.22 to any

10946 0 0 allow ip from 10.10.1.22 to any

10946 0 0 allow ip from 10.10.1.22 to any

10947 2 2904 allow ip from any to 10.10.1.22

10947 0 0 allow ip from any to 10.10.1.22

10947 0 0 allow ip from any to 10.10.1.22

10947 0 0 allow ip from any to 10.10.1.22

10947 0 0 allow ip from any to 10.10.1.22

10947 0 0 allow ip from any to 10.10.1.22

10947 0 0 allow ip from any to 10.10.1.22

10947 0 0 allow ip from any to 10.10.1.22

10947 0 0 allow ip from any to 10.10.1.22

10947 0 0 allow ip from any to 10.10.1.22

10947 0 0 allow ip from any to 10.10.1.22

10947 0 0 allow ip from any to 10.10.1.22

10947 0 0 allow ip from any to 10.10.1.22

 

 

У кого такие бока с этой сборкой? Сборка та же, что и при создании топика.

Бывает это не всегда, по желанию самого СТГ. В среднем, юзеров в онлайне 30-40, вечером 50-60.

Link to post
Share on other sites

БлААА

 

Прихожу домой, смотрю в чате орут халява. Зырк у меня аська работает а авторизатор красный. Че за нах, зырк на сервак - stg лежит, при этом остался только процесс stg-exec. В логах полная тишина. Это впервые! Куда копать? Похоже повторяется история как у Коляна. :)

 

Сервер 13.47.20+stg_web

Link to post
Share on other sites

Версия та же 2.403b

Проблема такая же, падает просто так, бывает сразу же после запуска, бывает через неопределенное время, всегда по разному, остается только stg-exec

 

ОС FreeBSD 6.2

Link to post
Share on other sites

Обидно, эту версию поставил ровно как месяц, до этого ГОД простоял stg-2.4-14072006 и ни одного бага не было... сборку stg-2.4-2007.01.20-13.47.20 ставил только ради stg-web...

Link to post
Share on other sites
Обидно, эту версию поставил ровно как месяц, до этого ГОД простоял stg-2.4-14072006 и ни одного бага не было... сборку stg-2.4-2007.01.20-13.47.20 ставил только ради stg-web...

а у меня стоит и не падает.... тьфу тьфу тьфу, может кора у кого есть?

Link to post
Share on other sites
Обидно, эту версию поставил ровно как месяц, до этого ГОД простоял stg-2.4-14072006 и ни одного бага не было... сборку stg-2.4-2007.01.20-13.47.20 ставил только ради stg-web...

а у меня стоит и не падает.... тьфу тьфу тьфу, может кора у кого есть?

Подробней плз че надо сделать, все дам. :)

Link to post
Share on other sites
Обидно, эту версию поставил ровно как месяц, до этого ГОД простоял stg-2.4-14072006 и ни одного бага не было... сборку stg-2.4-2007.01.20-13.47.20 ставил только ради stg-web...

а у меня стоит и не падает.... тьфу тьфу тьфу, может кора у кого есть?

при определённых случаях упавший стг оставляет после себя файл коры, правда может оставить почти где угодно, обычно или в каталоге стг, или в home юзера кторый его запустил, вот этот файл сильно бы помог найти проблему

Link to post
Share on other sites

По поводу аналогичной ситуации я уже писал

http://local.com.ua/forum/index.php?showtopic=10454

Пока ни причин ни решения проблемы не выяснил.

Потому пришлось писать скрипт проверки и кидать его в крон через каждые 2 минуты (опытным путем было установлено, что при отвале СТГ этого времени хватает для его повторного запуска и зачистки всех нужных следов после него)

Вот краткая версия скрипта

#!/bin/bash
stamp=`date +"%Y.%m.%d--%H.%M.%S"`
a=`ps -ef | grep stargazer | awk '{print $8}' | sed '1!d'`
b=`ps -ef | grep stg-exec | awk '{print $8}' | sed '1!d'`
stgID=`ps -ef | grep stg-exec | awk '{print $2}' | sed '1!d'`
stgsID=`ps -ef | grep stargazer | awk '{print $2}' | sed '1!d'`
#echo $a
#echo $b
if [ "$a" = "stargazer" ]
then
echo "1"
echo "work -->$a -->$b $stamp" >> /root/checker_loger.log
else
if [ "$a" = "/usr/sbin/stargazer" ]
then
echo "2"
echo "work -->$a -->$b $stamp" >> /root/checker_loger.log
else
kill -s KILL $stgID
kill -s KILL $stgsID
sleep 2
###cleaning iproute tables###
ip rule ls | while read priority rule; do
   case ${priority%:} in
       0|3276[67])
          ;;
       *)
           ip rule del $rule
          ;;
   esac
done
###########################
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -P INPUT ACCEPT
iptables -P FORWARD DROP
iptables -A FORWARD -p tcp --tcp-flag SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP 
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
###########################
sleep 5
stargazer
echo "------> dead $a $b $stamp" >> /root/checker_loger.log
e=`ps -ef | grep stargazer | awk '{print $8}' | sed '1!d'`
f=`ps -ef | grep stg-exec | awk '{print $8}' | sed '1!d'`
echo "---> check ($e&$f) $a $b $stamp" >> /root/checker_loger.log
fi
fi

Проверки лишние можно выкинуть...просто для себя пишу все в лог.

Ну и доработать напильником....

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

Link to post
Share on other sites
Название файла бы...

stargazer.core. Если нужно отправить для диагностики, отправлю :)

find: stargazer.core: No such file or directory

 

:(

 

gall, спасибо, буду наверное ваять костыль.

Link to post
Share on other sites
Потому пришлось писать скрипт проверки и кидать его в крон через каждые 2 минуты ...

Лучше/проще через pidof :

 

#!/bin/bash

PIDSTG=`/sbin/pidof stargazer2_4`

if [[ ${PIDSTG} == "" ]]
then
   echo "STG 2.4 _NOT_ run !" >> /var/log/stargazer2.4.log
   /bin/kill -9 `/sbin/pidof stg-exec`
   /etc/rc.d/init.d/stargazer2_4 start
fi

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...