[РЕШЕНО] Программа для сохранения статистики о сет. трафике в БД.
oznobin 23 октября, 2008 - 10:16
Доброго времени суток, подскажите, пожалуйста, программу для сбора и сохранения статистики о трафике, проходящем через определенный сет. интерфейс, в БД. Нужны поля: дата,время,saddr,daddr,sport,dport,proto(TCP|UDP),размер.
»
- Для комментирования войдите или зарегистрируйтесь
Может это?
net-analyzer/ntop
Я ♥ Gentoo & Funtoo
ipcad
ipcad
я не нашел данных о дате и
я не нашел данных о дате и времени прохождения пакета в выводе ipcad.
rsh localhost show ip accounting
Source Destination Packets Bytes
212.220.{***}.{***} 216.68.42.136 4 202
.....
iptables + какой либо из
iptables + какой либо из коллекторов netflow (net-analyzer/flow-tools)
NetAms (www.netams.com) Даже
NetAms (www.netams.com)
Даже красивые отчетики строить умеет.
С уважением.
netams ставил, не сохраняет в
netams ставил, не сохраняет в БД время, требуется много времени для настройки (получение статистики по многим портам), не нашел возможность построения отсчета за определенный период (только день, неделя и месяц). Не нашел в БД полей время, протокол.
mysql> DESC raw;
+------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------------+------+-----+---------+-------+
| unit_oid | int(10) unsigned | NO | MUL | NULL | |
| policy_oid | int(10) unsigned | NO | MUL | NULL | |
| t_from | int(10) unsigned | NO | MUL | NULL | |
| t_to | int(10) unsigned | NO | MUL | NULL | |
| bytes_in | bigint(20) unsigned | YES | | NULL | |
| bytes_out | bigint(20) unsigned | YES | | NULL | |
+------------+---------------------+------+-----+---------+-------+
mysql> SHOW TABLES;
+------------------+
| Tables_in_netams |
+------------------+
| events |
| oids |
| quota |
| raw |
| summary |
+------------------+
5 rows in set (0.00 sec)
mysql> DESC summary;
+------------+-----------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-----------------------+------+-----+---------+-------+
| prefix | enum('M','W','D','H') | NO | PRI | NULL | |
| unit_oid | int(10) unsigned | NO | PRI | NULL | |
| policy_oid | int(10) unsigned | NO | PRI | NULL | |
| t_from | int(10) unsigned | NO | PRI | NULL | |
| bytes_in | bigint(20) unsigned | YES | | NULL | |
| bytes_out | bigint(20) unsigned | YES | | NULL | |
+------------+-----------------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
mysql> SELECT * FROM summary LIMIT 1;
+--------+----------+------------+------------+----------+-----------+
| prefix | unit_oid | policy_oid | t_from | bytes_in | bytes_out |
+--------+----------+------------+------------+----------+-----------+
| H | 99759 | 313062 | 1209358800 | 674153 | 10788348 |
+--------+----------+------------+------------+----------+-----------+
Для моих целей netams не подходит, нет нужный полей в БД.
.
IMHO - IPtables+LOG/ULOG
ага, если нет готового
ага, если нет готового решения, то придется так и поступить, тем более, что iptables может писать сразу в БД, и с датой и временем вопрос решится.
Из руководства.
LOG -- действие, которое служит для журналирования отдельных пакетов и событий. В журнал могут заноситься заголовки IP пакетов и другая интересующая вас информация. Информация из журнала может быть затем прочитана с помощью dmesg или syslogd либо с помощью других программ. Превосходное средство для отладки ваших правил. Неплохо было бы на период отладки правил вместо действия DROP использовать действие LOG, чтобы до конца убедиться, что ваш брандмауэр работает безупречно. Обратите ваше внимание так же на действие ULOG, которое наверняка заинтересует вас своими возможностями, поскольку позволяет выполнять запись журналируемой информации не в системный журнал, а в базу данных MySQL и т.п..
http://www.shutdown.ru/doc/iptables-tutorial.html#KERNELSETUP
(может кому пригодится)
то что надо...outland ~ #
то что надо...
outland ~ # tail -n 1 -f /var/log/messages
Oct 24 16:16:41 outland IPTABLES_123IN=eth0 OUT= MAC=00:16:e3:00:ae:db:00:19:5b:72:40:0e:08:00 SRC=192.168.1.11 DST=192.168.1.4 LEN=52 TOS=0x10 PREC=0x00 TTL=64 ID=18068 DF PROTO=TCP SPT=55064 DPT=22 WINDOW=8455 RES=0x00 ACK URGP=0 OPT (0101080A3A2512B30BDDB7CA).
Добавлял: iptables -A INPUT -p tcp -j LOG --log-tcp-options --log-prefix "IPTABLES_123".
структура БД ulogd:
mysql> DESC ulog;
+---------------+----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+----------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| raw_mac | varchar(80) | YES | | NULL | |
| oob_time_sec | int(10) unsigned | YES | | NULL | |
| oob_time_usec | int(10) unsigned | YES | | NULL | |
| oob_prefix | varchar(32) | YES | | NULL | |
| oob_mark | int(10) unsigned | YES | | NULL | |
| oob_in | varchar(32) | YES | | NULL | |
| oob_out | varchar(32) | YES | | NULL | |
| ip_saddr | int(10) unsigned | YES | | NULL | |
| ip_daddr | int(10) unsigned | YES | | NULL | |
| ip_protocol | tinyint(3) unsigned | YES | | NULL | |
| ip_tos | tinyint(3) unsigned | YES | | NULL | |
| ip_ttl | tinyint(3) unsigned | YES | | NULL | |
| ip_totlen | smallint(5) unsigned | YES | | NULL | |
| ip_ihl | tinyint(3) unsigned | YES | | NULL | |
| ip_csum | smallint(5) unsigned | YES | | NULL | |
| ip_id | smallint(5) unsigned | YES | | NULL | |
| ip_fragoff | smallint(5) unsigned | YES | | NULL | |
| tcp_sport | smallint(5) unsigned | YES | | NULL | |
| tcp_dport | smallint(5) unsigned | YES | | NULL | |
| tcp_seq | int(10) unsigned | YES | | NULL | |
| tcp_ackseq | int(10) unsigned | YES | | NULL | |
| tcp_window | smallint(5) unsigned | YES | | NULL | |
| tcp_urg | tinyint(4) | YES | | NULL | |
| tcp_urgp | smallint(5) unsigned | YES | | NULL | |
| tcp_ack | tinyint(4) | YES | | NULL | |
| tcp_psh | tinyint(4) | YES | | NULL | |
| tcp_rst | tinyint(4) | YES | | NULL | |
| tcp_syn | tinyint(4) | YES | | NULL | |
| tcp_fin | tinyint(4) | YES | | NULL | |
| udp_sport | smallint(5) unsigned | YES | | NULL | |
| udp_dport | smallint(5) unsigned | YES | | NULL | |
| udp_len | smallint(5) unsigned | YES | | NULL | |
| icmp_type | tinyint(3) unsigned | YES | | NULL | |
| icmp_code | tinyint(3) unsigned | YES | | NULL | |
| icmp_echoid | smallint(5) unsigned | YES | | NULL | |
| icmp_echoseq | smallint(5) unsigned | YES | | NULL | |
| icmp_gateway | int(10) unsigned | YES | | NULL | |
| icmp_fragmtu | smallint(5) unsigned | YES | | NULL | |
| pwsniff_user | varchar(30) | YES | | NULL | |
| pwsniff_pass | varchar(30) | YES | | NULL | |
| ahesp_spi | int(10) unsigned | YES | | NULL | |
+---------------+----------------------+------+-----+---------+----------------+
42 rows in set (0.00 sec)
mysql> SELECT * FROM ulog LIMIT 1;
+----+---------+--------------+---------------+------------+----------+--------+---------+------------+------------+-------------+--------+--------+-----------+--------+---------+-------+------------+-----------+-----------+-----------+------------+------------+---------+----------+---------+---------+---------+---------+---------+-----------+-----------+---------+-----------+-----------+-------------+--------------+--------------+--------------+--------------+--------------+-----------+
| id | raw_mac | oob_time_sec | oob_time_usec | oob_prefix | oob_mark | oob_in | oob_out | ip_saddr | ip_daddr | ip_protocol | ip_tos | ip_ttl | ip_totlen | ip_ihl | ip_csum | ip_id | ip_fragoff | tcp_sport | tcp_dport | tcp_seq | tcp_ackseq | tcp_window | tcp_urg | tcp_urgp | tcp_ack | tcp_psh | tcp_rst | tcp_syn | tcp_fin | udp_sport | udp_dport | udp_len | icmp_type | icmp_code | icmp_echoid | icmp_echoseq | icmp_gateway | icmp_fragmtu | pwsniff_user | pwsniff_pass | ahesp_spi |
+----+---------+--------------+---------------+------------+----------+--------+---------+------------+------------+-------------+--------+--------+-----------+--------+---------+-------+------------+-----------+-----------+-----------+------------+------------+---------+----------+---------+---------+---------+---------+---------+-----------+-----------+---------+-----------+-----------+-------------+--------------+--------------+--------------+--------------+--------------+-----------+
| 1 | 00 | 1224845431 | 383698 | | 0 | eth0 | | 3232235787 | 3232235780 | 6 | 16 | 64 | 52 | 5 | 15968 | 30964 | 16384 | 55064 | 22 | 835119350 | 635085989 | 8455 | 0 | NULL | 1 | 0 | 0 | 0 | 0 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL |
+----+---------+--------------+---------------+------------+----------+--------+---------+------------+------------+-------------+--------+--------+-----------+--------+---------+-------+------------+-----------+-----------+-----------+------------+------------+---------+----------+---------+---------+---------+---------+---------+-----------+-----------+---------+-----------+-----------+-------------+--------------+--------------+--------------+--------------+--------------+-----------+
1 row in set (0.00 sec)