В комментариях к предыдущей заметке я обещал выложить свои скрипты для просмотра статистики squid. Обещание сдерживаю:)
Итак. Для начала нам понадобиться sarg. В разных дистрибутивах он устанавливается по разному:
# В Gentoo: emerge sarg # В Mandriva: urpmi sarg # В Debian/Ubuntu: apt-get install sarg # В RedHat/Fedora: yum install sarg # Во FreeBSD: portinstall sarg
Далее нужно немного подредактировать sarg.conf. Для начала изменить значение параметра overwrite_report на yes:
overwrite_report yes
Далее можно по вкусу подправить значение output_dir. После чего создаём два скрипта. Первый скрипт будет запускаться каждый час и обновлять статистику за текущий день, второй будет запускаться раз в сутки и ротировать лог.
Итак, первый скрипт (сохраняется как /root/scripts/sarghourly.sh):
#!/bin/sh /usr/bin/sarg -d `/bin/date +%d/%m/%Y`-`/bin/date +%d/%m/%Y`
Второй скрипт (сохраняется как /root/scripts/sargdaily.sh):
#!/bin/sh /usr/bin/sarg -d `/bin/date +%d/%m/%Y --date "-1 day"`-`/bin/date +%d/%m/%Y --date "-1 day"` /usr/sbin/squid -k rotate
Делаем оба скрипта исполнимыми:
chmod +x /root/scripts/sarg*
И добавляем в /etc/crontab вызов этих скриптов:
# Generate sarg reports 1 0 * * * root /root/scripts/sargdaily.sh 5 * * * * root /root/scripts/sarghourly.sh
Следует отметить что в различных дистрибутивах различные команды могут находиться в разных местах, поэтому возможно придётся править эти пути в скриптах. Приведённые здесь скрипты написаны для Debian/Ubuntu.
Просматривать статистику можно локально, открыв в браузере файл index.html из output_dir, или можно поднять веб-сервер и отдавать эту папочку на одном из виртуальных хостов.
Пример статистики, сгенерированной этим скриптом:
На основе приведённых скриптов можно так же написать скрипты для генерации еженедельной, ежемесячной и ежегодной статистики. Надеюсь что кому-то эта заметка будет полезной.
Bull-Dog 2008-02-25 13:47:58 (#)
ps Теперь у меня появилось большое желание разобраться в sarg =)