Настройка SaRG на базе Ubuntu Server




Наверняка каждый системный администратор рано или поздно сталкивается с необходимостью сбора статистики использования сети интернет пользователями. Подобная информация позволит предоставлять руководству информацию о том, кто куда ходил и чем занимался.

Лично мне это ни когда не было интересно, однако ситуации и требования бывают разные. В своей практике я всегда опирался на unix подобные ОС, в данном случае все действия будут проводится на Ubuntu Server 14.04.

В статье подразумевается, что Squid3 у вас уже установлен и весь http трафик идет через него, лично я использую его в режиме прозрачного прокси, что позволяет избавиться от необходимости бегать и настраивать каждую рабочую станцию отдельно.

Если сквид у вас уже работает, это значит, что логи о использовании сети у вас уже есть, осталось только получить инструмент, который в удобной форме будет их представлять.

Подобных инструментов множество, однако я остановил свой выбор на SARG (Squid Analysis Report Generator).


Установка Веб-сервера

Перед тем, как начать установку и настройку SARG, давайте установим простенький веб-сервер, он необходим для того, чтобы иметь возможность просматривать сгенерированные “саржем” HTML отчеты. Для этих целей можно использовать и Apache, однако, если он не установлен можно обойтись более простым решением – lighttpd.

sudo apt-get install lighttpd

После установки необходимых пакетов lighttpd готов работать, для проверки наберем в адресной строке браузера адрес сервера. Если все сделано правильно, должна открыться стандартная страница, которая поздравит вас с тем, что веб-сервер работает.

Однако есть нюанс – конфиг из коробки настроен таким образом, что веб-сервер будет обрабатывать запросы со всех доступных ему интерфейсов, но нам оно надо?

Давайте ограничим его работу только локальной сетью, открываем файл конфигурации:

sudo nano /etc/lighttpd/lighttpd.conf

Найдем и раскомментируем строку:

server.bind = "10.0.0.1", где 10.0.0.1 адрес для примера, меняем на свой.

Перезагрузим свежеустановленный веб-сервер для вступления изменений в силу:

sudo /etc/init.d/lighttpd restart

Установка и настройка SARG

Пришла очередь Sarg, произведем его установку следующей командой:

sudo apt-get install sarg

Sarg как и lighttpd готов сразу начать работу, однако стандартная конфигурация меня несколько не устраивает, отмечу, что конфиг саржа позволяет вносить множество изменений в его внешний вид.

Настройка SARG производится в файле – /etc/sarg/sarg.conf. Откроем его для внесения правок:

sudo nano /etc/sarg/sarg.conf

Вносим требуемые изменения:

language Russian_UTF-8
graphs yes
graph_days_bytes_bar_color orange
output_dir /var/www/squid-reports
charset UTF-8

Далее в конфиге ищем и комментируем строку:

#site_user_time_date_type table

Запустить генерацию отчетов Sarg можно следующей командой (заодно давайте проверим как он работает):

sudo /usr/bin/sarg

В зависимости от объема логов, время требуемое для генерации отчетов может значительно меняться, у меня это заняло около 5 секунд.

Обращаю внимание на то, что в зависимости от версии сквида путь до логов меняется, это одна из причин, по которой логи могут не преобразовываться саржем в наглядные списки.

Для того, чтобы все заработало пришлось дописать в этой строке "3" (тройку).

access_log /var/log/squid3/access.log

После сообщения о завершении генерации отчетов открываем адрес:

http://10.0.0.1/squid-reports, должна открыться примерно такая страница

 

Настройка SaRG на базе Ubuntu Server

SARG сгенерирует отчеты исходя их всех доступных ему логов, готовый отчет будет содержать в себе следующую информацию:

  • Детализация по пользователям;
  • Детализация по одному конкретному пользователю (список сайтов, время,дата и количество обращений к
    адресу);
  • Список наиболее популярных сайтов;
  • Потребляемый трафик;
  • Общее количество трафика потребляемое за сутки, неделю, месяц;
  • Сводку за день, неделю, месяц.

Настраиваем Cron SARG

После проведенных нами действий Sarg уже работает должным образом, однако я преследую еще одну цель – автоматизацию.

Ранее я писал, что SARG может генерировать отчеты по заданным интервалам, однако этот функционал в нем работает крайне плохо, у меня в свое время он генерировал только ежедневные отчеты, но наотрез отказывался формировать еженедельные и месячные. Решение оказалось очень простым.

Настроим Cron для SARG, выполняем команду:

sudo nano /etc/crontab

Вносим расписание:

00 08-18 * * * root sarg-reports today
00 22 * * * root sarg-reports daily
30 22 * * 0 root sarg-reports weekly
30 23 1 * * root sarg-reports monthly

Теперь крон настроен таким образом, что будет формировать отчеты каждый час в течении рабочего дня (с 8:00 до 18:00), в 22:00 генерируется полный отчет за сутки, по воскресеньям генерируется отчет за неделю и наконец 1го числа каждого месяца будет появляться отчет о пользовании интернетом за месяц.


Далее по очереди настроим каждый файл (до внесения изменений в них, отчеты за длительные промежутки времени у меня не формировались).

Генерирование отчетов за день (если файла нет, то создаем):

sudo nano /etc/cron.daily/sarg

Мои значения:

if [ -x /usr/sbin/sarg-reports ]; then
/usr/sbin/sarg-reports daily
fi

Или

sarg -d day-1 -w /tmp/sarg.daily -o /var/www/squid-reports/Daily /var/log/squid3/access.log*

Крон отвечающий за генерирование отчетов за неделю:

sudo nano /etc/cron.weekly/sarg

Значения по умолчанию:

#!/bin/sh

if [ -x /usr/sbin/sarg-reports ]; then
/usr/sbin/sarg-reports weekly
fi

Вписываем эти строки (старые удаляем, на всякий случай сделайте бекап)

#!/bin/sh

sarg -d week-1 -w /tmp/sarg.weekly -o /var/www/squid-reports/Weekly /var/log/squid3/access.log*

Генерирование отчетов за месяц:

sudo nano /etc/cron.monthly/sarg

Значения по умолчанию:

#!/bin/sh

if [ -x /usr/sbin/sarg-reports ]; then
/usr/sbin/sarg-reports monthly
fi

Вписываем эти строки (старые удаляем, на всякий случай сделайте бекап)

#!/bin/sh

sarg -d month-1 -w /tmp/sarg.monthly -o /var/www/squid-reports/Monthly /var/log/squid3/access.log*

Установим свеженастроенным файлам права на выполнение:
chmod 755 /etc/cron.daily/sarg /etc/cron.weekly/sarg /etc/cron.monthly/sarg

Обращаю внимание на то, что в задаче строго прописаны пути, адаптируйте их под свои нужды при надобности.

Для  запуска создания отчетов вручную используем следующие команды:

  • sudo sarg
  • sudo /etc/cron.daily/sarg
  • sudo /etc/cron.weekly/sarg
  • sudo /etc/cron.monthly/sarg

В случае, если для ротации логов squid используется logrotate обязательно проверьте охватываемый период времени в

sudo nano /etc/logrotate.d/squid3

UPD после некоторого времени перешел на lightsquid. Установка к слову очень простая, все требуемое выполняет. 

(Просмотров 3 590 )

nordweb

Привет, меня зовут Евгений. Этот сайт задуман в качестве моей записной книжки, к которой я буду время от времени обращаться, чтобы освежить память. Надеюсь, что мои заметки пригодятся и кому-нибудь из Вас.


Поделитесь записью в соц. сетях:

  • Dev

    Очень объемно вышло однако.

  • Mikhail Shmyrko

    Евгений здравствуйте. Очень долго ломал голову почему не заходит на сайт по адресу IP/squid-reports оказывается надо было написать IP/html/squid-reports может кому из читающих информация пригодится