Ведём статистику прокси-сервера Squid::Журнал СА 7.2006
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6182
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6892
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4174
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2985
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3789
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3798
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6293
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3147
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3444
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7260
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10627
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12347
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13979
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9107
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7060
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5371
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4602
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3412
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3140
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3386
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3010
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Ведём статистику прокси-сервера Squid

Архив номеров / 2006 / Выпуск №7 (44) / Ведём статистику прокси-сервера Squid

Рубрика: Администрирование /  Продукты и решения

Павел Малахов

Ведём статистику прокси-сервера Squid

Журнальные файлы прокси-сервера Squid даже для небольших предприятий могут быть очень объёмны. Разбирать их вручную малоэффективно, а вести статистику или учёт просто невозможно. Для этого существуют вспомогательные программы.

Рано или поздно мы (системные администраторы) хотим (или нас заставляют) установить контроль над использованием интернет-трафика. У меня пользователи периодически недоумённо осведомляются, на что истратилась их квота. Чаще всего они не глядя скачали какое-нибудь обновление, но бывают случаи, от них не зависящие. Например, не отвечал сервер mail.ru, а его агенты, пытаясь установить с ним связь, «съедали» у некоторых пользователей большую часть их скромной квоты. Приходилось несколько раз сталкиваться со злонамеренными самообновляющимися страницами. Ясность частично можно внести и штатными средствами, используя команды cat и grep. Например, сделать выборку из журнала для конкретного IP-адреса командой:

# cat /var/log/squid/access.log | grep 10.0.0.15 > /tmp/10.0.0.15.txt

а затем перенести файл на компьютер, где есть MS Excel, и там его просматривать. Так я и делал, пока не потребовалось проводить более серьёзный анализ и вести статистику.

Подготовительные работы

Ради универсальности процедуры установки программ под разные операционные системы (семейства UNIX) будем устанавливать их из исходных кодов. На сайтах программ указано, где можно взять уже собранные пакеты для определённых ОС. По возможности лучше использовать их, так как в этом случае пакет регистрируется в системе, что при автоматическом обновлении ОС позволит получить подробную информацию об установленном пакете, соблюдать зависимости при установке новых пакетов и в других случаях. Примите во внимание, что при установке собранного пакета пути к файлам могут отличаться от указанных в статье. Для просмотра отчётов через веб-интерфейс нам понадобится веб-сервер. Отчёты будем хранить в каталоге /var/www/html/reports.

Calamaris и LightSquid написаны на Perl, поэтому он должен уже стоять в системе. Автор Calamaris рекомендует ставить самую последнюю версию, хотя и упоминает, что некоторые пользователи успешно использовали его программу на Perl 5.001. Требования к Perl для LightSquid не приводятся, так что от себя скажу, что на версии 5.8.7 всё работает отлично.

Squid (www.squid-cache.org), конечно, уже должен быть установлен, вести журнал в родном формате (что определяется в squid.conf опцией emulate_httpd_log off) и проводить ежедневную ротацию журналов, не сжимая архивы. Последнюю задачу лучше поручить программе logrotate, указав в файле /etc/logrotate.d/squid следующее:

/var/log/squid/access.log {

    daily

    rotate 6

    copytruncate

    nocompress

    notifempty

    missingok

}

… # далее описана ротация cache.log и  store.log

а Squid освободить от этой обязанности, указав опцию logfile_rotate 0.

Sarg

Sarg (Squid Analysis Report Generator – генератор аналитических отчётов Squid) доступен на нескольких языках, на русском – в трёх кодировках: koi-8, UTF-8, windows-1251.

  • Сайт – sarg.sourceforge.net.
  • Стабильная версия – 2.2.1.
  • Объём – 376 Кб.
  • «Понимает» журналы – Squid, Microsoft ISA, Novell Border Manager.

Собираем стандартным способом:

# ./configure

Если вы используете Linux и хотите размещать конфигурационные файлы в /etc/sarg (по умолчанию /usr/local/sarg), в этом случае укажите соответствующую опцию:

# ./configure --enable-sysconfdir='/etc/sarg'

