ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Учёт трафика (ulogd + sqlite)
@ 2007-11-24 14:26 Grigory Batalov
                     ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: Grigory Batalov @ 2007-11-24 14:26 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 5128 bytes --]

  Здравствуйте!

  Мне нужно написать модуль альтератора для учёта трафика в рамках
Office Server. Оцените идею, кто в теме.

  Наиболее простым кажется использовать ulogd и sqlite, поскольку это
самодостаточные пакеты, и между ними не требуется прослойки. Так что
я добавил правила:

# iptables --insert INPUT -j ULOG --ulog-nlgroup 1 --ulog-cprange 48 --ulog-qthreshold 50 --ulog-prefix "icount"
# iptables --insert OUTPUT -j ULOG --ulog-nlgroup 1 --ulog-cprange 48 --ulog-qthreshold 50 --ulog-prefix "ocount"
# iptables --insert FORWARD -j ULOG --ulog-nlgroup 1 --ulog-cprange 48 --ulog-qthreshold 50 --ulog-prefix "fcount"

и настроил ulogd-sqlite3 на /var/lib/ulogd/sqlite3.db

  Всё бы хорошо, но пакетов приходит много, база растёт, а потенциальные
пользователи Office Server вряд ли будут за ней следить и чистить.
Поэтому я внёс дополнения в схему базы (cм. ниже).

  При вставке (INSERT) новой строки длина пакета триггером добавляется
к суточному счётчику (в соответствии с протоколом, IP, портами и пр.), а
строка тут же удаляется. Счётчик сначала пытается вставиться (INSERT OR
IGNORE - если уже есть, молча идём дальше) в суточную таблицу (ulog_daily),
а затем увеличивается на длину пакета UPDATE-ом.

  Поскольку в альтераторе не будет подробных сведений, время округляется
до суток. По ulog_daily строится индекс для скорейшего поиска. Входной/выходной
интерфейсы, порты tcp/udp при вставке в ulog_daily складываются, поскольку
одновременно используется только один из пары.

  Ввод такой схемы даёт 16-кратную экономию места, при том, что скорость
падает примерно в 4 раза: дамп на 360 тысяч строк залился чуть больше,
чем за минуту (на Athlon 64 X2 3600) против 15 секунд по старой схеме.
Мне кажется, это приемлимо.

  Покритикуйте, если я что-нибудь упустил.

--- >8 ---
CREATE TABLE ulog (
                        raw_mac         VARCHAR(80),
                        oob_time_sec    INT UNSIGNED,
                        oob_time_usec   INT UNSIGNED,
                        oob_prefix      VARCHAR(32),
                        oob_in          VARCHAR(32),
                        oob_out         VARCHAR(32),
                        ip_saddr        VARCHAR(16),
                        ip_daddr        VARCHAR(16),
                        ip_protocol     TINYINT UNSIGNED,
                        ip_totlen       SMALLINT UNSIGNED,
                        tcp_sport       SMALLINT UNSIGNED,
                        tcp_dport       SMALLINT UNSIGNED,
                        udp_sport       SMALLINT UNSIGNED,
                        udp_dport       SMALLINT UNSIGNED,
                        udp_len         SMALLINT UNSIGNED,
                        icmp_type       TINYINT UNSIGNED,
                        icmp_code       TINYINT UNSIGNED,
                        icmp_echoid     SMALLINT UNSIGNED,
                        icmp_echoseq    SMALLINT UNSIGNED,
                        icmp_gateway    INT UNSIGNED,
                        icmp_fragmtu    SMALLINT UNSIGNED
                );
CREATE TABLE ulog_daily (
                        time            INT UNSIGNED,
                        prefix          VARCHAR(32),
                        iface           VARCHAR(32),
                        saddr           VARCHAR(16),
                        daddr           VARCHAR(16),
                        protocol        TINYINT UNSIGNED,
                        sport           SMALLINT UNSIGNED,
                        dport           SMALLINT UNSIGNED,
                        bytes           INTEGER
                );
CREATE UNIQUE INDEX ulog_daily_idx ON ulog_daily
        (time, prefix, iface, saddr, daddr, protocol, sport, dport);
CREATE TRIGGER aggregate AFTER INSERT ON ulog
BEGIN
        INSERT OR IGNORE INTO ulog_daily (
                time,
                prefix, 
                iface,
                saddr,
                daddr,
                protocol,
                sport,
                dport,
                bytes
        ) values (
                NEW.oob_time_sec/86400*86400,
                NEW.oob_prefix,
                NEW.oob_in || NEW.oob_out,
                NEW.ip_saddr,
                NEW.ip_daddr,
                NEW.ip_protocol,
                ifnull (NEW.tcp_sport, 0) + ifnull (NEW.udp_sport, 0),
                ifnull (NEW.tcp_dport, 0) + ifnull (NEW.udp_dport, 0),
                0
        );
        UPDATE ulog_daily
        SET
                bytes = bytes + NEW.ip_totlen
        WHERE
                time = NEW.oob_time_sec/86400*86400 AND
                prefix = NEW.oob_prefix AND
                iface = NEW.oob_in || NEW.oob_out AND
                saddr = NEW.ip_saddr AND
                daddr = NEW.ip_daddr AND
                protocol = NEW.ip_protocol AND
                sport = ifnull (NEW.tcp_sport, 0) + ifnull (NEW.udp_sport, 0) AND
                dport = ifnull (NEW.tcp_dport, 0) + ifnull (NEW.udp_dport, 0);
        DELETE from ulog WHERE ROWID = NEW.ROWID;
END;

-- 
 Grigory Batalov,
 ALT Linux Team

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] Учёт трафика (ulogd + sqlite)
  @ 2007-11-24 15:40   ` Grigory Batalov
  2007-11-24 17:08     ` Peter V. Saveliev
  0 siblings, 1 reply; 17+ messages in thread
From: Grigory Batalov @ 2007-11-24 15:40 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 2121 bytes --]

On Sat, 24 Nov 2007 17:33:59 +0300, Yury A.Romanov wrote:

> А может лучше ipcad? он еще проще. по rsh получать значения счетчиков
> netflow. По netflow ежели что можно их куда-то отдавать.

  В альтераторе нет поддержки netflow =).

  Вот, что показывает ipcad через rsh:

   Source           Destination    Packets        Bytes  SrcPt DstPt Proto   IF
 77.241.33.0      192.168.10.111        21         1040  65535    22     6 venet0
 192.168.10.111   77.241.33.0           28        29148     22 65535     6 ulog4
 127.0.0.0        127.0.0.0            231       108320   1023  1023     6 ulog4

Accounting data age is     0
Accounting data age exact 24
Accounting data saved 1195917584
Interface u1: received ??, 5 m average 1086 bytes/sec, 8 pkts/sec, dropped ??
Flow entries made: 3
Memory usage: 0% (408 from 1048576)
Free slots for rsh clients: 9
IPCAD uptime is 5 minutes
vbga64.spb.altlinux.org uptime is 95 days  6:03

  Что-то не вижу, как здесь посчитать трафик за вчера и позавчера.
  И потом, выборка из базы sqlite по IP и номеру порта мне кажется быстрее
  и проще, чем ручной (скриптовый) подсчёт по текстовой таблице ipcad.
  Т.е. sql гибче.

  Тема netflow, вообще говоря, интересна, но для такой простой задачи,
  как модуль альтератора, мне кажется, это слишком мощный инструмент.

> >   Мне нужно написать модуль альтератора для учёта трафика в рамках
> > Office Server. Оцените идею, кто в теме.
> >
> >   Наиболее простым кажется использовать ulogd и sqlite, поскольку это
> > самодостаточные пакеты, и между ними не требуется прослойки. Так что
> > я добавил правила:
> >
> > # iptables --insert INPUT -j ULOG --ulog-nlgroup 1 --ulog-cprange 48
> > --ulog-qthreshold 50 --ulog-prefix "icount"
> > # iptables --insert OUTPUT -j ULOG --ulog-nlgroup 1 --ulog-cprange 48
> > --ulog-qthreshold 50 --ulog-prefix "ocount"
> > # iptables --insert FORWARD -j ULOG --ulog-nlgroup 1 --ulog-cprange 48
> > --ulog-qthreshold 50 --ulog-prefix "fcount"
> >
> > и настроил ulogd-sqlite3 на /var/lib/ulogd/sqlite3.db
...

-- 
 Grigory Batalov,
 ALT Linux Team

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] Учёт трафика (ulogd + sqlite)
  2007-11-24 14:26 [devel] Учёт трафика (ulogd + sqlite) Grigory Batalov
  @ 2007-11-24 16:47 ` Michael Shigorin
  2007-11-25  1:01 ` Anton Farygin
  2 siblings, 0 replies; 17+ messages in thread
From: Michael Shigorin @ 2007-11-24 16:47 UTC (permalink / raw)
  To: devel

On Sat, Nov 24, 2007 at 05:26:39PM +0300, Grigory Batalov wrote:
> Всё бы хорошо, но пакетов приходит много, база растёт, а
> потенциальные пользователи Office Server вряд ли будут за ней
> следить и чистить.

