SARG – это инструмент с открытым исходным кодом, который позволяет анализировать файлы журналов Squid и генерировать красивые отчеты в формате HTML с информацией о пользователях, IP-адресах, наиболее часто посещаемых сайтах, общем объеме использованной полосы пропускания, затраченном времени, загрузках, заблокированных сайтах, ежедневных, еженедельных и ежемесячных отчетах.
SARG – очень удобный инструмент для просмотра того, как много интернет-полосы пропускания используется отдельными компьютерами в сети и для отслеживания, на какие сайты обращаются пользователи сети.

В этой статье я расскажу вам, как установить и настроить SARG – Генератор отчетов по анализу Squid на системах RHEL/CentOS/Fedora и Debian/Ubuntu/Linux Mint.
Установка Sarg – анализатор журналов Squid в Linux
I assume that you already installed, configured and tested Squid server as a transparent proxy and DNS for the name resolution in caching mode. If not, please install and configure them first before moving further installation of Sarg.
Важно: Пожалуйста, помните, что без настройки Squid и DNS установка Sarg на системе бессмысленна. Так что, прежде чем продолжить установку Sarg, установите их.
Следуйте этим руководствам для установки DNS и Squid в ваших системах Linux:
Установите кэширующий DNS-сервер
- Установите кэширующий DNS-сервер в RHEL/CentOS 7
- Установка сервера только кэша DNS в RHEL/CentOS 6
- Установка сервера только кэша DNS в Ubuntu и Debian
Установка Squid в качестве прозрачного прокси-сервера
- Настройка прозрачного прокси-сервера Squid в Ubuntu и Debian
- Установка сервера кэширования Squid на RHEL и CentOS
Шаг 1: Установка Sarg из исходного кода
Пакет ‘sarg‘ по умолчанию не включен в дистрибутивы на базе RedHat, поэтому нам нужно вручную скомпилировать и установить его из исходного архива. Для этого нам нужно установить некоторые дополнительные предварительные пакеты на системе перед компиляцией из исходного кода.
На RedHat/CentOS/Fedora
# yum install –y gcc gd gd-devel make perl-GD wget httpd
После установки всех необходимых пакетов загрузите последний исходный архив Sarg или вы можете использовать следующую команду wget для загрузки и установки его, как показано ниже.
# wget http://liquidtelecom.dl.sourceforge.net/project/sarg/sarg/sarg-2.3.10/sarg-2.3.10.tar.gz # tar -xvzf sarg-2.3.10.tar.gz # cd sarg-2.3.10 # ./configure # make # make install
На Debian/Ubuntu/Linux Mint
На дистрибутивах, основанных на Debian, пакет sarg можно легко установить из стандартных репозиториев, используя менеджер пакетов apt-get.
$ sudo apt-get install sarg
Шаг 2: Настройка Sarg
Теперь пришло время отредактировать некоторые параметры в основном конфигурационном файле SARG. Файл содержит много параметров для редактирования, но мы будем редактировать только необходимые параметры, такие как:
- Путь к журналам доступа
- Каталог вывода
- Формат даты
- Перезапись отчета для той же даты.
Откройте файл sarg.conf с помощью выбранного вами редактора и внесите изменения, как показано ниже.
# vi /usr/local/etc/sarg.conf [On RedHat based systems]
$ sudo nano /etc/sarg/sarg.conf [On Debian based systems]
Теперь раскомментируйте и добавьте исходный путь к вашему файлу журнала доступа squid.
# sarg.conf # # TAG: access_log file # Where is the access.log file # sarg -l file # access_log /var/log/squid/access.log
Затем добавьте правильный путь к каталогу вывода для сохранения созданных отчетов squid в этом каталоге. Обратите внимание, что в дистрибутивах, основанных на Debian, корневой каталог веб-сервера Apache – ‘/var/www‘. Поэтому будьте внимательны при добавлении правильных путей к корневым каталогам ваших дистрибутивов Linux.
# TAG: output_dir # The reports will be saved in that directory # sarg -o dir # output_dir /var/www/html/squid-reports
Установите правильный формат даты для отчетов. Например, ‘date_format e‘ будет отображать отчеты в формате ‘dd/mm/yy‘.
# TAG: date_format # Date format in reports: e (European=dd/mm/yy), u (American=mm/dd/yy), w (Weekly=yy.ww) # date_format e
Затем раскомментируйте и установите Перезапись отчета на ‘Да’.
# TAG: overwrite_report yes|no # yes - if report date already exist then will be overwritten. # no - if report date already exist then will be renamed to filename.n, filename.n+1 # overwrite_report yes
Вот и все! Сохраните и закройте файл.
Шаг 3: Генерация отчета Sarg
После завершения настройки пришло время сгенерировать отчет журнала squid с помощью следующей команды.
# sarg -x [On RedHat based systems]
# sudo sarg -x [On Debian based systems]
Примерный вывод
[root@localhost squid]# sarg -x SARG: Init SARG: Loading configuration from /usr/local/etc/sarg.conf SARG: Deleting temporary directory "/tmp/sarg" SARG: Parameters: SARG: Hostname or IP address (-a) = SARG: Useragent log (-b) = SARG: Exclude file (-c) = SARG: Date from-until (-d) = SARG: Email address to send reports (-e) = SARG: Config file (-f) = /usr/local/etc/sarg.conf SARG: Date format (-g) = USA (mm/dd/yyyy) SARG: IP report (-i) = No SARG: Keep temporary files (-k) = No SARG: Input log (-l) = /var/log/squid/access.log SARG: Resolve IP Address (-n) = No SARG: Output dir (-o) = /var/www/html/squid-reports/ SARG: Use Ip Address instead of userid (-p) = No SARG: Accessed site (-s) = SARG: Time (-t) = SARG: User (-u) = SARG: Temporary dir (-w) = /tmp/sarg SARG: Debug messages (-x) = Yes SARG: Process messages (-z) = No SARG: Previous reports to keep (--lastlog) = 0 SARG: SARG: sarg version: 2.3.7 May-30-2013 SARG: Reading access log file: /var/log/squid/access.log SARG: Records in file: 355859, reading: 100.00% SARG: Records read: 355859, written: 355859, excluded: 0 SARG: Squid log format SARG: Period: 2014 Jan 21 SARG: Sorting log /tmp/sarg/172_16_16_55.user_unsort ......
Примечание: Команда ‘sarg -x’ будет читать файл конфигурации ‘sarg.conf‘ и брать путь ‘access.log‘ к squid и генерировать отчет в формате html.
Шаг 4: Оценка отчета Sarg
Сгенерированные отчеты размещаются в ‘/var/www/html/squid-reports/‘ или ‘/var/www/squid-reports/‘ и их можно просмотреть в веб-браузере, используя адрес.
http://localhost/squid-reports OR http://ip-address/squid-reports
Главное окно Sarg

Конкретная дата

Отчет пользователя

Топ-сайты

Топ-сайты и пользователи

Топ-загрузки

Отказано в доступе

Сбои аутентификации

Шаг 5: Автоматическое создание отчета Sarg
Чтобы автоматизировать процесс генерации отчета sarg в заданное время с помощью cron-задач. Например, предположим, что вы хотите генерировать отчеты ежечасно автоматически, для этого необходимо настроить задачу Cron.
# crontab -e
Далее добавьте следующую строку в конец файла. Сохраните и закройте его.
* */1 * * * /usr/local/bin/sarg -x
Вышеприведенное правило Cron будет генерировать отчет SARG каждый 1 час.
Ссылки для справки
Вот и все с SARG! Я собираюсь опубликовать еще несколько интересных статей по Linux, пока оставайтесь на связи с TecMint.com и не забудьте добавить свои ценные комментарии.
Source:
https://www.tecmint.com/sarg-squid-analysis-report-generator-and-internet-bandwidth-monitoring-tool/