Записки IT специалиста
Одним из насущных вопросов для системного администратора является получение статистики использования интернета в организации. Располагая такими данными всегда можно ответить на вопрос руководства «куда ушел весь интернет», обосновать необходимость расширения канала, своевременно выявлять и пресекать нежелательный трафик. Сегодня мы рассмотрим такое решение для нашего роутера на платформе Ubuntu Server.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Основной интересующий нас тип траффика — HTTP, который составляет львиную долю входящего интернет-трафика в организации и наиболее интересен, так как позволяет судить об активности и предпочтениях пользователей (а также о том, как они проводят рабочее время). Все необходимые нам данные имеются в логах прокси-сервера Squid, но не будем же мы просматривать их вручную! Необходим инструмент, позволяющий анализировать и предоставлять отчеты на основе этих логов. Одним из таких инструментов является SARG — Squid Analysis Report Generator, что и отражено в его названии.
Приступим. Прежде чем браться за установку SARG необходимо подготовить сервер, данная утилита выдает отчеты в формате HTML и для работы с ними потребуется установленный веб-сервер. Если вы не собираетесь использовать роутер в качестве полноценного веб-сервера, то будет вполне достаточно легкого сервера lighttpd:
sudo apt-get install lighttpd
Сервер начинает работать сразу после установки, для проверки наберите в браузере адрес сервера и вы увидите стандартную страницу. По умолчанию lighttpd принимает соединения на всех интерфейсах, что нас никоим образом не устраивает, ограничим его работу внутренней сетью. Открываем конфигурационный файл /etc/lighttpd/lighttpd.conf, находим и приводим к следующему виду опцию:
где 10.0.0.1 — внутренний адрес роутера, также не забудьте раскомментировать эту строку и перезагрузить веб-сервер:
sudo /etc/init.d/lighttpd restart
Настройка анализатора логов довольно проста и сводится к выбору языка, кодировки и формата отчета, а также пути для его размещения. Все изменения вносим в файл /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
Теперь можем проверить работу анализатора:
После того как утилита закончит работу набираем в браузере http://10.0.0.1/squid-reports, вы должны увидеть следующую страницу:
По умолчанию SARG формирует отчет за весь доступный период, отчет содержит детализацию по пользователям (адресам) и посещенным ими сайтам, использованию трафика и кэша, загрузкам. Отдельно можно просмотреть наиболее посещаемые сайты, данный отчет сортирует сайты не по трафику, а по количеству посещений.
По каждому пользователю можно получить исчерпывающую статистику:
Можно также просмотреть график потребления трафика и статистику работы по датам и времени.
Если есть желание, можете настроить отображение отчетов по собственному вкусу, конфигурация SARG использует для задания параметров вывода отчетов стандартные HTML теги и неплохо документирована. Если вы владеете HTML на базовом уровне, эта операция не должна вызвать у вас затруднений.
Анализатор настроен и работает, это хорошо. Но запускать его каждый раз вручную не очень интересно, поэтому настроим систему на получение ежедневных, еженедельных и ежемесячных отчетов. Для этого откроем файл /etc/sarg/sarg-reports.conf и укажем путь для размещения отчетов, а также адрес и ссылку для логотипа.
HTMLOUT=/var/www/squid-reports
LOGOIMG=/sqiud-reports/logo.png
LOGOLINK="http://10.0.0.1/squid-reports"
Учтите, что изображение логотипа должно находиться в пределах корневой папки веб-сервера (/var/www) и пути указываются от корня веб-сервера, а не файловой системы.
Теперь зададим расписание для формирования отчетов, которое необходимо добавить в /etc/crontab
00 09-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
Данное расписание означает, что каждый час с 9:00 до 18:00 (рабочий день организации) запускается скрипт формирования ежедневной статистики, каждый день в 22:00 формируется статистка за день, в 22:30 Воскресенья — статистка за неделю и первого числа каждого месяца в 23:30 статистика за месяц.
На этом настройку можно считать законченной, вся статистика будет доступна по адресу http://10.0.0.1/squid-reports.
Дополнительные материалы:
- Linux. Настройка роутера (NAT + DHCP + Squid)
- Ubuntu Server. Настраиваем роутер NAT + DHCP + Squid3
- Ubuntu Server. Настраиваем контент-фильтр роутера (DansGuardian)
- DansGuardian. Сложности фильтрации русскоязычного контента
- Ubuntu Server. Настраиваем антивирусный фильтр роутера (ClamAV)
- Ubuntu Server. Дополняем контент-фильтр роутера антивирусом (DansGuardian + ClamAV)
- Ubuntu Server. Настраиваем форвардинг портов на роутере
- Ubuntu Server. Настраиваем аутентификацию через Squid
- Ubuntu Server. Ограничиваем скорость клиентов через Squid
- SARG — анализируем логи прокси-севера Squid
- SAMS — веб-интерфейс для управления Squid и не только
- Squid — настраиваем URL-фильтрацию по спискам
- Squid — блокируем потоковое мультимедиа
- Как устроена и работает система контроля доступа в Squid
- Настраиваем Squid для работы с Active Directory. Часть 1 — базовые настройки
- Настраиваем Squid для работы с Active Directory. Часть 2 — Kerberos-аутентификация
- Настраиваем Squid для работы с Active Directory. Часть 3 — Авторизация на основе групп AD
- WPAD или автоматическая настройка параметров прокси
- Устраняем ошибки Windows Update при работе через прокси-сервер Squid
- Настраиваем ограничение скорости для пользователей в Squid
- Сборка Squid 3.5 с поддержкой SSL из исходных кодов для Debian / Ubuntu
- Настраиваем роутер NAT + DHCP + Squid3 с поддержкой фильтрации SSL-трафика
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Установка и настройка SARG для анализа логов SQUID на CentOS
Опубликовано: 25.03.2020
Используемые термины: SARG, SQUID, CentOS. Приложение SARG для представления статистики посещений сайтов в графическом интерфейсе требует веб-сервера. В данной инструкции мы установим и настроим как сам SARG, так и веб-сервер на основе NGINX. Прокси-сервер SQUID устанавливается по инструкции Установка и настройка Squid на CentOS.
Установка и запуск SARG
Установка
В отличие от Debian / Ubuntu, в репозиториях CentOS программное обеспечение SARG отсутствует — установку будет производить из исходников. Устанавливаем пакеты необходимые для сборки пакета из исходников:
Настройка и запуск
.
access_log /var/log/squid/access.log
.
output_dir /usr/share/nginx/html/squid-reports
.
date_format e
.
overwrite_report yes
filename.n+1
.
- access_log — путь до логов squid. Если мы не меняли настройки для самого прокси-сервера, то задаем значение/var/log/squid/access.log.
- output_dir — каталог, в котором будут находиться html-отчеты. Это должен быть каталог, из которого веб-сервер будет читать файлы портала. Так как в нашем примере мы будет использовать NGINX, мы указали путь, начинающийся с /usr/share/nginx/html, так как именно в этой директории по умолчанию находятся файлы NGINX.
- date_format — формат даты. В данном примере мы выбрали европейский.
- overwrite_report — перезаписывать отчеты, которые уже были сформированы ранее.
- filename.n+1 — при формировании отчета за один и тот же день, прибавлять к названию файла 1.
Запускаем формирование отчета:
Система проверить корректность настройки в конфигурационном файле SARG и сформирует html-отчет в папке, указанной в опции output_dir (в нашем примере, /usr/share/nginx/html/squid-reports).
Веб-сервер
Как говорилось ранее, для просмотра отчетов в графическом интерфейсе нам нужен веб-сервер. Для его развертывания, сначала ставим репозиторий EPEL:
Разрешаем автозапуск nginx и стартуем сервис:
Открываем 80 порт в брандмауэре:
firewall-cmd —permanent —add-port=80/tcp
При необходимости просмотра статистики по https также добавим правило:
firewall-cmd —permanent —add-port=443/tcp
Открываем браузер и переходим по адресу http:///squid-reports/ — должна открыться стартовая страница со списком дат:
Чтобы просмотреть список посещенных сайтов и израсходованного трафика, переходим к нужной нам дате и выберем пользователя, для которого нужно получить статистику. Идентификация пользователей в sarg зависит от идентификации в squid — если проверка не выполняется, то в качестве идентификаторов будут фигурировать IP-адреса.
Автоматическое формирование отчетов
Для формирования новых отчетов необходимо каждый раз запускать команду sarg -x. Чтобы автоматизировать процесс, добавим задание в планировщик Linux.
Открываем на редактирование cron:
* в данном примере мы будем запускать формирование отчета каждый день в 00:00.
Немного об альтернативе
Помимо SARG, для SQUID существуют другие анализаторы логов. Они имеют схожие принципы работы — консольный запуск анализа и формирования html-отчетов, и предоставление доступа к статистики посредством веб-интерфейса.
Наиболее популярные альтернативы SARG:
1. Lightsquid. Легкий парсер логов, использующий для анализа журналов скрипты, написанные на perl. Также
2. Free-SA. Изначально, планировался как замена другим устаревающим анализаторам логов прокси-сервера, но сам проект уже давно не обновлялся. Имеет интерфейс, схожий с sarg.
3. SAMS. В большей степени, это приложение для управления прокси-сервером SQUID, однако в нем предусмотрена также функция сбора статистики посещений сайтов. Подробнее об установке в инструкции Установка и настройка SAMS2 на CentOS.
4. Calamaris. Еще один парсер журналов с хорошей статистикой по нагрузке на прокси.