Привет, может кто-нибудь написать скрипт парсера для rsyslog, чтобы я мог распарсить и сохранить логи MySQL proxy в базу данных? Текущий формат сообщения: Receivedat: 2013-09-27 17:11:07 Facility: 1 Priority: 5 FromHost: 172.30.0.xxx Message: 172.16.0.xxx GET http://google.co.in action=allow cache=MISS SysLogTag: web-proxy,account. Я хочу, чтобы это сохранялось в базе данных в формате: Receivedat: 2013-09-27 17:11:07 Client IP: 172.16.0.xxx Url: http://google.co.in status: MISS Provider: web-proxy.
Похоже, ты так и не получил на это ответ. Мне интересно, стоит ли поступить так же… или попробовать написать скрипт, чтобы всё привести в порядок перед тем, как покинуть router Mikrotik... например, просто оставить строки ответа на "GET http:" и "Content-Length:", а затем отправить их с помощью HTTP GET? Марк
Для справки, webproxylogtomysql.php в Proxylizer довольно хорошо справляется с записью URL-запросов, доменов и HIT/MISS-запросов в Mysql через syslog-ng. Он поставляется с небольшим скриптом-оберткой для cron, который поддерживает его работу. Скрипт принимает вывод именованного канала, передаваемого через syslog-ng, и отправляет все данные в Mysql. Остальная часть Proxylizer (генерация отчетов, рассылка и т.д.) сейчас немного не работает, особенно если вы используете PHP5, так как там много устаревших компонентов (например, ereg и использование DB.php).
Хочу поделиться своим скриптом, который конвертирует файл rsyslog mkaccess.log в формат squid. mkaccess.log: без отладочной информации, только простой формат - одна запись на строку. Здесь нет размера (фейковый размер, 1024 на строку), нет IP адреса назначения (фейковый IP 8.8.8.8), только дата и время, локальный IP и URL. Вывод можно использовать в таких инструментах для Linux, как lightsquid и т.д. #!/usr/bin/perl -w use Date::Parse;
Привет, ребята! Я написал простой однострочный скрипт, основанный на скрипте, который был опубликован почти год назад. Скрипт работал просто шикарно (я так думаю) и быстрее, чем perl-скрипт: 8 минут против более чем 10 часов. Надеюсь, эта строка поможет кому-то. Вот она: cat log_from_mikrotik.log |grep -v ‘action=deny’|awk -F"MSRRTR01 proxy:" ‘{system(“date +%s.000 -d "”$1""");print("1 "$2)}’|sed ‘:a;N;0~2!ba;s/\n/ /g;’|awk -F" " {‘print $1" “$2” “$3” TCP_MISS/200 100 “$4” “$5” - DIRECT/0.0.0.0 text/html\n\r"’} > converted.log