Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
|||||
www.lissyara.su
—> статьи
—> FreeBSD
|
|
После сборки (подразумевается что апач у Вас уже стоит - т.к. настройки я привожу для отчётов в html и выкладываемых на локальной машине) радактируем его конфиг до такого состояния: /usr/local/etc/sarg/sarg.conf
|
- конечно же никто Вам не запрещает поизгаляться над стилем отображения всего этого хозяйства - конфиг снабжён очень подробными комментариями. Запускаем командой
|
У меня логи cron`ом убираются в отдельные файлы - по месяцам, поэтому при запуске этой команды из скрипта путь подставляется автоматом. На слабых машинах работать будет относительно долго (минуты 4 лохматит месячные логи на 300 мегабайт, машина - P-IV 2GHz, причём много времени уходит на запись самих логов - генерится очень много мелких файлов)
Вот и всё :) Пользуйтесь.
размещено: 2005-09-20,
последнее обновление: 2005-09-20,
автор: lissyara
Romik, 2005-11-28 в 13:30:21
Еще бы подробнее рассказал о том, как логи cron убирает, цены бы не было =)
lissyara, 2005-11-28 в 14:16:59
Нашёл проблему, прям :)))
#!/bin/sh
#
#
#
current_year=`date '+%Y'`
current_month=`date '+%m'`
current_date=`date '+%d'`
## Sozdayem direktoiyu pod logi
log_dir="/var/old_log/${current_year}/${current_month}"
mkdir -p ${log_dir} 2>/dev/null
## ubiraem logi SQUID
cat /var/log/squid/access.log > /tmp/log.tmp
cat /dev/null > /var/log/squid/access.log
cat /tmp/log.tmp >> ${log_dir}/squid.log
ну и в crontab это хозяйство, раз в 10 минут, скажем.
ALex_hha, 2005-12-28 в 12:02:22
вот скрипты для sarg с линуха
# cat /etc/cron.daily/sarg
#!/bin/bash
exec /usr/bin/sarg \
-o /var/www/sarg/daily \
-d "$(date --date "1 day ago" +%d/%m/%Y)" > /dev/null 2>&1
exit 0
# cat /etc/cron.weekly/sarg
#!/bin/bash
LOG_FILES=
if [[ -s /var/log/squid/access.log.1.gz ]]; then
LOG_FILES="$LOG_FILES -l /var/log/squid/access.log.1.gz"
fi
if [[ -s /var/log/squid/access.log ]]; then
LOG_FILES="$LOG_FILES -l /var/log/squid/access.log"
fi
# Get yesterday's date
YESTERDAY=$(date --date "1 days ago" +%d/%m/%Y)
# Get one week ago date
WEEKAGO=$(date --date "7 days ago" +%d/%m/%Y)
exec /usr/bin/sarg \
$LOG_FILES \
-o /var/www/sarg/weekly \
-d $WEEKAGO-$YESTERDAY > /dev/null 2>&1
exit 0
# cat /etc/cron.monthly/sarg
#!/bin/bash
LOG_FILES=
if [[ -s /var/log/squid/access.log.4.gz ]]; then
LOG_FILES="$LOG_FILES -l /var/log/squid/access.log.4.gz"
fi
if [[ -s /var/log/squid/access.log.3.gz ]]; then
LOG_FILES="$LOG_FILES -l /var/log/squid/access.log.3.gz"
fi
if [[ -s /var/log/squid/access.log.2.gz ]]; then
LOG_FILES="$LOG_FILES -l /var/log/squid/access.log.2.gz"
fi
if [[ -s /var/log/squid/access.log.1.gz ]]; then
LOG_FILES="$LOG_FILES -l /var/log/squid/access.log.1.gz"
fi
if [[ -s /var/log/squid/access.log ]]; then
LOG_FILES="$LOG_FILES -l /var/log/squid/access.log"
fi
# Get yesterday's date
YESTERDAY=$(date --date "1 day ago" +%d/%m/%Y)
# Get 1 month ago date
MONTHAGO=$(date --date "1 month ago" +%d/%m/%Y)
exec /usr/bin/sarg \
$LOG_FILES \
-o /var/www/sarg/monthly \
-d $MONTHAGO-$YESTERDAY > /dev/null 2>&1
exit 0
Думаю понятно, что daily, weekly, monthly будут выполняться каждый день, раз в неделю и раз в месяц соответственно.
Единственное что, для freebsd надо поменять пути к access.log и sarg.
lissyara, 2006-01-12 в 19:17:07
Ага, а ещё неплохо бы было на shell писать - bash в FreeBSD по-дефолту отсутствует.
Вообще стандарт - shell, остальное - от лукавого.
Владимир, 2006-05-12 в 12:06:04
А во FreeBSD как сделать, чтобы bash работал?
Dilmas, 2006-05-28 в 12:11:40
Я насчёт
"несколько тысяч мелких файлов, мегов под 300 размером)." - это можно исправить, если в файле sarg.conf добавить строчку
"overwrite_report yes"
и файли будут переписываться "друг на друга", тум самым можно реально уменьшить размер генерируемых отчетов.
BAV_Lug, 2006-06-02 в 14:54:43
У меня запускается SARG два раз в день (С перезаписью отчетов). Когда мне надоело удалять вручную отчеты которые он создает, я написал вот такой простенький скриптик
#!/bin/sh
TodayDate='01'`date '+%b%Y'`-`date '+%d%b%Y'`
rm -R /var/www/html/squid-reports/${TodayDate}
и засунул его в cron
Теперь у меня только актуальные на сегодняшний день данные.
Да, вот еще, первого числа каждого месяца, я запускаю ротацию логов squid-а. Sarg запускается последний раз в месяц уже после запуска приведенного выше скрипта. Как следствие у меня остаются отчеты за предыдущий месяц.
BAV_Lug, 2006-06-02 в 14:59:54
Совсем забыл. У приведенного мною скрипта есть один бок. Если, в первый день месяца (например было воскресенье), никто не лазил в инет, то SARG генерит отчет с того дня как была первая запись в логе сквида :( Как с этим боротся (кроме как правкой начальной даты в скрипте) я еще не придумал.
chinga, 2006-09-19 в 9:01:49
Насчет "...траффик ею особо не посчитаешь...": считать можно, надо просто вычесть
из результата процент попадания в кеш. А прога кульная, особенно для тех, кто сам не хочет писать скрипты для обработки логов.
tormozok, 2007-03-12 в 10:10:32
написал скриптик, чтобы отчеты разбивались по месецам и при смене месяца проходила ротация логов squid
# cat sarg-a.sh
#!/bin/sh
monday=$(date -v-0m +%m)
fname=/usr/local/etc/sarg-a.cash
if [ -f $fname ]
then
#----------читаем содержимое файла--------
exec < $fname
while read ldate
do
zmonday=$ldate
done
#--------сравниваю сегодняшний месяц с месяцем в файле
if [ $monday -ne $zmonday ]
then
# echo 'Даты не совпадают'
#-------------делаем последний отче за прошлый месяц-------
ddate=$(date -v-1m +01/%m/%Y)-$(date -v1d -v-0m -v-1d +%d/%m/ %Y)
/usr/local/bin/sarg -l /usr/local/squid/logs/access.log -d sarg -d $ddate
/usr/local/sbin/squid -k rotate
echo $monday > $fname
else
ddate=$(date +01/%m/%Y)-$(date -v1d -v+1m -v-1d +%d/%m/%Y)
/usr/local/bin/sarg -l /usr/local/squid/logs/access.log -d sarg -d $ddate
# echo 'Даты совпадают'
fi
else
#--------если файла нет то создадим
echo $monday > $fname
# echo "Файл создан"
fi
KaMa-CyTpA, 2007-03-31 в 18:09:29
Настроил - красиво всё и шокоЛАДНО.
Только одна проблема - меня интересуют только домены 2 уровня
images.ucomic.com
poncho.ucomic.com
Они по разным строчкам. А объединять домены никак нельзя?
KsI, 2007-08-22 в 12:55:21
а я тоже писал статью на тему.
Чуть по подробнее, чем у Вас сделал.
лежит здесь.
Если интересно, разместите у себя.
http://ksimute.by.ru/squid-sarg.shtml
ewgen, 2007-10-15 в 14:35:01
Маленький глюк если в последний день месяца в серверной вырубили свет и включили на след. день то скриптик переносит старые логи за предидущий месяц на новый месяц.
ewgen, 2007-10-15 в 14:36:50
мелочь конечно все равно а неприятно :)
ewgen, 2007-10-15 в 14:36:58
мелочь конечно все равно а неприятно :)
ewgen, 2007-10-15 в 14:37:33
мелочь конечно все равно а неприятно :)
ewgen, 2007-10-15 в 14:37:40
мелочь конечно все равно а неприятно :)
storm, 2007-11-16 в 4:42:03
давно есть прога лучше - LightSquid
drurus, 2007-12-12 в 3:01:43
to storm
благодарю за наводку, а то так бы и мучался с корой и вебалайзером :)
drurus, 2007-12-12 в 3:25:22
/usr/ports/www/free-sa
List, 2007-12-20 в 16:27:16
Да, сколько мона воровать статьи с других сайтов, менять заголовки, переставлять запятые?
lissyara, 2007-12-20 в 16:31:27
Не балуюсь таким.
И вам не советую.
saper, 2008-01-28 в 0:50:40
Не хотите посмотреть российскую разработку, именуемую Free-SA? Должна быть раз в 7 быстрее SARG-а, ну и некоторые интересные функции там добавлены.
Страница проекта: http://free-sa.sourceforge.net
mak_v_, 2011-08-12 в 11:17:05
Вот обновился, теперь постоянно лезут опшипки
SARG: IP to name resolution (getnameinfo) on IP address 192.168.0.23 failed with error 4 - Non-recoverable failure in name resolution
Хотя все резолвиться
FreeBSD 8.2-RELEASE i386
sarg-2.3.1
pavel_l, 2011-08-24 в 11:13:52
тоже обновился до 2,3,1 и лезет ошибка эта.
добавил в resolv_ip no в sarg.conf до времени устранения бага.
Кстати в этой версии заметил появилась возможность интеграции в AD!
pavel_l, 2011-08-25 в 9:45:02
http://sourceforge.net/tracker/?func=detail&aid=3384496&group_id=68910&atid=522791
по этой ссылке в коментах решение
pavel_l, 2011-08-25 в 9:46:23
For reference I managed to get it compiled using the following steps:
svn co https://sarg.svn.sourceforge.net/svnroot/sarg/branches/v2.3
autoreconf (it produced no output - so I assumed it was fine)
cd /usr/ports/www/sarg
make extract
cd /usr/ports/www/sarg/work/sarg-2.3.1
I deleted everything in here and copied the files I checked out in its
place
I manually applied the diff from /usr/ports/www/sarg/files/Makefile.in to
what is the sarg-2.3.1 dir and then delete it (otherwise it tries to apply
it and fails)
cd /usr/ports/www/sarg/
make
make install
SergeySL, 2011-09-05 в 22:31:52
Выложил статью про интеграцию SARG и AD.
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [28 шт.]