Самый простой способ для анализа логов Squid - lightsquid. На официальном сайте можно найти всё документацию по установке и настройке. Однако, моя система отличается от той, что используется в официальной документации. Отличается лишь путями в конфигурационных файлах. Я не использую путь /var/www/htdocs/ - это путь в BSD системах. Соответственно, его нужно исправить в файлах lightsquid.cfg и /etc/apache2/httpd.conf. Так же, нужно указать правильный путь к логам Squid. Для squid3 это /etc/squid3/access.log. В моём случае (сквид с авторизацией, только статистика сайтов) дополнительно рассказывать о lightsquid нет необходимости. Если вы не используете авторизацию, то вам нужно прочитать статью о переводе IP в имена.
Следующий анализатор логов - Free-sa. Об его установке я расскажу подробнее, т.к. я использую 64 битную систему, а для неё есть некоторые особенности. Правда уже есть решение - смотрите ниже и возможно эти строки остануться только для информации. Рекомендую уже сейчас предворительно установить Debian x32 (или ваш Linux) на виртуальной машине. Он нам понадобится. Последняя стабильная версия 1.6 была в 2009 году. Но в начале 2012 года было 4 обновления версии 2.0. Её и будем устанавливать, предворительно установив make, gcc. Скачиваем дистрибутив и читаем файл:
Edit global.mk file to set your operating system profile via special OSTYPE variable and then type:
make install # to compile and install
make # to compile only
make release # to compile and strip binaries
Для Debian в файле global.km раскомментриуем строку #OSTYPE = ubuntu-i586-gcc4.
И закомментируем OSTYPE = generic-any-cc.
Об особенностях в х64. Во время компиляции можно увидеть следущую ошибку:
gcc -I. -I.. -O4 -pipe -march=i586 -fomit-frame-pointer -std=c99 -W -Wall -Wextra -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wreturn-type -Wswitch -Wshadow -Wcast-align -Wuninitialized -Wchar-subscripts -Wuninitialized -Wbad-function-cast -Wwrite-strings -c -o l_squid_native.o l_squid_native.c
l_squid_native.c:1: error: CPU you selected does not support x86-64 instruction set
l_squid_native.c:1: error: CPU you selected does not support x86-64 instruction set
make[2]: *** [l_squid_native.o] Error 1
make[2]: Leaving directory `/root/free-sa-2.0.0b5p7/src/logformats'
make[1]: *** [logformats/l_cgp_native.o] Error 2
Собственно после этого:
root@proxy-test:~# whereis free-sa
free-sa: /etc/free-sa /usr/share/free-sa /usr/share/man/man1/free-sa.1
В то время как в х32:
root@debian-32:~# whereis free-sa
free-sa: /usr/bin/free-sa /etc/free-sa /usr/share/free-sa /usr/share/man/man1/free-sa.1
Копируем файл /usr/bin/free-sa с сервера на сервер. Дераем исполняемым: chmod +x /usr/bin/free-sa Проверяем:
root@proxy-test:~# whereis free-sa
free-sa: /usr/bin/free-sa /etc/free-sa /usr/share/free-sa /usr/share/man/man1/free-sa.1
Всё на месте. Другого решения пока не нашёл. Дальше - настройка конфигурационного файла free-sa.conf. Т.к. я использую squid 3, то правим путь к его логам: log_file="/var/log/squid3/access.log" . Запускаем free-sa и смотрим статистику.
Ну вот, пока писал статью, разработчик дал решение этой ситуации:
1) копируем configs/ubuntu-i586-gcc4.mk в configs/ubuntu-x86_64-gcc4.mk
2) OSTYPE = ubuntu-x86_64-gcc4 в global.mk
3) В новом configs/ubuntu-x86_64-gcc4.mk замените -march=$(SARCH) на -march=native