Здравствуйте. Прошу советов и помощи в реализации задачи. Есть сервер Debian 8 x64. На нем развернут syslog-ng, который принимает логи с сетевых железок. Руководство поставило задачу вести логи кто-куда ходил и когда.
Изначально настроено было писать по дням в файлы. За одни сутки набегало порядка 58 гигов информации, после сжатия tar-ом объем уменьшался до 18 Гб. Что в принципе на данный момент приемлемо. Решил прикрутить ко всем этому базу данных mysql.
Но тут наткнулся на проблему, за 2,5 часа обьем базы вырос на 9,5 Гб. что по предварительным рассчетам много больше файлового варианта хранения.
Так как я с базами данных дружу от слова - «совсем никак», прошу помощи по оптимизации схемы.
1) есть ли в mysql способ сжатия данных на лету или по рассписанию?
2) Как можно реализовать ротацию данных? в случачи если свободное место закачивается, то удаляются старые данные.
3) Может быть есть другие средства сбора логов более оптимальные?
Схема базы mysql:
CREATE TABLE logs (
host varchar(32) default NULL,
facility varchar(10) default NULL,
priority varchar(10) default NULL,
level varchar(10) default NULL,
tag varchar(10) default NULL,
datetime datetime default NULL,
program varchar(15) default NULL,
msg text,
seq bigint(20) unsigned NOT NULL auto_increment,
) TYPE=MyISAM;
Посмотрев понимаю что можно уменьшить размер полей и некоторые совсем исключить, но поле msg самое обьемное по данным, там в основном ip-адреса.
Зарание спасибо за помощь.