В таких случаях обычно хорошо работает RRD-like (round robin),
посмотри collectd или mrtg.  Кстати, collectd для SOHO может
оказаться вполне полезным сам по себе или как источник данных
для тебя.

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] Учёт трафика (ulogd + sqlite)
  2007-11-24 15:40   ` Grigory Batalov
@ 2007-11-24 17:08     ` Peter V. Saveliev
  2007-11-30 14:29       ` Максим Иванов
  0 siblings, 1 reply; 17+ messages in thread
From: Peter V. Saveliev @ 2007-11-24 17:08 UTC (permalink / raw)
  To: ALT Linux Team development discussions

В сообщении от Saturday 24 November 2007 18:40:53 Grigory Batalov написал(а):
> On Sat, 24 Nov 2007 17:33:59 +0300, Yury A.Romanov wrote:
> > А может лучше ipcad? он еще проще. по rsh получать значения счетчиков
> > netflow. По netflow ежели что можно их куда-то отдавать.
>
>   В альтераторе нет поддержки netflow =).
>

Ещё бы.

<skip />
>   Что-то не вижу, как здесь посчитать трафик за вчера и позавчера.
>   И потом, выборка из базы sqlite по IP и номеру порта мне кажется быстрее
>   и проще, чем ручной (скриптовый) подсчёт по текстовой таблице ipcad.
>   Т.е. sql гибче.
>
<skip />

В ipcad делать export на localhost 9996.

С помощью flow-tools ловить и анализировать. И/или складывать в rrd (это на 
тему "не чистят").

Пробегал тут ещё очень симпатичный готовый viewer к этому.

-- 
Peter V. Saveliev

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] Учёт трафика (ulogd + sqlite)
  2007-11-24 14:26 [devel] Учёт трафика (ulogd + sqlite) Grigory Batalov
    2007-11-24 16:47 ` Michael Shigorin
@ 2007-11-25  1:01 ` Anton Farygin
  2007-11-25  2:13   ` Aleksey Avdeev
                     ` (2 more replies)
  2 siblings, 3 replies; 17+ messages in thread
From: Anton Farygin @ 2007-11-25  1:01 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Григорий! Спасибо за поднятую тему.

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

Для этого мы попробуем добавить следующие прослойки:
1) коллектор трафика - модуль сбора. Динамически-подгружаемый so модуль, 
собирающий данные об трафике с различных источников (netflow, ulog... и 
т.д.)
2) калькулятор - модуль, позволяющий согласно настройкам - правилам, 
вносить подсчитываемые значения в базу данных
3) Реализатор - модуль, позволяющий согласно настройкам и правилам 
блокировать пользователя.
4) Визуализатор - видимо это на данном этапе альтератор, общающийся с 
системой учёта через cmdline интерфейс (в этом случае не придётся ваять 
библиотеки, хотя они явно не помешали бы)

Соответственно хотелось бы изначально спроектировать систему таким 
образом, что бы по мере необходимости можно было без серьёзных изменений 
добавлять функционал. Конечная цель - полноценный биллинг (который 
актуален как всегда).

Видимо стоит посмотреть на существующие решения - Katrin (молодой 
проект, но как говорят - работает), netams (масса болезней, как мне 
показалось) и т.д.

netams, кстати, умеет ulog, но я столкнулся с проблемой падения netams. 
Допускаю ошибки в настройке iptables, но в случае падения netams сервер 
становился недоступен по сети.


Grigory Batalov пишет:
>   Здравствуйте!
> 
>   Мне нужно написать модуль альтератора для учёта трафика в рамках
> Office Server. Оцените идею, кто в теме.
> 
>   Наиболее простым кажется использовать ulogd и sqlite, поскольку это
> самодостаточные пакеты, и между ними не требуется прослойки. Так что
> я добавил правила:
> 
> # iptables --insert INPUT -j ULOG --ulog-nlgroup 1 --ulog-cprange 48 --ulog-qthreshold 50 --ulog-prefix "icount"
> # iptables --insert OUTPUT -j ULOG --ulog-nlgroup 1 --ulog-cprange 48 --ulog-qthreshold 50 --ulog-prefix "ocount"
> # iptables --insert FORWARD -j ULOG --ulog-nlgroup 1 --ulog-cprange 48 --ulog-qthreshold 50 --ulog-prefix "fcount"
> 
> и настроил ulogd-sqlite3 на /var/lib/ulogd/sqlite3.db
> 
>   Всё бы хорошо, но пакетов приходит много, база растёт, а потенциальные
> пользователи Office Server вряд ли будут за ней следить и чистить.
> Поэтому я внёс дополнения в схему базы (cм. ниже).
> 
>   При вставке (INSERT) новой строки длина пакета триггером добавляется
> к суточному счётчику (в соответствии с протоколом, IP, портами и пр.), а
> строка тут же удаляется. Счётчик сначала пытается вставиться (INSERT OR
> IGNORE - если уже есть, молча идём дальше) в суточную таблицу (ulog_daily),
> а затем увеличивается на длину пакета UPDATE-ом.
> 
>   Поскольку в альтераторе не будет подробных сведений, время округляется
> до суток. По ulog_daily строится индекс для скорейшего поиска. Входной/выходной
> интерфейсы, порты tcp/udp при вставке в ulog_daily складываются, поскольку
> одновременно используется только один из пары.
> 
>   Ввод такой схемы даёт 16-кратную экономию места, при том, что скорость
> падает примерно в 4 раза: дамп на 360 тысяч строк залился чуть больше,
> чем за минуту (на Athlon 64 X2 3600) против 15 секунд по старой схеме.
> Мне кажется, это приемлимо.
> 
>   Покритикуйте, если я что-нибудь упустил.
> 
> --- >8 ---
> CREATE TABLE ulog (
>                         raw_mac         VARCHAR(80),
>                         oob_time_sec    INT UNSIGNED,
>                         oob_time_usec   INT UNSIGNED,
>                         oob_prefix      VARCHAR(32),
>                         oob_in          VARCHAR(32),
>                         oob_out         VARCHAR(32),
>                         ip_saddr        VARCHAR(16),
>                         ip_daddr        VARCHAR(16),
>                         ip_protocol     TINYINT UNSIGNED,
>                         ip_totlen       SMALLINT UNSIGNED,
>                         tcp_sport       SMALLINT UNSIGNED,
>                         tcp_dport       SMALLINT UNSIGNED,
>                         udp_sport       SMALLINT UNSIGNED,
>                         udp_dport       SMALLINT UNSIGNED,
>                         udp_len         SMALLINT UNSIGNED,
>                         icmp_type       TINYINT UNSIGNED,
>                         icmp_code       TINYINT UNSIGNED,
>                         icmp_echoid     SMALLINT UNSIGNED,
>                         icmp_echoseq    SMALLINT UNSIGNED,
>                         icmp_gateway    INT UNSIGNED,
>                         icmp_fragmtu    SMALLINT UNSIGNED
>                 );
> CREATE TABLE ulog_daily (
>                         time            INT UNSIGNED,
>                         prefix          VARCHAR(32),
>                         iface           VARCHAR(32),
>                         saddr           VARCHAR(16),
>                         daddr           VARCHAR(16),
>                         protocol        TINYINT UNSIGNED,
>                         sport           SMALLINT UNSIGNED,
>                         dport           SMALLINT UNSIGNED,
>                         bytes           INTEGER
>                 );
> CREATE UNIQUE INDEX ulog_daily_idx ON ulog_daily
>         (time, prefix, iface, saddr, daddr, protocol, sport, dport);
> CREATE TRIGGER aggregate AFTER INSERT ON ulog
> BEGIN
>         INSERT OR IGNORE INTO ulog_daily (
>                 time,
>                 prefix, 
>                 iface,
>                 saddr,
>                 daddr,
>                 protocol,
>                 sport,
>                 dport,
>                 bytes
>         ) values (
>                 NEW.oob_time_sec/86400*86400,
>                 NEW.oob_prefix,
>                 NEW.oob_in || NEW.oob_out,
>                 NEW.ip_saddr,
>                 NEW.ip_daddr,
>                 NEW.ip_protocol,
>                 ifnull (NEW.tcp_sport, 0) + ifnull (NEW.udp_sport, 0),
>                 ifnull (NEW.tcp_dport, 0) + ifnull (NEW.udp_dport, 0),
>                 0
>         );
>         UPDATE ulog_daily
>         SET
>                 bytes = bytes + NEW.ip_totlen
>         WHERE
>                 time = NEW.oob_time_sec/86400*86400 AND
>                 prefix = NEW.oob_prefix AND
>                 iface = NEW.oob_in || NEW.oob_out AND
>                 saddr = NEW.ip_saddr AND
>                 daddr = NEW.ip_daddr AND
>                 protocol = NEW.ip_protocol AND
>                 sport = ifnull (NEW.tcp_sport, 0) + ifnull (NEW.udp_sport, 0) AND
>                 dport = ifnull (NEW.tcp_dport, 0) + ifnull (NEW.udp_dport, 0);
>         DELETE from ulog WHERE ROWID = NEW.ROWID;
> END;
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Devel mailing list
> Devel@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] Учёт трафика (ulogd + sqlite)
  2007-11-25  1:01 ` Anton Farygin
@ 2007-11-25  2:13   ` Aleksey Avdeev
  2007-11-25 16:16     ` Sergey Y. Afonin
  2007-11-26 10:59     ` Epiphanov Sergei
  2007-11-25 15:07   ` Grigory Batalov
  2007-11-26 17:30   ` [devel] Учёт трафика (ulogd + sqlite) Grigory Batalov
  2 siblings, 2 replies; 17+ messages in thread
From: Aleksey Avdeev @ 2007-11-25  2:13 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1629 bytes --]

Anton Farygin пишет:
> Григорий! Спасибо за поднятую тему.
> 
> Первое, что хотелось бы сказать: независимо от итогового решения, 
> давайте попробуем сделать то, что нужно сейчас, максимально расширяемым.
> 
> Для этого мы попробуем добавить следующие прослойки:
> 1) коллектор трафика - модуль сбора. Динамически-подгружаемый so модуль, 
> собирающий данные об трафике с различных источников (netflow, ulog... и 
> т.д.)

  Из логов squid в частности.

> 2) калькулятор - модуль, позволяющий согласно настройкам - правилам, 
> вносить подсчитываемые значения в базу данных
> 3) Реализатор - модуль, позволяющий согласно настройкам и правилам 
> блокировать пользователя.
> 4) Визуализатор - видимо это на данном этапе альтератор, общающийся с 
> системой учёта через cmdline интерфейс (в этом случае не придётся ваять 
> библиотеки, хотя они явно не помешали бы)
> 
> Соответственно хотелось бы изначально спроектировать систему таким 
> образом, что бы по мере необходимости можно было без серьёзных изменений 
> добавлять функционал. Конечная цель - полноценный биллинг (который 
> актуален как всегда).
> 
> Видимо стоит посмотреть на существующие решения - Katrin (молодой 
> проект, но как говорят - работает), netams (масса болезней, как мне 
> показалось) и т.д.
> 
> netams, кстати, умеет ulog, но я столкнулся с проблемой падения netams. 
> Допускаю ошибки в настройке iptables, но в случае падения netams сервер 
> становился недоступен по сети.

  Если задействовать только часть его (netams) функционала -- его
поадения будут не так фатальны.

-- 

С уважением. Алексей.



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 544 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] Учёт трафика (ulogd + sqlite)
  2007-11-25  1:01 ` Anton Farygin
  2007-11-25  2:13   ` Aleksey Avdeev
@ 2007-11-25 15:07   ` Grigory Batalov
  2007-11-25 19:50     ` Anton Farygin
  2007-11-26 17:30   ` [devel] Учёт трафика (ulogd + sqlite) Grigory Batalov
  2 siblings, 1 reply; 17+ messages in thread
From: Grigory Batalov @ 2007-11-25 15:07 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1688 bytes --]

On Sun, 25 Nov 2007 04:01:22 +0300, Anton Farygin wrote:

> Григорий! Спасибо за поднятую тему.
> 
> Первое, что хотелось бы сказать: независимо от итогового решения, 
> давайте попробуем сделать то, что нужно сейчас, максимально расширяемым.

  Можешь перечислить решаемые такой системой задачи?
  Писать "в стол" нет желания, лучше бы сразу представлять будущие
  варианты использования.  

> Для этого мы попробуем добавить следующие прослойки:
> 1) коллектор трафика - модуль сбора. Динамически-подгружаемый so модуль, 
> собирающий данные об трафике с различных источников (netflow, ulog... и 
> т.д.)
> 2) калькулятор - модуль, позволяющий согласно настройкам - правилам, 
> вносить подсчитываемые значения в базу данных
> 3) Реализатор - модуль, позволяющий согласно настройкам и правилам 
> блокировать пользователя.
> 4) Визуализатор - видимо это на данном этапе альтератор, общающийся с 
> системой учёта через cmdline интерфейс (в этом случае не придётся ваять 
> библиотеки, хотя они явно не помешали бы)
> 
> Соответственно хотелось бы изначально спроектировать систему таким 
> образом, что бы по мере необходимости можно было без серьёзных изменений 
> добавлять функционал. Конечная цель - полноценный биллинг (который 
> актуален как всегда).
> 
> Видимо стоит посмотреть на существующие решения - Katrin (молодой 
> проект, но как говорят - работает), netams (масса болезней, как мне 
> показалось) и т.д.
> 
> netams, кстати, умеет ulog, но я столкнулся с проблемой падения netams. 
> Допускаю ошибки в настройке iptables, но в случае падения netams сервер 
> становился недоступен по сети.

-- 
 Grigory Batalov,
 ALT Linux Team

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] Учёт трафика (ulogd + sqlite)
  2007-11-25  2:13   ` Aleksey Avdeev
@ 2007-11-25 16:16     ` Sergey Y. Afonin
  2007-11-25 17:14       ` Aleksey Avdeev
  2007-11-26 10:59     ` Epiphanov Sergei
  1 sibling, 1 reply; 17+ messages in thread
From: Sergey Y. Afonin @ 2007-11-25 16:16 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sunday 25 November 2007, Aleksey Avdeev wrote:

> > netams, кстати, умеет ulog, но я столкнулся с проблемой падения netams. 
> > Допускаю ошибки в настройке iptables, но в случае падения netams сервер 
> > становился недоступен по сети.
> 
>   Если задействовать только часть его (netams) функционала -- его
> поадения будут не так фатальны.
 
Зато могут получиться пробелы в учёте трафика...

-- 
С уважением, Сергей Афонин


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] Учёт трафика (ulogd + sqlite)
  2007-11-25 16:16     ` Sergey Y. Afonin
@ 2007-11-25 17:14       ` Aleksey Avdeev
  0 siblings, 0 replies; 17+ messages in thread
From: Aleksey Avdeev @ 2007-11-25 17:14 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 493 bytes --]

Sergey Y. Afonin пишет:
> On Sunday 25 November 2007, Aleksey Avdeev wrote:
> 
>>> netams, кстати, умеет ulog, но я столкнулся с проблемой падения netams. 
>>> Допускаю ошибки в настройке iptables, но в случае падения netams сервер 
>>> становился недоступен по сети.
>>   Если задействовать только часть его (netams) функционала -- его
>> поадения будут не так фатальны.
>  
> Зато могут получиться пробелы в учёте трафика...

  Пожалуй, да...

-- 

С уважением. Алексей.



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 544 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] Учёт трафика (ulogd + sqlite)
  2007-11-25 15:07   ` Grigory Batalov
@ 2007-11-25 19:50     ` Anton Farygin
  2007-11-25 20:49       ` [devel] Учёт трафика Grigory Batalov
  0 siblings, 1 reply; 17+ messages in thread
From: Anton Farygin @ 2007-11-25 19:50 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Grigory Batalov пишет:
> On Sun, 25 Nov 2007 04:01:22 +0300, Anton Farygin wrote:
> 
>> Григорий! Спасибо за поднятую тему.
>>
>> Первое, что хотелось бы сказать: независимо от итогового решения, 
>> давайте попробуем сделать то, что нужно сейчас, максимально расширяемым.
> 
>   Можешь перечислить решаемые такой системой задачи?
1) биллинг для небольшого провайдера (до 2000 клиентов)
2) учёт трафика/биллинг для домашней сети
3) учёт и ограничение трафика в организации

>   Писать "в стол" нет желания, лучше бы сразу представлять будущие
>   варианты использования.  
> 
>> Для этого мы попробуем добавить следующие прослойки:
>> 1) коллектор трафика - модуль сбора. Динамически-подгружаемый so модуль, 
>> собирающий данные об трафике с различных источников (netflow, ulog... и 
>> т.д.)
>> 2) калькулятор - модуль, позволяющий согласно настройкам - правилам, 
>> вносить подсчитываемые значения в базу данных
>> 3) Реализатор - модуль, позволяющий согласно настройкам и правилам 
>> блокировать пользователя.
>> 4) Визуализатор - видимо это на данном этапе альтератор, общающийся с 
>> системой учёта через cmdline интерфейс (в этом случае не придётся ваять 
>> библиотеки, хотя они явно не помешали бы)
>>
>> Соответственно хотелось бы изначально спроектировать систему таким 
>> образом, что бы по мере необходимости можно было без серьёзных изменений 
>> добавлять функционал. Конечная цель - полноценный биллинг (который 
>> актуален как всегда).
>>
>> Видимо стоит посмотреть на существующие решения - Katrin (молодой 
>> проект, но как говорят - работает), netams (масса болезней, как мне 
>> показалось) и т.д.
>>
>> netams, кстати, умеет ulog, но я столкнулся с проблемой падения netams. 
>> Допускаю ошибки в настройке iptables, но в случае падения netams сервер 
>> становился недоступен по сети.
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Devel mailing list
> Devel@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] Учёт трафика
  2007-11-25 19:50     ` Anton Farygin
@ 2007-11-25 20:49       ` Grigory Batalov
  2007-11-26  8:05         ` Slava Semushin
  2007-11-26  8:08         ` Anton Farygin
  0 siblings, 2 replies; 17+ messages in thread
From: Grigory Batalov @ 2007-11-25 20:49 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 456 bytes --]

On Sun, 25 Nov 2007 22:50:41 +0300, Anton Farygin wrote:

> >   Можешь перечислить решаемые такой системой задачи?

> 1) биллинг для небольшого провайдера (до 2000 клиентов)
> 2) учёт трафика/биллинг для домашней сети
> 3) учёт и ограничение трафика в организации

  Как я понимаю, пункт 3 означает выполнение некоторых активных
  действий (заблокировать или ужать канал) при переполнении
  счётчиков?

-- 
 Grigory Batalov,
 ALT Linux Team

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] Учёт трафика
  2007-11-25 20:49       ` [devel] Учёт трафика Grigory Batalov
@ 2007-11-26  8:05         ` Slava Semushin
  2007-11-26  8:08         ` Anton Farygin
  1 sibling, 0 replies; 17+ messages in thread
From: Slava Semushin @ 2007-11-26  8:05 UTC (permalink / raw)
  To: ALT Linux Team development discussions

26.11.07, Grigory Batalov<bga / altlinux.org> написал(а):
[...]
>   Как я понимаю, пункт 3 означает выполнение некоторых активных
>   действий (заблокировать или ужать канал) при переполнении
>   счётчиков?

(Надеюсь, что в тему)
Кстати, есть проект http://sourceforge.net/projects/trafitizer/, у
которого русскоязычный автор и который даже просил посмотреть его код
и помочь в улучшении проекта.


-- 
+ Slava Semushin | slava.semushin @ gmail.com
+ ALT Linux Team | php-coder @ altlinux.ru

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] Учёт трафика
  2007-11-25 20:49       ` [devel] Учёт трафика Grigory Batalov
  2007-11-26  8:05         ` Slava Semushin
@ 2007-11-26  8:08         ` Anton Farygin
  1 sibling, 0 replies; 17+ messages in thread
From: Anton Farygin @ 2007-11-26  8:08 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Grigory Batalov пишет:
> On Sun, 25 Nov 2007 22:50:41 +0300, Anton Farygin wrote:
> 
>>>   Можешь перечислить решаемые такой системой задачи?
> 
>> 1) биллинг для небольшого провайдера (до 2000 клиентов)
>> 2) учёт трафика/биллинг для домашней сети
>> 3) учёт и ограничение трафика в организации
> 
>   Как я понимаю, пункт 3 означает выполнение некоторых активных
>   действий (заблокировать или ужать канал) при переполнении
>   счётчиков?

Да.



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] Учёт трафика (ulogd + sqlite)
  2007-11-25  2:13   ` Aleksey Avdeev
  2007-11-25 16:16     ` Sergey Y. Afonin
@ 2007-11-26 10:59     ` Epiphanov Sergei
  1 sibling, 0 replies; 17+ messages in thread
From: Epiphanov Sergei @ 2007-11-26 10:59 UTC (permalink / raw)
  To: ALT Linux Team development discussions

В сообщении от Sunday 25 November 2007 05:13:59 Aleksey Avdeev написал(а):
> > netams, кстати, умеет ulog, но я столкнулся с проблемой падения netams.
> > Допускаю ошибки в настройке iptables, но в случае падения netams сервер
> > становился недоступен по сети.
>
>   Если задействовать только часть его (netams) функционала -- его
> поадения будут не так фатальны.

С 3.4.0rc2 действительно, возможны проблемы, так как серьёзно переписана. Мне 
тут навесили багов, но часть из них мне сходу не решить, нужно время. Тогда 
проще достать версию 3.3.5 из архивов Сизифа и использовать её. Та версия 
более устойчива в работе (за год работы ни одного падения). Кроме того, 
netams позволяет тащить данные через iptables, не разрушая поток данных. То 
есть при его падении данные не блокируются.

-- 
С уважением, Епифанов Сергей

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] Учёт трафика (ulogd + sqlite)
  2007-11-25  1:01 ` Anton Farygin
  2007-11-25  2:13   ` Aleksey Avdeev
  2007-11-25 15:07   ` Grigory Batalov
@ 2007-11-26 17:30   ` Grigory Batalov
  2007-11-27  6:06     ` Vladimir V. Kamarzin
  2 siblings, 1 reply; 17+ messages in thread
From: Grigory Batalov @ 2007-11-26 17:30 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 2205 bytes --]

On Sun, 25 Nov 2007 04:01:22 +0300, Anton Farygin wrote:

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

  Вот я почитал, что понимается под словом "биллинг", и решил, что
  заниматься этим сейчас не стоит. Имеющиеся проекты монолитны, тащить
  кого-то из них целиком в Office Server не вижу смысла.

> Для этого мы попробуем добавить следующие прослойки:
> 1) коллектор трафика - модуль сбора. Динамически-подгружаемый so модуль, 
> собирающий данные об трафике с различных источников (netflow, ulog... и 
> т.д.)
> 2) калькулятор - модуль, позволяющий согласно настройкам - правилам, 
> вносить подсчитываемые значения в базу данных
> 3) Реализатор - модуль, позволяющий согласно настройкам и правилам 
> блокировать пользователя.
> 4) Визуализатор - видимо это на данном этапе альтератор, общающийся с 
> системой учёта через cmdline интерфейс (в этом случае не придётся ваять 
> библиотеки, хотя они явно не помешали бы)
> 
> Соответственно хотелось бы изначально спроектировать систему таким 
> образом, что бы по мере необходимости можно было без серьёзных изменений 
> добавлять функционал. Конечная цель - полноценный биллинг (который 
> актуален как всегда).

  Ну да, если создавать полноценный биллинг, то его нужно изначально
  проектировать. Я в этом смысле "не в теме", может быть кто-то другой
  хочет заняться?

> Видимо стоит посмотреть на существующие решения - Katrin (молодой 
> проект, но как говорят - работает), netams (масса болезней, как мне 
> показалось) и т.д.

  Вот ещё вариант:
  http://abills.net.ua/wiki/doku.php?id=abills:docs:features:ru

> netams, кстати, умеет ulog, но я столкнулся с проблемой падения netams. 
> Допускаю ошибки в настройке iptables, но в случае падения netams сервер 
> становился недоступен по сети.

> >   Мне нужно написать модуль альтератора для учёта трафика в рамках
> > Office Server. Оцените идею, кто в теме.
> > 
> >   Наиболее простым кажется использовать ulogd и sqlite, поскольку это
> > самодостаточные пакеты, и между ними не требуется прослойки.

-- 
 Grigory Batalov,
 ALT Linux Team

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] Учёт трафика (ulogd + sqlite)
  2007-11-26 17:30   ` [devel] Учёт трафика (ulogd + sqlite) Grigory Batalov
@ 2007-11-27  6:06     ` Vladimir V. Kamarzin
  0 siblings, 0 replies; 17+ messages in thread
From: Vladimir V. Kamarzin @ 2007-11-27  6:06 UTC (permalink / raw)
  To: ALT Linux Team development discussions

>>>>> On 26 Nov 2007 at 22:30 "GB" == Grigory Batalov writes:

 GB>   Вот ещё вариант:
 GB>   http://abills.net.ua/wiki/doku.php?id=abills:docs:features:ru

Смотрел его года полтора назад - ловил глюки с пропаданием денег со счёта и
прочее. Писано бздишником. Везде захардкодено /usr/abills, чтобы нормально
разложить по FHS, придётся повозиться. Некоторые наработки лежат в
git.alt:/people/vvk/packages/abills.git

-- 
vvk


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [devel] Учёт трафика (ulogd + sqlite)
  2007-11-24 17:08     ` Peter V. Saveliev
@ 2007-11-30 14:29       ` Максим Иванов
  0 siblings, 0 replies; 17+ messages in thread
From: Максим Иванов @ 2007-11-30 14:29 UTC (permalink / raw)
  To: ALT Linux Team development discussions

> С помощью flow-tools ловить и анализировать. И/или складывать в rrd (это на
> тему "не чистят").
>
> Пробегал тут ещё очень симпатичный готовый viewer к этому.

А можно ссылку на Viewer?


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2007-11-30 14:29 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-11-24 14:26 [devel] Учёт трафика (ulogd + sqlite) Grigory Batalov
2007-11-24 15:40   ` Grigory Batalov
2007-11-24 17:08     ` Peter V. Saveliev
2007-11-30 14:29       ` Максим Иванов
2007-11-24 16:47 ` Michael Shigorin
2007-11-25  1:01 ` Anton Farygin
2007-11-25  2:13   ` Aleksey Avdeev
2007-11-25 16:16     ` Sergey Y. Afonin
2007-11-25 17:14       ` Aleksey Avdeev
2007-11-26 10:59     ` Epiphanov Sergei
2007-11-25 15:07   ` Grigory Batalov
2007-11-25 19:50     ` Anton Farygin
2007-11-25 20:49       ` [devel] Учёт трафика Grigory Batalov
2007-11-26  8:05         ` Slava Semushin
2007-11-26  8:08         ` Anton Farygin
2007-11-26 17:30   ` [devel] Учёт трафика (ulogd + sqlite) Grigory Batalov
2007-11-27  6:06     ` Vladimir V. Kamarzin

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git