The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Скрипт для перевода статистики SQUID в MySQL (squid proxy mysql log statistic)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: squid, proxy, mysql, log, statistic,  (найти похожие документы)
From: Gosha <gosha-necr@yandex.ru.> Newsgroups: email Date: Mon, 27 Dec 2006 14:31:37 +0000 (UTC) Subject: Скрипт для перевода статистики SQUID в MySQL Скрипт для перевода статистики SQUID в MySQL Полностью ли вас устраивают отчеты генерируемые с помощью систем статистики (sarg и т.п.)? Если нет и вы желаете иметь возможность с помощью одного запроса на SQL создать свой собственный отчет, то может быть вам пригодиться данный скрипт. Скрипт переносит данные из лог файла squid в БД MySQL или любую другую (подправить недолго) #/bin/sh # Создаем файл с SQL командами для занесения данных в БД. # (Заносятся данные: IP адрес, время, объем полученных данных, адрес посещенной страницы) awk '{FS="[ ]+"} {print "INSERT INTO logtab (ip_addr,date_stamp,data_size,link_href) VALUES (\""$3"\","$1","$5",\""$7"\");"}' \ /tmp/squid/access.log > /tmp/tmp.squid #Обнуляем после этого лог SQUID чтобы потом не занести данные снова truncate -s 0 /tmp/squid/access.log /usr/local/mysql/bin/mysql -u MYSQL_USER --password=MYSQL_PASS -D SQUID_DB_NAME < /tmp/tmp.squid truncate -s 0 /tmp/tmp.squid #Все Файл можно занести в Cron с регулярным запуском (каждый день например) чтобы лог SQUID'а особо не разрастался, иначе скрипт будет долго работать. Пример запроса на выборку данных (объем скачанного за день) select sum(data_size)/(1024*1024) as size_t, CAST(from_unixtime(date_stamp) AS CHAR(10)) AS date_t from logtab WHERE FROM_UNIXTIME(date_stamp) LIKE "%-04-%" group by date_t; Структура таблицы для хранения данных: +------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | | auto_increment | | ip_addr | varchar(16) | NO | | | | | date_stamp | int(10) unsigned | NO | | | | | data_size | int(10) unsigned | NO | | | | | link_href | varchar(255) | NO | | | | +------------+------------------+------+-----+---------+----------------+

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, G0thic (??), 15:43, 27/12/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ещё интереснее делать это на лету через пайп.
     
  • 1.2, kait (ok), 05:07, 28/12/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Неплохо также сохранять result codes.
     
  • 1.3, kait (ok), 05:11, 28/12/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да, а примеры скриптов справедливо распределяющих потраченный трафик у Вас случайно есть?
     
  • 1.4, kait (ok), 06:36, 28/12/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И ещё: работать этот скрипт будет до первой кавычки " в access.log
     
  • 1.5, Gosha (??), 17:31, 28/12/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Насчет кавычек я думал, но каким образом они могут попасть в фай  access.log?
     
     
  • 2.6, kait (ok), 07:17, 29/12/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >Насчет кавычек я думал, но каким образом они могут попасть в фай  access.log?
    Честное слово, понятия не имею. Однако попала. Одна на 50 мегабайт логов. :-/
     
     
  • 3.14, densoro (?), 10:41, 27/04/2007 [^] [^^] [^^^] [ответить]  
  • +/
    " , к сожалению, попадаются (переношу в мускул логи havp, squid используется как родительский, но разница в формате). Приходится делать еще один прогон через sed, что бы исключить попадание " в сиквельный запрос. Поясните, каким образом прикрутить пайп ?
     

  • 1.7, Вадим (??), 12:01, 29/12/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Можно потерять часть информации, которая попадет в лог от squid между созданием tmp.squid и обнулением логов. Мне кажется надежней сделать сначала squid -k rotate , а потом уже использовать access.log.0 вместо access.log
     
  • 1.8, Вадим (??), 12:11, 29/12/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот у меня в логах "
    http://xpoint.ru/styles/Print/url("print.css")%20print
     
  • 1.9, amc (?), 18:33, 29/12/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    есть http://sourceforge.net/projects/squid-traffic который делает все, что нужно, имеет простую веб морду просмотра статистики.
     
  • 1.10, Vladimir (??), 12:32, 03/01/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А если сделать в скрипте ввод с консоли а потом
    tail -f /usr/local/squid/logs/access.log >> этотСкрипт.sh
    Должно получиться как через пайп.
     
  • 1.11, йурыкс (?), 07:17, 04/01/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    awk иногда и первую строчку может пропустить и с кавычками теряется. Такую задачу совсем не сложно грызть перловкой, можно и через пайпы. Хуже с базой, будет очень много строк.
     
  • 1.12, danil_ (ok), 17:00, 10/01/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я сначала использовал squid2mysql через pipe. Достало использовать pipe, т.к. были проблемы с перезапуском Squid (конечно, решаемые, но какое-то решение не совсем удачное...).
    Позже к счатью нашёл Mysar - пока устраивает, (пользуюсь не очень активно, но в общем-то хватает).
    Про squid-traffic не знал.. Почитаю..
     
  • 1.13, Vitaly (??), 16:02, 17/01/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    помогите - как изменить скрипт так , чтобы 3 и 5 параметр экранировались не " а '
     
  • 1.15, sad1ce (?), 17:07, 31/08/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В FreeBSD 6.2 создать пайп можно камандой mkfifo и читать уже с него ...
     
  • 1.16, tonm (??), 22:27, 07/01/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а такой же скрипт к PostrreSql имеется?
     
  • 1.17, Дамир (??), 13:31, 29/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Здравствуйте, а возможно ли установить squid на freebsd который находится на виртуальнрй машине а логи скидывать в базу которая стоит на основной машине под windowsxp, и если да то как?
     
     
  • 2.18, Вася (??), 20:31, 28/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А чё нельзя-то, бери да суй в БД по IP и порту сервера на WinXP. Гон это всё конечно, но если очень хочется то всё можно сделать.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру