Настройка SARG

11.08.2010 - 09:30

Необходимо было анализировать логи Squid proxy-сервера.. кто, куда и сколько. Для этого есть хороший анализатор логов SARG, который парсит логи сквида и выводит красиво через web-морду. И так поехали..
Обновляем порты, и устанавливаем sarg:

[root@router ~]# cd /usr/ports/www/sarg
[root@router /usr/ports/www/sarg]# make config && make install && make clean

В Options for sarg выбираем:

[X] GD  Enable GD support

После установки идем править конфиг:

[root@router /]# cd /usr/local/etc/sarg
[root@router /usr/local/etc/sarg]# cat  sarg.conf

temporary_dir /tmp
#путь куда по дефолту будут генерироваться отчеты
output_dir /usr/local/www/data/statistic/http_stat
max_elapsed 28800000
#язык по умолчанию
language Russian_koi8
#путь к логу сквида
access_log /usr/local/squid/logs/access.log
#отображать ли графики?
graphs yes
graph_days_bytes_bar_color orange
#надпись на главной
title "proxy.local"
font_face Tahoma,Verdana,Arial
header_color darkblue
header_bgcolor blanchedalmond
font_size 10px
header_font_size 10px
title_font_size 11px
background_color white
text_color #000000
text_bgcolor blanchedalmond
title_color green
logo_image none
logo_text_color #000000
background_image none
#переводить ip в имена
resolve_ip yes
#lastlog 0
index yes
#файлы будут переписываться один поверх другого
overwrite_report yes
#output_email erasha@domain.ru
#кодировка по умолчанию
charset Koi8-r
show_successful_message yes
show_read_statistics yes
topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE
user_report_fields CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE
#show_sarg_info yes
#show_sarg_logo yes
date_format e
# Указывем ip-адреса с которых ненужно собирать статистику.
exclude_users /usr/local/etc/sarg/exclude_users
#exclude_hоsts /usr/local/etc/sarg/exclude_hosts
# Прописываем пары: ip - name_user, для отображения по имени.
usertab /usr/local/etc/sarg/usertab.txt

[root@router ~]#cat /usr/local/etc/sarg/usertab.txt
192.168.0.153 Chepur
192.168.0.35 Leschenko
192.168.0.89 Melanich
192.168.0.9 Valery
192.168.0.46 Sekretar

Далее для того, что бы Sarg подсчитывал трафик только за сутки необходимо запускать его с помощью скрипта:
[root@router ~]#cat  /usr/local/bin/sarg_1
#!/bin/sh
dat=`date +%d/%m/%Y`
dats="$dat-$dat"
/usr/local/bin/sarg -d $dats

который скармливаем крону:

[root@router /etc]# cat crontab | grep sarg
*/30 *  * * *   root   /usr/local/bin/sarg_1 > /dev/null 2>&1
#*/30 * * * *   root   /usr/local/bin/sarg > /dev/null 2>&1

В apache нужно добавить алиас на Sarg:

Alias /sarg "/usr/local/www/data/statistic/http_stat/"
<Directory "/usr/local/www/data/statistic/http_stat/">
     Order deny,allow
     Allow from all
</Directory>

В результате получим вот такую страницу статистики:

82.png

Ваша оценка: Нет Средняя: 2 (4 голосов)

Комментарии:


для того если приспичет через сарг парсить 3proxy то надо подправить формат лога

logformat "- +_G%t.%. %D %C TCP_MISS/200 %I %1-1T %2-2T %U DIRECT/%R application/unknown"

ну и ротацию настроить
/var/log/3proxy/3proxy.log              nobody:nobody   644     7       *       @T00    JC

Далее для того, что бы Sarg подсчитывал трафик только за сутки

20      2       *       *       *               /usr/local/sbin/squid -k rotate > /dev/null 2>&1

и не придётся городить скрипты Winking