Биллинговая система неожиданно перестаёт списывать деньги!

Технические вопросы по UTM 5.0
Дьяволёнок
Сообщения: 21
Зарегистрирован: Ср мар 15, 2006 16:16

Биллинговая система неожиданно перестаёт списывать деньги!

Сообщение Дьяволёнок »

Биллинговая система переодически перестаёт считать трафик.
Соответсвенно и деньги со счетов пользователей перестают списываться.
При этом процесс ndsad перестаёт потреблять системные ресурсы.
Не знаю что делать, помогите! :cry:

UTM-5.1.10-015 (ndsad с этого-же дистрибутива)
Fedora Core 4
2x Xeon 2GHz, 4Gb RAM

cat /netup/utm5/ndsad.cfg:

Код: Выделить всё

### Project: ndsad; Project version: 0.0.3-025;
### Branch: ;
### File: ndsad.conf; File version: 0.0.3-024
# Sample configuration file for Network DataStream Accounting Daemon

# Data stream collector ip
# Default:
#ip     127.0.0.1
# Example:
#ip     10.0.0.1

# Data stream collector port
# Default:
#port 9996

# Forced faces - these faces
# will be processed even if dummy family is specified
# in configuration file.
# Default:
#none
# Example:
# force lo

# Dummy iface - these faces
# will be traced but data stream won't be generated
# Multiply faces may be specified
# Default:
# none
# Example:
#ignore eth0

# Promisc device - specify string if You want
# device to be put in promisc mode.
# Note.
# Device may be in promisc mode even if promisc string is not specified.
# For example if tcpdump is running on it.
# Default:
#none
# Example:
promisc eth1

# Hash size for the family.  # Value must be a power of 2
# Default is 128 buckets for all families.
hash lo 64

# Default hash size may be changed when family is specified as `all'
# Default:
#hash all 128
# Ex
hash all 32

# Heap size in bytes.
# Default:
#heap 16384
# Example:
heap 65536

# Periodical statistic dump delay.
# If no dump is expected specify 0
# Default:
#dump 0
# Example:
#dump 5

# Dummy iface family - faces from this family
# will be traced but data stream won't be generated
# Default:
# none
# Example:
#dummy  eth

# Specify log file. Otherwise logging will be done to stderr.
# Default:
#log (null)
# Example:
#log /tmp/ndsad.log
log /netup/utm5/log/ndsad.log

# Jump to another configuration file
# Current file is closed after this line! Beware of loops!
# Default:
# none
# Example:
#config /usr/local/etc/nfcd.local.conf
Последние логи перед проишествием (/netup/utm/log/ndsad.log):

Код: Выделить всё

ndsad[22685]: Killing scaner thread...
ndsad[2373]: Session opened on Wed Mar 15 12:43:24 2006
ndsad[2373]: binary version `1.32.1'
ndsad[2373]: WatchDog: Dog waken...
ndsad[2374]: `eth0': new device
ndsad[2373]: WatchDog: child[2374] started on Wed Mar 15 12:43:24 2006
ndsad[2374]: `eth0:2': new device
ndsad[2376]: `eth0' thread started successfully.
ndsad[2374]: `eth1': new device
ndsad[2377]: `eth0:2' thread started successfully.
ndsad[2378]: `eth1' thread started successfully.
ndsad[2374]: `lo': new device
ndsad[2379]: `lo' thread started successfully.
ndsad[2376]: `eth0' thread is preparing for PCAP loop call
ndsad[2376]: pcap_datalink(eth0) = 1
ndsad[2376]: Set ppp offset = 4
ndsad[2377]: `eth0:2' thread is preparing for PCAP loop call
ndsad[2378]: `eth1' thread is preparing for PCAP loop call
ndsad[2377]: pcap_datalink(eth0:2) = 1
ndsad[2377]: Set ppp offset = 4
ndsad[2379]: `lo' thread is preparing for PCAP loop call
ndsad[2379]: pcap_datalink(lo) = 1
ndsad[2379]: Set ppp offset = 4
ndsad[2378]: pcap_datalink(eth1) = 1
ndsad[2378]: Set ppp offset = 4

Unknown_Error
Сообщения: 263
Зарегистрирован: Вс ноя 20, 2005 14:41

Сообщение Unknown_Error »

ИМХО: Юзайте ipcad, и будет Вам счастье! :lol:

aospan
NetUP Team
Сообщения: 1639
Зарегистрирован: Чт янв 13, 2005 20:30

Сообщение aospan »

попробуйте собрать ndsad из исходников. Если не поможет, то нужно будет заходить к вам на сервере и более детально изучать вопрос ...

Дьяволёнок
Сообщения: 21
Зарегистрирован: Ср мар 15, 2006 16:16

Сообщение Дьяволёнок »

Unknown_Error писал(а):ИМХО: Юзайте ipcad, и будет Вам счастье! :lol:
Просто заменить ndsad на ipcad? Придётся ли при этом менять какие-либо настройки UTM'а?

Дьяволёнок
Сообщения: 21
Зарегистрирован: Ср мар 15, 2006 16:16

Сообщение Дьяволёнок »

aospan писал(а):попробуйте собрать ndsad из исходников. Если не поможет, то нужно будет заходить к вам на сервере и более детально изучать вопрос ...
Попробую, но боюсь что могут возникнуть проблемы из-за gcc4 (Fedora Core 4).

Дьяволёнок
Сообщения: 21
Зарегистрирован: Ср мар 15, 2006 16:16

Сообщение Дьяволёнок »

Собрал ndsad-1.33.
Жду часа "Х", очень надеюсь, что он не наступит. :lol:

Unknown_Error
Сообщения: 263
Зарегистрирован: Вс ноя 20, 2005 14:41

Сообщение Unknown_Error »

Дьяволёнок писал(а):
Unknown_Error писал(а):ИМХО: Юзайте ipcad, и будет Вам счастье! :lol:
Просто заменить ndsad на ipcad? Придётся ли при этом менять какие-либо настройки UTM'а?
Нет, ничего менять не придется!

Дьяволёнок
Сообщения: 21
Зарегистрирован: Ср мар 15, 2006 16:16

Сообщение Дьяволёнок »

aouspan, а вы что скажите на счёт ipcad? Стоит ли на него переходить?

Дьяволёнок
Сообщения: 21
Зарегистрирован: Ср мар 15, 2006 16:16

Сообщение Дьяволёнок »

aouspan, не помогло. :(
Пока придётся раз в час перезапускать ndsad crontab'ом.
Завтра попробую ipcad.

aospan
NetUP Team
Сообщения: 1639
Зарегистрирован: Чт янв 13, 2005 20:30

Сообщение aospan »

Дьяволёнок писал(а):aouspan, не помогло. :(
Пока придётся раз в час перезапускать ndsad crontab'ом.
Завтра попробую ipcad.
если не поможет - предоставьте доступ, посмотрим ...
есть еще вариант направить в ndsad трафик с iptables (ULOG).

Дьяволёнок
Сообщения: 21
Зарегистрирован: Ср мар 15, 2006 16:16

Сообщение Дьяволёнок »

aospan писал(а):
Дьяволёнок писал(а):aouspan, не помогло. :(
Пока придётся раз в час перезапускать ndsad crontab'ом.
Завтра попробую ipcad.
если не поможет - предоставьте доступ, посмотрим ...
есть еще вариант направить в ndsad трафик с iptables (ULOG).
Если отчаемся, то предоставим :).
Слышал, что iptables ULOG не очень хороший способ.


Заменил ndsad на ipcad. Опять жду часа "Х". :)

DiBrain
Сообщения: 30
Зарегистрирован: Пт июн 10, 2005 00:40

Сообщение DiBrain »

Дьяволёнок писал(а):Слышал, что iptables ULOG не очень хороший способ.
А чем он не очень хороший вы не слышали?

Дьяволёнок
Сообщения: 21
Зарегистрирован: Ср мар 15, 2006 16:16

Сообщение Дьяволёнок »

DiBrain писал(а):
Дьяволёнок писал(а):Слышал, что iptables ULOG не очень хороший способ.
А чем он не очень хороший вы не слышали?
http://topola.unity.net/trafcoll/:
Использование iptables представляется мне наиболее идеальным средством для учета трафика на роутерах под управлением Linux, если бы не парочка небольших НО!.

И так, какие же подводные камни могут подстерегать администратора при использовании iptables в качестве счетчика трафика? Доступ к информации iptables, обеспечивает системная библиотека libipt, с помощью которой собрана и сама команда iptables. Библиотека работает по следующему принципу - для чтения таблиц создается их копия в user-space пространстве при помощи системных средств. Само по себе это не создает проблемы. Проблема начинается тогда, когда возникает необходимость внести какие-либо изменения, добавить или убрать правило. Дело в том, что любые одиночные изменения производятся в прочитанной копии таблиц, и после того, как эти изменения сделаны, вся копия таблиц записывается обратно в системную область ядра, перезаписывая в том числе и те показания счетчиков, которые были прочитаны вначале. А ведь за этот промежуток времени через ядро может пройти несколько сетевых пакетов, которые увеличат системные счетчики, но значения которых будет "затерто" предыдущим значением. Хоть потери в данном случае незначительны, но все же эта мелочь может отравлять администратору жизнь, не позволяя ему спать спокойно. Ниже мы попробуем минимизировать негативные последствия этого недостатка.

Второй - не самый большой, но все же недостаток - невозможность асинхронной работы с сетевыми таблицами фильтра iptables. Это значит, что возможно возникновение такой ситуации, когда запускаются одновременно две команды iptables, каждая из которых занята решением своих вопросов. При этом может возникнуть проблема доступа у одной из программ из-за блокировки таблиц другой программой. Это требует от администратора строить свои скрипты, вызывающие iptables таким образом, что бы не допустить одновременного запуска iptables. Хотя эта проблема с первого взгляда обходится довольно-таки просто, но в сложной системе может принести немало хлопот и ошибок (включая потерю счетчиков трафика). В нашем примере мы постараемся минимизировать и эту проблему.

calculator
Сообщения: 180
Зарегистрирован: Пн дек 26, 2005 13:17
Откуда: msk

Сообщение calculator »

Использование iptables представляется мне наиболее идеальным средством для учета трафика на роутерах под управлением Linux, если бы не парочка небольших НО!.

И так, какие же подводные камни могут подстерегать администратора при использовании iptables в качестве счетчика трафика? Доступ к информации iptables, обеспечивает системная библиотека libipt, с помощью которой собрана и сама команда iptables. Библиотека работает по следующему принципу - для чтения таблиц создается их копия в user-space пространстве при помощи системных средств. Само по себе это не создает проблемы. Проблема начинается тогда, когда возникает необходимость внести какие-либо изменения, добавить или убрать правило. Дело в том, что любые одиночные изменения производятся в прочитанной копии таблиц, и после того, как эти изменения сделаны, вся копия таблиц записывается обратно в системную область ядра, перезаписывая в том числе и те показания счетчиков, которые были прочитаны вначале. А ведь за этот промежуток времени через ядро может пройти несколько сетевых пакетов, которые увеличат системные счетчики, но значения которых будет "затерто" предыдущим значением. Хоть потери в данном случае незначительны, но все же эта мелочь может отравлять администратору жизнь, не позволяя ему спать спокойно. Ниже мы попробуем минимизировать негативные последствия этого недостатка.

Второй - не самый большой, но все же недостаток - невозможность асинхронной работы с сетевыми таблицами фильтра iptables. Это значит, что возможно возникновение такой ситуации, когда запускаются одновременно две команды iptables, каждая из которых занята решением своих вопросов. При этом может возникнуть проблема доступа у одной из программ из-за блокировки таблиц другой программой. Это требует от администратора строить свои скрипты, вызывающие iptables таким образом, что бы не допустить одновременного запуска iptables. Хотя эта проблема с первого взгляда обходится довольно-таки просто, но в сложной системе может принести немало хлопот и ошибок (включая потерю счетчиков трафика). В нашем примере мы постараемся минимизировать и эту проблему.
Как говорится, высосано из пальца.

Дьяволёнок
Сообщения: 21
Зарегистрирован: Ср мар 15, 2006 16:16

Сообщение Дьяволёнок »

ipcad нам действительно помог.
Unknown_Error, aospan, огромное вам спасибо! Выручили. ;)

Ответить