Чего-то не могу найти в Инете подходящего решения. Задача: загонять данные из squid'ового access.log'а данные в MySQL на лету. Решения, которые я видел были такими - копировать access.log в другое место, обнулять его, обрабатывать скопированный файл. Плохое (неподходящее) решение.
Интересует способ делать это именно на лету, да так, чтобы данные писались и в access.log и в MySQL.
могу предложить pglogger который можеть класть логи сквида и апача но опять же не в mysql а postgresql. Хотя переписать его на mysql не составит особого труда или все таки рассмотреть переход с mysql на postgresql ... очевидное приемуществом будет скорость
У нас в организации работает следующая связка:
1. Патч для сквида, позволяющий паралельно с access.log выводить данные в очередь fifo.
2. Скрипт на перле, обрабатывающий очередь и загоняющий все данные в БД mysql.
3. Скрипт на перле, обеспечивающий аутентификацию пользователей и подключаемый как внешний модуль аутентификации к сквиду. Работает с той же БД.
Данные в очередь попадают не после окончания процесса скачивания ресурса (как в acess.log), а во время. Это позволяет достаточно оперативно контролировать объем скачанного. В связке с внешним скриптом аутентификации появляется возможность автоматической блокировки пользователей при достижении заданных лимитов.
Если интересно - могу выслать пакет на мыло или выложить на ftp.
> И насколько приемлимо ворочается у Тебя MySQL при запросах?
При каких?
Я так понимаю, проблемы со скоростью потенциально могут возникнуть в двух случаях: 1. При добавлении информации. Это решается использованием INSERT DELAYED. 2. При выборке. Это решается тщательным проектированием структуры БД и использованием технологий OLAP.
К сожалению, тут нельзя подписаться на "уведомление по емейл при ответе на тему", поэтому просьба продублировать инфу в новой ветке (старая к тому моменту уже может скрыться за горизонтом)