Нет у меня всё нормально работало, только новую версию ещё не опробовал. Завтра обязательно попробую, отпишусь
Система учета интернет-трафика
kisil, ты не тяни с новой версией базы.))) Я сейчас готовлю переход на уплотнение данных (каждый год в новой таблице, а количество хранимых годов управляется через настройки), так что ты тимлидер группы тестирования.)))
Кстати kisil, для того что бы добавлять самому реквесты (request) и принимать участие в обсуждении запросов, достаточно только зарегистрироваться на Redmine TrafStat.
Вопрос к пользователям:
Система стала с помощью небольшого напильника (в основном пути в скриптах). Поставил сброс статистики через 5 минут в кроне, и ночью случилась беда: видно perl скрипт не успел занести данные в базу и был вызван повторно в результате утром бред в статистике и куча запущенных процессов... :(
кто-то с таким сталкивался?
Странно, выгрузка статистики о трафике из коллектора в базу занимает секунды и по идее скрипт выгрузки зависнуть не мог. Он прямолинеен и как таковой логики в нем нет. Если есть возможность, скажи какие процессы висят в системе ("куча запущенных процессов")? И что за бред в выводе статистики?
Да, весь вывод логов от системы сбора информации о трафике ("демон коллектор" трафика и скрипты выгрузки данных) отправляют данные в "syslog" с уровнем "local0". Я для сбора всей инфы добавил в "/etc/syslog.conf" следующую строчку:
# Trafd related logs:
local0.* -/var/log/trafd
В данном логе отражается вся инфа о работе коллектора съема трафика и скриптах выгрузки данных.
Маленькая просьба по web интерфейсу:
указать что базу создавать надо в кои8 кодировке и просьба добавить после установления связи с базой строку:
mysql_query("SET NAMES 'koi8r';");
- установка кодировки связи с базой
Сам этот вопрос досконально не прорабатывал, но если MySQL работает только для обслуживания базы "TrafStat" то думаю что лучше будет добавить строку локализации в конфиг для MySQL в файл "/etc/my.cnf" следующего вида:
default-character-set = koi8rИли что то подобное.
P.S. а вообще не стесняйтесь сами добавлять запросы на баги и улучшения функционала. Для этого и была развернута система управления проектом TrafStat.
По этому oleg_krv если есть время, то добавь запрос по этой неточности в TrafStat, что бы он так сказать не потерялся.
Serg79 сегодня в 13.35 запустил оновленую систему. Базу не создавал новую а переконвертировал с помощью скрипта. Впечетляет база с 80 метров стала весить 13. Но вот что мне пишет syslog
Aug 17 13:40:05 rm-proxy trafsave.pl[10488]: WARNING: Protocol is not supported: srcIp = 192.168.0.18, srcPort = -1, dstIp = 192.168.0.1, dstPort = -1, pId = icmp
Aug 17 13:45:06 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 192.168.0.18, srcPort = -1, dstIp = 192.168.0.1, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 95.52.219.147, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 93.81.167.224, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 77.222.19.179, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 114.40.178.231, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 123.49.46.11, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 59.161.103.10, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 83.28.26.176, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 87.251.142.11, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 213.16.105.133, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 83.2.170.195, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 91.209.51.149, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 212.72.100.130, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 124.182.25.223, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 183.178.126.81, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 189.27.133.37, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 85.49.227.138, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 219.85.29.7, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 212.178.11.8, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 90.58.89.240, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 86.7.3.213, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 59.145.117.22, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 216.108.169.145, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 178.164.181.54, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 193.239.179.10, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
Aug 17 13:45:08 rm-proxy trafsave.pl[11700]: WARNING: Protocol is not supported: srcIp = 78.37.238.138, srcPort = -1, dstIp = 192.168.0.160, dstPort = -1, pId = icmp
К чему бы это и как с ним боротса???
К чему бы это и как с ним боротса???
На данный момент обрабатываются только протоколы TCP и UDP, а остальные протоколы игнорируются, но если другой протокол обнаружен кидается WARNING в лог. Учет трафика по протоколам отличным от TCP и UDP требует дополнительной проработки, данный вопрос я пока отложил на потом.
Надо добавить примерно следующее правило для съема трафика коллектору:
Файл: /etc/trafd/trafctl.conf
trafd_eth0_expression="(tcp and (portrange 1-1023 and not broadcast)) or (udp and (portrange 1-1023 and not broadcast))"Хорошо Серг79. Попробуем поправить. Я создал вопрос на баг трекере по этой проблеме что удалять его. Посмотри?
Статистику какую надо собирать?
Статистику какую надо собирать?
Ну тут все без изменений, надо посмотреть сколько будет весить база после сбора статистики в течении суток.))
Для большей загрузки базы можно фиксировать весь TCP и UDP трафик, т.е.:
Файл: /etc/trafd/trafctl.conf
trafd_eth0_expression="tcp or udp"oleg_krv, спасибо что запрос про koi8r добавил.
А вообще, в дальнейшем однозначно надо будет переходить на utf8 и добавлять поддержку нескольких языков в WEB-интерфейсе.
Если пригодитса могу помочь перевести на украинский :D
Надо соответствующий запрос завести, что то подобное "поддержка разных языков WEB-интерфейса". И наверно данный функционал нужно реализовывать в версии "0.1-beta" (т.е. в текущей активной). Т.к. потом данный функционал будет сложнее прикрутить, больше кода придется перелопачивать.
Протестировал выполнение скрипта и нашел причину "тупления" выполнения cron скрипта - запись в базу данных иногда доходит до 2-3 сек на 100 записей :( , иногда в начале запроса очень быстро, а под конец еще медленней :(
может кто-то скинуть свои настройки сервера mySQL, а то по рецептах с инета не помогает, или ссылку на нормальную статью настройки, а то не верю что хоть и атом- но двоядренный так может тормозить :(
oleg_krv, у тебя с каким периодом 'cron' запускает выгрузку данных? Должно быть каждые 5 минут:
# Run trafcron.pl
*/5 * * * * /usr/libexec/trafstat/trafcron.pl 2>&1 > /dev/nullЕсли скрипт выгрузки данных и будет выполнятся в течении 2 - 10 сек. каждые пять минут, то это не страшно.
У меня работает на мускуле с коробки никаких донастроек я его не проводил. только запустил скрипт по настройке безопасности и всё. А что за система? И когда будет идти выгрузка в базу запусти top и посмотри что занимает проца?
Система :
Operating system Ubuntu Linux 10.04
Webmin version 1.510
Time on system Wed Aug 18 13:26:26 2010
Kernel and CPU Linux 2.6.32-24-server on x86_64
Processor information Intel(R) Atom(TM) CPU D510 @ 1.66GHz, 4 cores
ОЗУ 2Гб
я сейчас играюсь и запускаю ручками и прописал в скрипт счетчики и вывод времени после каждых 100 итераций цикла записи в базу
Вот часть лога
[*]
28:29 - Выгружаем дамп
28:29 - Начало обработки
28:29 - Сбросили дамп
28:29 - Получили лог файл - off
28:29 - Начало цикла записи
28:30 - 100 запись
28:30 - 200 запись
28:30 - 300 запись
28:30 - 400 запись
28:31 - 500 запись
28:31 - 600 запись
28:31 - 700 запись
28:31 - 800 запись
28:32 - 900 запись
28:32 - 1000 запись
28:32 - 1100 запись
28:33 - 1200 запись
28:33 - 1300 запись
28:34 - 1400 запись
28:35 - 1500 запись
28:35 - 1600 запись
28:36 - 1700 запись
28:37 - 1800 запись
28:37 - 1900 запись
28:38 - 2000 запись
28:38 - 2100 запись
Часть вывода top:
[*]
Tasks: 159 total, 1 running, 158 sleeping, 0 stopped, 0 zombie
Cpu(s): 17.7%us, 8.0%sy, 0.0%ni, 73.6%id, 0.0%wa, 0.2%hi, 0.4%si, 0.0%st
Mem: 2040568k total, 1571404k used, 469164k free, 180008k buffers
Swap: 5976056k total, 268440k used, 5707616k free, 584012k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10046 mysql 20 0 473m 53m 7148 S 98 2.7 2:33.13 mysqld
19387 root 20 0 47812 7700 3092 S 3 0.4 0:01.27 trafsave.pl
20622 trafd 20 0 20480 5616 2532 S 3 0.3 2:02.21 trafd
19225 oleg 20 0 19220 1444 1048 R 1 0.1 0:00.75 top
1 root 20 0 23696 1620 1080 S 0 0.1 0:05.30 init
2 root 20 0 0 0 0 S 0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0 0.0 0:01.70 migration/0
4 root 20 0 0 0 0 S 0 0.0 0:01.18 ksoftirqd/0
Видно что работает mysql толко на одном потоке :(
oleg_krv, что то много записей 'trafd' отдает. Покажи что он ('trafd') выкидывает в лог после сброса статистики в дамп. Должно быть примерно следующее:
...
Aug 18 14:50:02 vm-linux trafctl[853]: (eth0) signaling trafd to backup
Aug 18 14:50:02 vm-linux trafd[397]: (eth0) stats (real/user/sys/pkts/drops) since start: 3417.86/0.10/0.49/659/0, since last info: 300.13/0.00/0.05/11/0
Aug 18 14:50:02 vm-linux trafd[871]: (eth0) 3 records append to /trafd.eth0
Aug 18 14:50:02 vm-linux trafd[397]: (eth0) 3 records cleared
...Да еще oleg_krv, покажи свою структуру таблицы 'traffic'. Должно быть следующее:
mysql> describe traffic;
+----------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+-------+
| date | datetime | NO | MUL | NULL | |
| srcIp | int(10) unsigned | NO | MUL | NULL | |
| dstIp | int(10) unsigned | NO | | NULL | |
| dstPort | int(11) | NO | | NULL | |
| pId | tinyint(4) | NO | | NULL | |
| inBytes | int(10) unsigned | NO | | NULL | |
| outBytes | int(10) unsigned | NO | | NULL | |
+----------+------------------+------+-----+---------+-------+
7 rows in set (0.04 sec)Aug 18 14:16:03 sigmack trafd[25249]: (eth1) traffic collector started
Aug 18 14:16:08 sigmack trafctl[25257]: (eth1) signaling trafd to backup
Aug 18 14:16:08 sigmack trafd[25249]: (eth1) stats (real/user/sys/pkts/drops) since start: 5.57/0.00/0.07/3588/0, since last info: 5.57/0.00/0.07/3588/0
Aug 18 14:16:08 sigmack trafd[25277]: (eth1) 1035 records append to /trafd.eth1
Aug 18 14:16:08 sigmack trafd[25249]: (eth1) 1035 records cleared
А можно Ваши настройки для trafd?
А как сбросить статистику для trafd? Чтобы перезапустить службу и попробовать с нуля, я работаю просто в ручном режиме а не по cron-u
oleg_krv, ну 1035 записей это не много. А 'trafd' после выгрузки данных в дамп сбрасывает всю свою статистику. Ты можешь примерно сказать сколько времени выполняется скрипт выгружающий данные, 10 сек, минуту или 10 минут? Так же ты не показал структуру таблицы 'traffic' в базе.
Вот мои настройки для 'trafd':
[root@vm-linux ~]# cat /etc/trafd/trafctl.conf
### sample configuration file for trafctl
### copy to trafctl.conf and edit
### $RISS: trafd/trafctl/trafctl.conf-sample.in,v 1.2 2004/11/17 09:21:02 count Exp $
### defaults
### interfaces to run trafd on. if empty, defaults to
### all interfaces that are up, excluding those matching exclude_interfaces
interfaces="eth0"
### intefaces for exclusion, regexp, this default is suitable for us
#exclude_interfaces="lo|(lo|tun|gif|nge|vmnet|bridge|gre|enc)[0-9]+"
#rotate_savefile_prefix="/var/spool/trafd/trafd."
### number of savefiles to keep when rotating
#rotate_num=5
#trafd_program="/usr/sbin/trafd"
#trafslice_program="/usr/sbin/trafslice"
### don't put interfaces into promisc mode, restore on start,
### change credentials to those of user "nobody"
trafd_flags="-p -r -u nobody -g nobody -C"
#trafd_pid_prefix="/var/spool/trafd/run/trafd."
#trafd_sock_prefix="/var/spool/trafd/tmp/trafd."
### pcap expression
#trafd_expression=""
### slice option
#split_period="month"
#split_prefix_month="/var/spool/trafd/%Y%m.trafd."
### you can cpecify overrides for parameters of particular interface
#trafd_an0_flags=""
#trafd_an0_expression=""
#trafd_eth0_expression="(tcp and (portrange 1-1023 and not broadcast)) or (udp and (portrange 1-1023 and not broadcast))"
trafd_eth0_expression="tcp or udp"
Вот конфиг MySQL, показываю только то что касается самого 'mysqld'. Это у меня для тестовой конфигурации и поэтому все параметры для MySQL указаны по минимуму.
# The MySQL server
[mysqld]
port = 3306
socket = /var/run/mysql/mysql.sock
skip-locking
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K
# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (using the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking
server-id = 1
# Uncomment the following if you want to log updates
#log-bin=mysql-bin
# Disable Federated by default
skip-federated
# Uncomment the following if you are NOT using BDB tables
#skip-bdb
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /var/lib/mysql/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /var/lib/mysql/
#innodb_log_arch_dir = /var/lib/mysql/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
Serg79, буду колупать MySQL а то сразу после перезагрузки сервиса быстрее выполняется а потом замедляется
Работа trafcron.pl
6:21 - Выгружаем дамп
6:21 - Начало обработки
6:21 - Сбросили дамп
6:21 - Получили лог файл - off
6:21 - Начало цикла записи
6:26 - 100 запись
6:32 - 200 запись
6:39 - 300 запись
6:45 - 400 запись
6:51 - 500 запись
6:57 - 600 запись
7:3 - 700 запись
7:10 - 800 запись
7:16 - 900 запись
7:24 - 1000 запись
7:31 - 1100 запись
7:39 - 1200 запись
7:45 -Обработано 1284 записей
Запись в Log-е
Aug 18 15:06:21 sigmack trafctl[32069]: (eth1) signaling trafd to backup
Aug 18 15:06:21 sigmack trafd[32046]: (eth1) stats (real/user/sys/pkts/drops) since start: 27.88/0.09/0.25/15484/0, since last info: 27.88/0.09/0.25/15484/0
Aug 18 15:06:21 sigmack trafd[32089]: (eth1) 1296 records append to /trafd.eth1
Aug 18 15:06:21 sigmack trafd[32046]: (eth1) 1296 records cleared
+8 WARNING
Спасибо за помощь - буду искать решение по MySQL