Недавно нашей компании потребовалось перевести прокси-сервер с MS ISA Server на бесплатное программное обеспечение.
Выбор прокси-сервера (кальмара) не занял много времени.
Используя несколько практических рекомендаций, я настроил прокси под свои нужды.
Некоторые трудности возникли при выборе программы для учета трафика.
Требования были: 1) бесплатное программное обеспечение 2) возможность обработки логов с разных прокси на одном сервере 3) возможность создания стандартных отчетов с отправкой по почте, либо по ссылке на веб-сервере 4) построение отчетов по отдельным подразделениям и рассылка таких отчетов руководителям отделов, либо предоставление доступа по ссылке на веб-сервере Разработчики предоставляют очень мало информации о программах учета трафика: лаконичное описание назначения программы плюс необязательный бонус в виде пары скриншотов.
Да, понятно, что любая программа посчитает объём трафика за день/неделю/месяц, но дополнительные интересные возможности, отличающие одну программу от других, не описаны.
Я решил написать этот пост, в котором постараюсь описать возможности и недостатки таких программ, а также некоторые их ключевые особенности, чтобы немного помочь тем, кому предстоит сделать выбор.
Наши кандидаты: САРГ фри-са световой кальмар SquidAnalyzer ЭкранSquid Отступление Информация о «возрасте» программы и последней версии не является параметром сравнения и предоставлена исключительно для информации.
Я постараюсь сравнить исключительно функционал программы.
Я также сознательно не рассматривал слишком старые программы, которые не обновлялись уже много лет. Логи отправляются на обработку анализатору в том виде, в котором их создал Squid, и не подвергаются никакой предварительной обработке для внесения в них изменений.
Обработка неверных записей и все возможные преобразования полей журнала должны выполняться самим анализатором и присутствовать только в отчете.
Эта статья не является руководством по настройке.
Вопросы настройки и использования можно рассмотреть в отдельных статьях.
Итак, давайте начнем.
SARG — Генератор отчетов по анализу кальмаров
Самая старая из поддерживаемых программ этого класса (разработка началась в 1998 году, прежнее название sqmgrlog).Последний выпуск (версия 2.3.10) — апрель 2015 года.
После этого появилось несколько улучшений и исправлений, которые доступны в основной версии (можно скачать с помощью git с sourceforge).
Программа запускается вручную или через cron. Вы можете запустить его без параметров (тогда все параметры будут взяты из файла конфигурации sarg.conf), а можете указать параметры в командной строке или скрипте, например, даты, за которые формируется отчет. Отчеты создаются в виде html-страниц и сохраняются в каталоге /var/www/html/squid-reports (по умолчанию).
Вы можете установить параметр, указывающий количество отчетов, хранящихся в каталоге.
Например, 10 ежедневных и 20 еженедельных, более старые будут автоматически удалены.
Для разных вариантов отчета возможно использовать несколько конфиг-файлов с разными параметрами (например, для ежедневных отчетов можно создать свой конфиг, в котором будет отключена опция создания графиков и будет другая директория для вывода отчета).
указано).
Подробности При входе на главную страницу с отчетами мы можем выбрать период, за который он был создан (определен в параметрах создания отчета), дату его создания, количество уникальных пользователей, общий трафик за период, средний объем трафик на пользователя.
При выборе одного из периодов мы сможем получить отчет топпользователей за этот период. Ниже я приведу описания и примеры всех типов отчетов, которые может создавать SARG.
1) topusers — общий трафик по пользователям.
Пользователь — это либо имя хоста, которому предоставлен доступ в Интернет, либо логин пользователя.
Пример отчета:
Здесь отображаются IP-адреса.
Если настроена активация соответствующей опции, IP-адреса преобразуются в доменные имена.
Вы используете аутентификацию? Аккаунты конвертируются в настоящие имена:
Внешний вид можно настроить в CSS-файле.
Отображаемые столбцы также можно настроить, а ненужные можно удалить.
Поддерживается сортировка по столбцам (sorttable.js).
Если щелкнуть значок графика слева, вы увидите такой график:
При нажатии на иконку справа получаем отчет 5.
2) топсайты - отчет о самых популярных сайтах.
По умолчанию отображается список из 100 самых популярных сайтов (значение можно регулировать).
С помощью регулярных выражений или установки псевдонимов вы можете объединить трафик с доменов 3-го и выше уровней в домен 2-го уровня (как на скриншоте) или задать любое другое правило.
Для каждого домена можно задать правило отдельно, например для yandex.ru и mail.ru объединить до 3-го уровня.
Значение полей вполне очевидно.
3) site_users — отчет о том, кто посещал конкретный сайт. Здесь все просто: имя домена и кто к нему обращался.
Трафик здесь не отображается.
4)users_sites – отчет о сайтах, посещенных каждым пользователем.
Здесь тоже все ясно.
Если нажать на иконку в первом столбце, получим отчет 8).
5) date_time — распределение пользовательского трафика по дням и часам.
6) Denied — запросы заблокированы squid. Здесь отображается, кому, когда и где был запрещен доступ.
Количество записей настраивается (по умолчанию — 10).
7) auth_failures — сбои аутентификации.
HTTP/407. Количество записей настраивается (по умолчанию — 10).
8) site_user_time_date — показывает в какое время пользователь зашёл на какой сайт и с какой машины.
9) загрузки - список загрузок.
10) useragent - отчет об используемых программах
В первой части отчета отображается IP-адрес и используемые юзерагенты.
Второй содержит общий список юзерагентов с распределением в процентах с учетом версий.
11) редиректор - в отчете показано, у кого был заблокирован доступ с помощью блокировщика.
Поддерживаются Squidguard, dansguardian, rejik, формат журнала настраивается.
SARG имеет более 120 параметров настройки, языковую поддержку (100% сообщений переведено на русский), поддержку регулярных выражений, работу с LDAP, возможность предоставлять пользователям доступ только к своим отчетам на веб-сервере (через .
htaccess).
, возможность конвертировать логи в свой формат для экономии места, выгрузка отчетов в текстовый файл для последующего наполнения базы, работа с лог-файлами squid (разбиение одного или нескольких лог-файлов по дням).
Есть возможность создавать отчеты для определенного набора заданных групп, например, если вам нужно сделать отдельный отчет по отделу.
В дальнейшем доступ к веб-странице с отчетами отдела можно будет предоставить, например, менеджерам с помощью веб-сервера.
Отправлять отчеты можно и по электронной почте, однако пока поддерживается только отчет топпользователей, а само письмо будет простым текстом без поддержки HTML. Вы можете исключить определенных пользователей или определенные хосты из обработки.
Вы можете устанавливать псевдонимы для пользователей, объединяя трафик нескольких аккаунтов в один, например, все аутстафферы.
Также можно задать псевдонимы для сайтов, например объединить несколько социальных сетей в определенный псевдоним, в этом случае все параметры для указанных доменов (количество подключений, объем трафика, время обработки) будут суммироваться.
Либо с помощью регулярного выражения можно «отбросить» домены выше 3-го уровня.
В отдельные файлы можно выгрузить список пользователей, превысивших определенные объемы за период. На выходе будет несколько файлов, например: userlimit_1G.txt - превышающий 1 Гб, userlimit_5G.txt - превышающий 5 Гб и так далее - всего 16 лимитов.
SARG также имеет в своем арсенале пару PHP-страниц: для просмотра текущих подключений к squid и для добавления доменных имен в черные списки squidguard. В целом это очень гибкий и мощный инструмент, который легко освоить.
Все параметры описаны в файле конфигурации по умолчанию, в раздел вики У проекта на sourceforge в разделе wiki есть более подробное описание всех параметров, разбитых на группы, и примеры их использования.
фри-са
Внутреннее развитие.С ноября 2013 года не было новых версий.
Заявлено, что отчеты создаются быстрее, чем конкурирующие программы, и для заполненных отчетов требуется меньше места.
Давай проверим! По логике работы эта программа наиболее близка к SARG (и автор сам сравнивает ее с этой программой (например, здесь )), поэтому и будем сравнивать с ним.
Порадовало наличие нескольких тем оформления.
Тема состоит из 3 css файлов и 4 соответствующих им иконок png. Отчеты на самом деле делаются быстрее.
Ежедневный отчет был создан в 4:30, тогда как у SARG было 12 минут. Однако с занимаемым объемом все было не так: объем, занимаемый отчетами, составляет 440 МБ (free-sa) и 336 МБ (SARG).
Попробуем поставить задачу посложнее: обработать за 10 дней лог-файл размером 3,2 ГБ, содержащий 26,3 миллиона строк.
Free-sa также сделала отчет быстрее, за 46 минут, отчет занимает 3,7 ГБ дискового пространства.
САРГ потратил 1 час 10 минут, отчет занимает 2,5 Гб.
Но оба эти отчета будет неудобно читать.
Кому, например, захочется вручную подсчитывать, какой домен популярнее — vk.com или googlevideo.com, и вручную считать трафик всех их поддоменов? Если оставить в настройках SARG только домены 2-го уровня, то создание отчета займет примерно столько же времени, но теперь сам отчет занимает на диске 1,5 ГБ (ежедневно с 336 МБ уменьшилось до 192 МБ).
Подробности При входе на главную страницу видим примерно следующее (выбрана блюзовая тема):
Честно говоря, непонятна цель отображения года и месяцев; при нажатии на них ничего не происходит. Можно что-то написать в поле поиска, но опять ничего не происходит. Вы можете выбрать интересующий период.
Список заблокированных URL-адресов:
Отчет метода CONNECT:
Отчет метода PUT/POST:
Скачать отчет:
Популярные сайты:
Отчет об эффективности прокси-сервера показался интересным:
Пользовательский отчет:
При нажатии на иконку графика во втором столбце мы получаем график использования Интернета конкретным пользователем:
При нажатии на второй значок получаем таблицу загрузки интернет-канала по часам:
При выборе IP-адреса мы получаем список сайтов по пользователям в порядке убывания трафика:
Вся статистика отображается в байтах.
Для перехода на мегабайты необходимо установить параметр
report_bytes_divisor="M"Программа не принимает сжатые файлы журналов, не принимает более одного файла с параметром -l и не поддерживает фильтрацию файлов по маске.
Автор программы предлагает обойти эти ограничения, создав именованные каналы.
Обнаружен досадный глюк — при слишком большой длине строки лога вместо адресов вводятся временные метки:
При просмотре трафика этого «пользователя» вы можете увидеть домен с источником ошибки:
Таким образом, количество пользователей выросло в несколько раз.
Если сравнить эти две программы, free-sa создает отчет немного быстрее.
20-кратного увеличения скорости, как заявлено автором, мне обнаружить не удалось.
Возможно, это можно увидеть при определенных условиях.
Думаю, не имеет значения, сколько времени уйдет на создание еженедельного отчета ночью — 30 минут или 50. По объему места, занимаемого отчетами, у free-sa нет преимуществ.
световой кальмар
Пожалуй, самый популярный счетчик трафика.Работает быстро, отчеты не занимают много места на диске.
Хотя эта программа давно не обновлялась, я все же решил рассмотреть ее возможности в этой статье.
Логика программы другая: программа читает журнал и создает набор файлов данных, которые затем использует для создания веб-страниц.
То есть здесь нет заранее созданных отчетов с данными; страницы с данными генерируются «на лету».
Плюсы такого решения очевидны: для получения отчета не обязательно парсить все логи за период; накопленный лог достаточно «скормить» Lightsquid один раз в день.
Вы можете делать это с помощью cron несколько раз в день или даже несколько раз в день, чтобы быстро добавить новую информацию.
Есть некоторые недостатки: невозможно обрабатывать логи с разных серверов и собирать статистику в одном месте: при обработке лога за день с другого сервера имеющаяся статистика за этот день стирается.
Есть странное ограничение: Lightsquid «воспринимает» как несжатые лог-файлы, так и сжатые (gz — именно), но во втором случае имя файла должно быть в следующем формате: access.log.X.gz, файлы с именем формат access.log- ГГГГММДД.
gz не примет его.
Путём несложных манипуляций преодолеем это ограничение и посмотрим, что получится.
Подробности Отчет за месяц (общий трафик 3 ТБ, 110 млн строк) занял 1 ГБ дискового пространства.
На главной странице мы видим трафик по дням за текущий месяц.
При выборе дня мы видим отчет за день для всех пользователей:
Если группы указаны, в правом столбце отображается название группы, к которой принадлежит пользователь.
Пользователи, не входящие ни в одну группу, объединяются в группу 00 нет в группе (в этом отчете они отмечены знаком вопроса).
При выборе grp на главной странице за соответствующую дату вы попадаете на страницу отчета пользователя, разделенную на группы.
Сначала перечисляются те, которые не включены ни в одну группу, затем группы по порядку.
При нажатии на название группы в таблице справа мы переходим ниже к тому месту на странице, где начинается отчет по этой группе:
При нажатии на «Отчет по топ сайтам» мы получаем отчет по популярным сайтам за день:
Отчет о больших файлах:
Перейдем к таблице справа.
Здесь вы можете получить список топ сайтов за месяц и за весь год (выглядят они одинаково, поэтому скриншота нет), общую статистику за год и месяц, а также статистику за год и месяц по группам.
Статистика за месяц:
Нажав на иконку часов мы можем увидеть таблицу сайтов, времени доступа и потребляемого трафика за час:
Здесь отображается статистика за день, но за месяц и за год она будет выглядеть примерно одинаково, будет суммироваться почасовая статистика по доменам.
При нажатии на иконку графика мы можем увидеть расход трафика пользователя в течение месяца:
Столбцы графика кликабельны: при нажатии на столбец вы переходите к статистике пользователя за другой день.
Нажав на [М], мы получим отчет о потреблении трафика пользователем в течение месяца с указанием объема за каждый день и за полную неделю.
При нажатии на имя пользователя мы получаем список сайтов, которые посещал пользователь, в порядке убывания посещаемости:
Ну, кажется, это все.
Все просто и лаконично.
IP-адреса могут быть преобразованы в доменные имена.
Используя регулярные выражения, доменные имена можно объединять в домены 2-го уровня; на всякий случай вот регулярное выражение: $url =~ s/([a-z]+:\/\/)??([a-z0-9\-]+\.
){0,}([a-z0-9\-]+\.
){1}([a-z]+)(.
*)/$3$4/o;
Если у вас есть навыки работы с Perl, вы можете настроить его в соответствии со своими потребностями.
SquidAnalyzer
Программа, похожая на Lightsquid и тоже написанная на Perl. Более красивый дизайн.Последняя версия 6.4 вышла в середине декабря этого года, в ней было сделано множество улучшений.
Сайт программы: squidanalyzer.darold.net .
SquidAnalyzer может использовать несколько процессоров на вашем компьютере (опция -j), что приводит к более быстрому созданию отчетов, но это применимо только к несжатым файлам.
Для упакованных (поддерживается формат gz) обработка происходит с использованием одного ядра процессора.
И еще сравнение с Lightsquid: тот же отчет на том же сервере занял около суток, на диске занимает 3,7 ГБ.
Как и в случае с Lightsquid, SquidAnalyzer не сможет объединить два или более файлов журналов с разных серверов за один и тот же период. Подробнее Домашняя страница - можно выбрать год отчета.
При выборе любого периода (год, месяц, неделя, день) внешний вид веб-страниц будет одинаковым: вверху находится меню со следующими отчетами: MIME-типы, Сети, Пользователи, Самые запрещенные, Самые популярные URL-адреса, Топ доменов.
Ниже представлена статистика прокси за выбранный период: Запросы (Попадание/Промах/Отклонено), Мегабайты (Попадание/Промах/Отклонено), Всего (Запросы/Мегабайты/Пользователи/Сайты/Домены).
Ниже представлен график количества запросов за период и трафика.
В правом верхнем углу находится календарь.
При выборе месяца вы можете увидеть краткую статистику и график загрузок по дням:
Календарь позволяет выбрать неделю.
При выборе мы увидим аналогичную статистику:
При выборе дня вы видите статистику по часам:
Отчет о типах контента:
Отчет сетей.
Пользовательский отчет.
При выборе пользователя мы получаем его статистику за период.
Запрещенные ресурсы:
Отчет по доменам 2-го уровня.
От себя хочу отметить очень медленную работу программы по мере накопления информации.
С каждым новым логом пересчитывается статистика за неделю, месяц и год. Поэтому я бы не рекомендовал эту программу для обработки логов с сервера с большим трафиком.
ЭкранSquid
В этой программе другая логика: лог импортируется в базу данных MySQL, затем из него запрашиваются данные при работе в веб-интерфейсе.База данных с уже упомянутым ранее обработанным десятидневным журналом занимает 1,5 ГБ.
Подробнее Программа не может импортировать файлы журналов с произвольным именем; он привязывается только к access.log.
Домашняя страница:
Краткая статистика:
Вы можете создавать псевдонимы для IP-адресов:
.
и тогда их можно объединить в группы:
Перейдем к главному – отчетам.
Слева находится меню с типами отчетов: Логины пользовательского трафика Пользовательский трафик IP-адреса Трафик сайта Лучшие сайты Лучшие пользователи Топ IP-адреса По времени суток Расширены входы в пользовательский трафик Расширение пользовательского трафика IP-адреса Трафик IP-адреса с разрешением Популярные сайты Кто скачивал большие файлы Трафик по периоду (дни) Трафик по периоду (название дня) Трафик по периодам (месяцев) HTTP-статусы IP-адреса для входа Входы с IP-адресов Примеры отчетов.
Пользовательский трафик IP-адреса:
Трафик сайта:
Лучшие сайты:
.
далее, честно говоря, терпения на изучение возможностей у меня не хватило, так как страницы стали генерироваться за 3-5 минут. Отчет «время суток» за сутки, журнал по которому вообще не импортировался, создавался более 30 секунд. За день с пробками - 4 минуты:
Вот и все.
Надеюсь, этот материал будет кому-то полезен.
Спасибо всем за внимание.
Теги: #it-инфраструктура #Системное администрирование #log #squid #screensquid #sarg #squidanalyzer #lightsquid #free-sa
-
«Никаких Скрытых Платежей», Говорите Вы?
19 Oct, 24 -
Электромагнитные Поля На Рабочем Месте
19 Oct, 24 -
Swift: Теперь На Русском!
19 Oct, 24 -
Выбор Ноутбука. Оно Горит!
19 Oct, 24 -
Управление Фронтенд-Проектами С Помощью Npm
19 Oct, 24