Протоколирование пакетов в базу данных
Протоколирование пакетов в базу данных предоставляет
более мощную возможность в плане хранения и анализа собранного IP
трафика. Для использования этой опции вы должны указать:
Способ хранения IP адресов
- Текстовый способ. Для записи пакетов в базу
данных поле IP адреса источника (src_ip) и получателя (dst_ip)
должно быть текстового формата char(16).
- Безнаковый числовой способ (unsigned int). При
записи пакетов в базу данных, IP адреса источника (src_ip) и
получателя (dst_ip) "упаковываются" в беззнаковое 32-битное
представление, что позволяет сократить размер файла базы данных и
увеличить скорость выборки данных. Для преобразования беззнакового
32-битного IP-адреса (например 3647704897) в привычное
десятично-точечное представление (217.107.143.65) в MySQL
существует функция INET_NTOA, которой можно воспользоваться вот
так:
select filterid, proto, INET_NTOA(src_ip), src_port, INET_NTOA(dst_ip), dst_port
from packets;
- Знаковый числовой способ (signed int). При
записи пакетов в базу данных, IP адреса источника (src_ip) и
получателя (dst_ip) "упаковываются" в знаковое 32-битное
представление. Этот тип данных полезен при работе с СУБД, которые
не поддерживают тип unsigned int (например, Microsoft SQL
Server)
Обратите
внимание
- Вы должны вручную создать таблицу для
протоколирования пакетов перед тем как TMeter начнет записывать
собранные пакеты в базу данных.
- В Microsoft SQL Server отсутствует 4-x байтовый тип
данных unsigned int, поэтому для числового способа хранения
IP-адреса следует выбрать тип bigint, имеющий размер 8 байт или
использовать знаковый числовой способ для хранения IP-адресов.
См также: