пятница, 15 ноября 2019 г.

Установка и настройка SARG - Squid Analysis Report Generator

Одной из причин использования прокси-сервера является не только фильтрация трафика, а также и сбор разнообразной статистики использования сети Интернет - посещаемость различных интернет-ресурсов, объем скачанной информации, активность того или иного пользователя. Для анализа логов Squid как правило используют дополнительное ПО - анализатор логов. Одним из таких инструментов является SARG - Squid Analysis Report Generator.
Для SARG необходимо подготовить сервер, данная утилита выдает отчеты в формате HTML и для работы с ними потребуется установленный веб-сервер. Если вы не собираетесь использовать роутер в качестве полноценного веб-сервера, то будет вполне достаточно легкого сервера lighttpd:
  • apt install lighttpd
Сервер начинает работать сразу после установки, для проверки наберите в браузере адрес сервера и вы увидите стандартную страницу. По умолчанию lighttpd принимает соединения на всех интерфейсах, что нас никоим образом не устраивает, ограничим его работу внутренней сетью. Открываем конфигурационный файл /etc/lighttpd/lighttpd.conf, находим и приводим к следующему виду опцию:
 server.bind = "192.168.0.2"
где 192.168.0.2 - внутренний адрес роутера (LAN), также не забудьте раскомментировать эту строку и перезагрузить веб-сервер:
  • /etc/init.d/lighttpd restart
 В стабильной ветка Debian 10 SARG не доступен в репозитории, но есть в ветке sid (тестовой). Добавим в sources.list тестовый репозитории
  • nano /etc/apt/sources.list
  • добавим туда эту строчку deb http://ftp.de.debian.org/debian sid main
  • apt update
  • apt install sarg
После установки пакетов нужно закомментировать строчку deb http://ftp.de.debian.org/debian sid main в файле /etc/apt/sources.list. И снова обновить список пакетов.

Переходим к настройке SARG. Изменения вносим в файл /etc/sarg/sarg.conf:
output_dir /var/www/squid-reports
charset UTF-8
remove_temp_files yes --Очищать temp после генерации
index yes --Cоздавать ли индексную страницу после генерации
overwrite_report yes ---Перезаписывать ранее сгенерированных отчеты
long_url no ---подробные адреса посещаемых ресурсов
resolve_ip yes ---Преобразовывать ли IP-адреса в DNS-имена
logo_image /squid-reports/images/logo.png ---Свой логотип в отчётах
Настроим систему на получение ежедневных, еженедельных и ежемесячных отчетов. Для этого ткроем файл /etc/sarg/sarg-reports.conf вносим изменения:
HTMLOUT=/var/www/squid-reports
LOGOIMG=/squid-reports/images/logo.png
LOGOLINK="http://$(hostname)/squid-reports/"
Основные настройки logrotate хранятся в /etc/logrotate.conf, настройки отдельных сервисов (в нашем случае Squid) хранятся в /etc/logrotate.d/squid, и эти настройки имеют приоритет над logrotate.conf. Сама служба вызывается через планировщик cron.
Дальше откроем /etc/logrotate.d/squid, по умолчанию тут только daily:
#
#    Logrotate fragment for squid.
#
/var/log/squid/*.log {
    daily
    nocompress
    delaycompress
    rotate 8
    missingok
    nocreate
    sharedscripts
    prerotate
        test ! -x /usr/sbin/sarg-reports || /usr/sbin/sarg-reports daily
    endscript
    postrotate
        test ! -e /var/run/squid.pid || test ! -x /usr/sbin/squid || /usr/sbin/squid -k rotate
    endscript
}
/var/log/squid/*.log {
    weekly
    nocompress
    delaycompress
    rotate 5
    missingok
    nocreate
    sharedscripts
    prerotate
        test ! -x /usr/sbin/sarg-reports || /usr/sbin/sarg-reports weekly
    endscript
    postrotate
        test ! -e /var/run/squid.pid || test ! -x /usr/sbin/squid || /usr/sbin/squid -k rotate
    endscript
}
/var/log/squid/*.log {
    monthly
    nocompress
    delaycompress
    rotate 7
    missingok
    nocreate
    sharedscripts
    prerotate
        test ! -x /usr/sbin/sarg-reports || /usr/sbin/sarg-reports monthly
    endscript
    postrotate
        test ! -e /var/run/squid.pid || test ! -x /usr/sbin/squid || /usr/sbin/squid -k rotate
    endscript
}
daily - задает ежедневную ротацию
weekly - задает еженедельную ротацию
monthly - задает ежемесячную ротацию
compress - указывает сжимать архивные логи, обратная опция nocompress.
delaycompress - не сжимать текущий лог до следующей ротации, обычно используется в тех случаях, когда в лог происходит непрерывная запись.
rotate 2 - количество ротаций до удаления файла, в данном случае будут храниться два архива.
missingok - при отсутствии файла журнала указывает продолжить работу без вывода сообщения об ошибке.
nocreate - не создавать новый файл лога.
sharedscripts - используется для секций prerotate и postrotate, данная опция указывает исполнять скрипты из этих секций один раз перед и после ротации всех логов, в противном случае скрипты будут исполнены перед и после ротации каждого лога.
Секция postrotate проверяет, запущен ли squid и запускает ротацию логов самим прокси сервером.
Секция prerotate, добавляется автоматически при установке анализатора логов SARG и в случае если файл /usr/sbin/sarg-reports существует и является исполняемым, запускает его.
Т.к. мы ротацию будем осуществлять исключительно службой logrotate, то поправим конфигурацию squid
  • nano /etc/squid/squid.conf
  • Находим строку logfile_rotate и приводим к виду logfile_rotate 0
Число 0 указывает на отключение выполнении ротации файлов силами Squid. Перезапускаем Squid, новые настройки вступят в силу. Теперь осталось протестировать как работает наша конфигурация. Для этого запустим утилиту logrotate с опцией -d. Она выведет все, что планируется сделать, но не будет изменять файлы на диске:
  • logrotate -d /etc/logrotate.d/squid
Если захотите изменить расписание ротатции логов, смотрим в файле /etc/crontab , там указано расписание для daily, weekly и monthly.

Полезные источники:

https://interface31.ru/tech_it/2011/03/sarg-analiziruem-logi-proksi-severa-squid.html

https://oblako.kz/help/linux/nastroika-sagr-analizator-logov-squid

https://jakondo.ru/nastrojka-rotatsii-logov-squid-v-ubuntu-14-04-lts


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

Отправить комментарий

Пользователи и права на каталоги в Linux

Создаём пользователя системы и меняем права на каталоги, с коротким описанием