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

Печать: Шрифт: Абв Абв Абв
admin 25 Апреля 2008 в 10:59:10
Скрипт для перевода статистики 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 | | | |
+------------+------------------+------+-----+---------+----------------+
Добавить сообщение
Чтобы добавлять комментарии зарeгиcтрирyйтeсь