# make

# make install

Создаём каталог, где будем хранить отчёты:

# mkdir -p /var/www/html/reports/

В /etc/sarg/sarg.conf устанавливаем параметры:

language Russian_koi8

access_log /var/log/squid/access.log.1  # вчерашний журнал

title "Squid report for proxy1"

output_dir /var/www/html/reports/sarg

date_format e

charset Koi8-r

www_document_root /var/www/html

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

  • e – dd/mm/yyyy – европейский формат даты;
  • u – mm/dd/yyyy – американский формат даты (предлагается по умолчанию);
  • – yyyy.ww – год и номер недели в году.

Все необходимые настройки сделаны, запускаем:

# sarg

SARG: Records in file: 19329, reading: 100.00%

SARG: Отчет успешно сгенерирован в: /var/www/html/reports/sarg/04Jun2006-06Jun2006

Видим, что всё прошло успешно. Теперь отчёт можно посмотреть в браузере. Ещё несколько параметров, которые могут понадобиться:

# оставить в отчёте только нескольких пользователей

include_users "petrov:ivanov:secretar"

# не учитывать записи журнала, содержащие подстроки

exclude_string "подстрока1:подстрока2" 

# не учитывать обращения к перечисленным доменам

exclude_hosts /etc/sarg/hosts.txt 

# сколько файлов отчётов нужно хранить в директории, самый старый убирается

lastlog  30

# создавать отчёт только для указанных дней недели, воскресенью соответствует 0

weekdays 1-5

#создавать отчёт только для определённых часов

hours   8-18

Можно отправлять отчёт по почте. Правда, в этом случае не будет формироваться html-файл.

В параметре report_type можно указать, какие отчёты нас интересуют. Sarg предоставляет следующие:

  • topsites – отображает название сайта, количество подключений к нему, количество взятых с него байт и общее время соединений;
  • sites_users – отображает список всех посещённых сайтов и какие пользователи на них заходили;
  • users_sites – отображает список сайтов, на которые заходил пользователь, количество подключений к каждому и скаченный объём (рис. 1);
  • date_time – отображает таблицу интенсивности использования прокси-сервера пользователем в часах и днях (рис. 2);
  • denied – отображает список сайтов, в доступе к которым было отказано;
  • auth_failures – отображает ошибки аутентификации;
  • site_user_time_date – отображает для каждого пользователя дату и время всех обращений к сайту;
  • downloads – отображает отчёт по загрузкам (download). Какие файлы отнести к этой категории, определяем в параметре donwload_suffix. Например, можно указать расширения аудио-файлов и узнать, кто, когда и откуда скачивал  музыку.

Рисунок 1. Список сайтов, которые посетил пользователь

Рисунок 1. Список сайтов, которые посетил пользователь

Рисунок 2. Активность пользователя в Интернете

Рисунок 2. Активность пользователя в Интернете

Sarg также может обрабатывать журналы DansGuardian и SquidGuard – сторонних программ, написанных для Squid и ограничивающих доступ к сайтам на основании различных правил (по URL, по содержимому сайта и т. д.).

Calamaris 3

Переводится с английского так же, как и Squid, – кальмар, головоногий моллюск.

  • Сайт – www.Calamaris.Cord.de.
  • Стабильная версия – 2.59.
  • Объём – 100 Кб.
  • «Понимает» журналы – Squid, NetCache, Inktomi Traffic Server, Oops! proxy server, Compaq Tasksmart, Novell Internet Caching System, Netscape/iPlanet/SunONE Web Proxy Server, Cisco Content Engines.

Если не нужны графики, то достаточно одного скрипта. Распаковываем:

# tar -xzvf /path/to/calamaris-2.59.tgz

Если же хочется увидеть результаты ещё и в графиках, то нужно устанавливать бета-версию 2.99.4.0 (сбоев не замечено) и доустановить библиотеки и модули. Подробную инструкцию можно посмотреть в [1], но и идущая с пакетом инструкция вполне понятна (правда, на английском).

Создаём каталоги для самого Calamaris и для создаваемых им отчётов:

# mkdir -p /etc/calamaris /var/www/html/reports/calamaris

Копируем calamaris.conf в /etc/calamaris/ и редактируем:

$requester_report = -1;

$status_report = 1;

$type_report = -1;

$hostname = 'lookup';

$output_format = 'html,graph';

$output_path = '/var/www/html/reports/calamaris';

$output_file = 'index.html';

$show_reports = '0,2,5,6,8,10,11,13,14';

Копируем calamaris в /etc/calamaris/calamaris.pl. Расширение добавляем для определённости, что это скрипт на Perl.

Создаём каталог /usr/lib/perl5/calamaris (или там, где у вас находятся библиотеки perl) и копируем туда calAxestype.pm, calAxestype3d.pm, calBars3d.pm.

Копируем мануал calamaris.1 в /usr/local/man/man1/.

Будем использовать скрипт (см. листинг), который позволит нам создавать ежедневные, еженедельные и ежемесячные отчёты. Ежедневные будут храниться месяц, а еженедельные и ежемесячные – год. Скрипт поместим в /etc/calamaris/calam_rep.sh <files/scripts/calam_rep.sh>.

#!/bin/bash

# Скрипт для Calamaris 3. Создаёт отчёты по логам Squid

# Использование: calam_rep.sh [today|yesterday|week|month]

# Pavel Malakhov 28.03.05

CALAM_DIR='/etc/calamaris';       # Каталог программы

SQUID_LOG_DIR='/var/log/squid';   # Каталог логов Squid

# Корневой каталог отчётов, остальные создадутся

REP_PATH_PREFIX='/var/www/html/reports/squid';

# Каталог, где будем хранить недельные кэш-файлы

CACHE_DIR='/etc/calamaris/cache';

# Так как отчёт делаем за вчерашний день, то название отчёта должно это отражать. Определим для этого переменные.

# Для наглядности предположим, что сегодня 1 февраля 2006, среда, тогда вчера было 31 января, вторник

# Вчерашнее число, т.е. YESTD=31

YESTD=`date -d yesterday +%d`;

YESTW=`date -d yesterday +%V`;    # Номер недели

# Для нашего примера номер недели не изменился и YESTW=5. Номер и название месяца, т.е. YESTM=01_January

YESTM=`date -d yesterday +%m_%B`;

# Существует проблема с обработкой не английских букв, если используется кодировка en_US.UTF-8.

# Поэтому переназначим переменную LANG. Если используется другая кодировка или проблем нет, то закомментируйте

# нижеследующие 2 строки

LANG=en_US

export $LANG

# --- Нижеследующий код изменять не нужно ---------------

# ---- [но исследование приветствуется!] ----------------

# Если параметр отсутствует, то прерываем выполнение скрипта

if [ "$1" = "" ]; then

 echo "Usage: calam_rep.sh [today|yesterday|week|month]"

 exit 1

fi

# Если каталог для отчётов не существует, то создаём

function checkdir {

 if [ ! -e "$REPPATH" ];then

 echo -n `date +%c` "Dir \"$REPPATH\" is absent. Creating..";

 mkdir -p $REPPATH;

 echo "Done.";

 fi;

}

# Если каталог для кэша не существует, то создаём

if [ ! -e "$CACHE_DIR" ];then

 echo -n `date +%c` "Cache dir \"$CACHE_DIR\" is absent. Creating... ";

 mkdir -p $CACHE_DIR;

 echo "Done.";

fi;

case "$1" in

 "today" )

 REPPATH=$REP_PATH_PREFIX'/today';

 checkdir;

 cd $CALAM_DIR;

 echo -n `date +%c` "Processing data for today... ";

 cat $SQUID_LOG_DIR/access.log | ./calamaris.pl --config-file ./calamaris.conf --output-path

$REPPATH;

 ;;

 "yesterday" )

 REPPATH=$REP_PATH_PREFIX'/days/'$YESTD;

 checkdir;

 cd $CALAM_DIR;

 echo -n `date +%c` "Processing data for yesterday... ";

 cat $SQUID_LOG_DIR/access.log.0 | ./calamaris.pl --config-file ./calamaris.conf --output-path $REPPATH --cache-output-file $CACHE_DIR/day.$YESTD;

 ;;

 "week" )

 REPPATH=$REP_PATH_PREFIX'/weeks/'$YESTW;

 checkdir;

 cd $SQUID_LOG_DIR;

 echo -n `date +%c` "Processing data for week... ";

 cat access.log.6 access.log.5 access.log.4 access.log.3 access.log.2 access.log.1 access.log.0 |

$CALAM_DIR/calamaris.pl --config-file

$CALAM_DIR/calamaris.conf --output-path $REPPATH --cache-output-file $CACHE_DIR/week.$YESTW;

 ;;

 "month" )

 REPPATH=$REP_PATH_PREFIX'/months/'$YESTM;

 checkdir;

 cd $CACHE_DIR;

 CACHEFILES="";

 for ((i=1; i<=31; i++)); do

 FILE='day.'$i;

 if [ -e "$FILE" ]; then

 if ["$CACHEFILES" = ""]; then

 CACHEFILES=$FILE;

 else

 CACHEFILES=$CACHEFILES':'$FILE;

 fi

 fi

 done

 echo 'files to process '$CACHEFILES;

 echo -n `date +%c` "Processing data for month... ";

 $CALAM_DIR/calamaris.pl --config-file

$CALAM_DIR/calamaris.conf --cache-input-file $CACHEFILES --no-input --output-path $REPPATH;

 echo "Done";

 # Очищаем кэш в начале месяца.

 # Удаляем только записи для дней, для недель оставляем

 DD=`date +%d`;

 if [ "$DD" = "01" ]; then

 echo -n `date +%c` "Cleaning up cache dir... ";

 rm -f $CACHE_DIR/day.*;

 fi

 ;;

esac

echo "Done";

echo `date +%c` "---Everything is done"

exit 0

Делаем этот скрипт исполняемым:

# chmod +x /etc/calamaris/calam_rep.sh

Cоздаём отчёт:

# ./calam_rep.sh yesterday

и смотрим его в браузере по адресу http://our.domain.ru/reports/calamaris/days.

Создаём журнальный файл /var/log/calam_rep.log, куда будем записывать результаты запуска скрипта по cron:

# touch /var/log/calam_rep.log

Слабое место Calamaris – статистика по пользователям и сайтам, сильная сторона – общая статистика по нагрузке на прокси-сервер. Все отчёты последовательно отображаются на одной html-странице. Некоторые отчёты не отображаются, если в журнале не найдены необходимые для него записи. Мне удалось получить 11 отчётов. Вот их описание:

  • Summary – суммарная информация по работе прокси-сервера (рис. 3).
  • Incoming requests by method – входящие запросы по методу (Get, Post и т. д.).
  • Incoming UDP(TCP)-requests by status – входящие запросы по статусу (HIT, MISS, DENIED и т. д.).
  • Outgoing requests by status – исходящие запросы по статусу.
  • Outgoing requests by destination – исходящие запросы по месту назначения.
  • Request-destinations by 2nd-level-domain – сгруппированная статистика для доменов 2-го уровня, т.е. запросы на site1.example.com и site2.example.com суммируются в статистике для домена example.com.
  • Request-destinations by toplevel-domain – сгруппированная статистика для доменов 1-го уровня (ru, com, org и т. д.)
  • TCP-Request-protocol – распределение трафика по протоколам (рис. 4).
  • Requested content-type – распределение трафика по значению поля Content-type и по статусу входящих TCP-запросов (TCP_HIT, TCP_MISS, TCP_DENIED, и т. д.)
  • Requested extensions – распределение трафика по расширениям запрошенных файлов (gif, htm и т. д.).
  • Incoming UDP(TCP)-requests by host – статистика по пользователям (количество запросов, скаченный объём).

Рисунок 3. Cуммарная информация по работе прокси-сервера

Рисунок 3. Cуммарная информация по работе прокси-сервера

Рисунок 4. Распределение трафика по протоколам

Рисунок 4. Распределение трафика по протоколам

Если Calamaris будет не единственным обработчиком журналов Squid, то я бы не ставил поддержку графики (от них практической пользы нет) и не выводил статистику по пользователям (другие программы это делают и полнее, и красивее). В таком облегчённом варианте он ставится быстро, и генерируемые им отчёты в будущем будут занимать меньше места.

LightSquid

Перевести название программы можно как «освещённый Squid». В каком свете нам будет представлен Squid, а точнее наши пользователи, можно посмотреть по адресу http://lightsquid.sourceforge.net/demo16b/index.cgi?year=2005&month=04.

Берём последнюю версию с lightsquid.sourceforge.net и распаковываем:

# tar -zxvf ./lightsquid-1.6-beta.tgz

Создаём каталог, где будем хранить отчёты:

# mkdir -p /var/www/html/reports/lightsquid

Всё содержимое каталога lightsquid-1.6-beta копируем в созданный каталог. Меняем владельца на того, кто у нас в роли httpd-пользователя (например, webmaster) и делаем скрипты исполняемыми файлами:

# chown -R root.webmaster /var/www/html/reports/lightsquid

# cd /var/www/html/reports/lightsquid

# chmod +x *.cgi

# chmod +x *.pl

В конфигурационном файле lightsquid.cfg меняем значения переменных:

# пути к настроечным файлам

$tplpath     ="/var/www/html/reports/lightsquid/tpl";

$langpath    ="/var/www/html/reports/lightsquid/lang";

$reportpath  ="/var/www/html/reports/lightsquid/report";

$ip2namepath ="/var/www/html/reports/lightsquid/ip2name";

# путь к журналам Squid

$logpath     ="/var/log/squid/";

# какие сайты не учитывать в отчётах

$skipurl       = "zdd.com|192\.168\.1\.|cnn.com";

# язык отчётов

$lang          = "ru";

# определяем размер «большого файла» в 2 Мб

$bigfilelimit        = 2*1024*1024;

# показывать отчёт о пользователях, превысивших квоту

$showoversizelink    = 1;

# устанавливаем квоту 10 Мб (одна для всех)

$perusertrafficlimit = 10*1024*1024;

Проверяем, все ли настройки сделаны правильно:

# ./ check-setup.pl

Создаём отчёт:

# ./lightparser.pl

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

Рисунок 5. Удобный интерфейс начальной страницы LightSquid

Рисунок 5. Удобный интерфейс начальной страницы LightSquid

LightSquid поддерживает как родной формат журнала Squid, так и формат httpd.

Можно объединять пользователей в группы и смотреть отчёты по группе. Для этого в файле group.cfg определяем, какой пользователь к какой группе относится:

192.168.10.1    01     Sysadmin

192.168.10.9    02     Managers

192.168.10.14   02     Operators

192.168.10.30   02     Operators

192.168.10.74   03     Managers

Можно вместо IP-адресов выводить имя компьютера и каждому имени компьютера сопоставить реальное имя пользователя. Для первой цели автор программы предлагает либо использовать DNS, либо подставлять из списка. Скрипты, обрабатывающие файлы списков, находятся в подкаталоге ip2name. Можно написать свой, но нам сейчас достаточно использовать имеющийся. Для того чтобы получить отчёт, как на рис. 6, определяем в lightsquid.cfg следующие параметры:

$ip2name       = "list";

$showgrouplink = 1;

$userealname   = 1;

Рисунок 6. Популярные сайты. Можно сортировать по «Соединениям» и по «Байтам»

Рисунок 6. Популярные сайты. Можно сортировать по «Соединениям» и по «Байтам»

В ./ip2name/ip2name.list меняем значение переменной:

sub StartUser() {

 my $ipfile = "/var/www/html/reports/lightsquid/users.txt";

и создаём указанный файл следующего содержания:

192.168.10.1   Myself

192.168.10.9   Bond

192.168.10.14  Bart

192.168.10.30  Ivan

192.168.10.74  Petrov

Теперь в group.cfg нужно заменить все IP-адреса на сопоставленные им имена компьютеров, а в файле realname.cfg сопоставить имена компьютеров с именами рользователей:

Myself  sysadmin

Bart    Bart Simpson

Ivan    Ivan Ivanov

Petrov  Petrov Semen Semenovich

Bond    James Bond

Конечно, если у вас где-то ведётся свой список пользователей, то лучше использовать его, написав для LightSquid небольшой скрипт по разбору этого файла.

Запуская программу, мы получаем следующие отчёты:

  • Количество соединений и скачанных байт на день, на месяц и на год по каждому пользователю, для группы и для прокси-сервера в целом.
  • Популярные сайты (рис. 7). В этом есть возможность сортировки списка по количеству запросов либо по объёму данных.
  • Таблица времени доступа пользователя к сайтам, то есть время его активности в Интернете.
  • Отчёт о «больших» скачанных файлах.

Рисунок 7. Группировка пользователей в LightSquid

Рисунок 7. Группировка пользователей в LightSquid

Хочется особо отметить удобный интерфейс.

Последние штрихи

Осталось автоматизировать генерацию отчётов путём добавления в /etc/crontab соответствующих заданий:

# Генерируем отчёты прокси сервера Squid

0/20 * * * * root /var/www/html/reports/lightsquid/lightparser.pl today

5    0 * * * root /usr/sbin/sarg

30   0 * * * root /etc/calamaris/calam_rep.sh yesterday >> /var/log/calam_rep.log

35   0 * * 6 root /etc/calamaris/calam_rep.sh week >> /var/log/calam_rep.log

45   0 1 * * root /etc/calamaris/calam_rep.sh month >> /var/log/calam_rep.log

Конечно, частота обновления отчётов остаётся на ваше усмотрение. В приведённом примере LightSquid будет поддерживать свои отчёты в актуальном состоянии, обновляя их через каждые 20 минут. Sarg будет создавать их один раз в день после ротации журналов, которую logrotate делает в полночь. А Calamaris будет запускаться с аналогичной задачей ежедневно в 00:30, раз в неделю по понедельникам в 00:35 и первого числа каждого месяца в 00:45. В первых же числах он обновит свой журнал.

Ограничим доступ к отчётам только с определённых IP-адресов. Для этого создаём файл /var/www/html/reports/.htaccess:

Options +Indexes

Order deny,allow

Deny from all

Allow from 192.168.100.11

Allow from 192.168.100.17

Можно сделать доступ по паролю. Подробности по настройке доступа можно прочитать в [2].

Подведем итоги

У всех трёх программ есть настройки внешнего вида отчёта, графики. Все поддерживают русский язык. У каждой есть свои отличительные характеристики, заслуживающие внимания, и можно установить все три, но если такой возможности (или желания) нет, то при выборе стоит учесть:

  • нужны ли вам те или иные отчёты;
  • достаточно ли у вас дискового пространства, чтобы хранить все желаемые отчёты;
  • позволяет ли нагрузка на процессор добавить генерацию всех желаемых отчётов. Для обработки 140 тысяч строк журнала на компьютере с процессором Pentium 4 с тактовой частотой 3 ГГц и с 1 Гб оперативной памяти потребовалось для всех трёх программ вместе при их последовательном запуске около 2,5 минуты.

Напоследок хочу сказать, что, поискав в Интернете отклики по этим программам, вы обнаружите различные жалобы администраторов на их неудобство или даже частичную неработоспособность. Так, например, Sarg до сих пор останавливается на некоторых записях журнала, отказываясь создавать отчёт (благо что такие записи у меня попадаются редко). Однако все три проекта довольно активно развиваются и недочёты исправляются, поэтому ставьте свежие версии программ и пользуйтесь!

  1. http://pm4u.narod.ru/linux_server.htm#Calamaris3.
  2. Малахов П. Многоликий Apache. Размещаем несколько сайтов на одном веб-сервере. //Системный администратор, №12, 2005 г. – с. 63-65 – http://www.samag.ru/cgi-bin/go.pl?q=articles;n=12.2005;a=12.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru