Настройка программы отображения статистики free-sa: различия между версиями
Misha (обсуждение | вклад) (→Настройка программы) |
Misha (обсуждение | вклад) м (Откат правок Reliaka (обсуждение) к версии Misha) |
||
(не показано 16 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
==Описание== | ==Описание== | ||
− | Представлены первые релизы нового проекта Free-SA, занимающегося разработкой программы, которая является хорошей заменой устаревшего SARG. Версия Free-SA, использованная для написания данной статьи: '''1. | + | Представлены первые релизы нового проекта Free-SA, занимающегося разработкой программы, которая является хорошей заменой устаревшего SARG. Версия Free-SA, использованная для написания данной статьи: '''1.6.2'''<br/> |
Из особенностей Free-SA автор выделяет: | Из особенностей Free-SA автор выделяет: | ||
* более внятная архитектура и код (C/HTML/CSS); | * более внятная архитектура и код (C/HTML/CSS); | ||
Строка 16: | Строка 16: | ||
==Установка программы== | ==Установка программы== | ||
Итак идем на [http://free-sa.sourceforge.net/ | сайт программы], потом на '''download''' и выкачиваем последний релиз программы<br/> | Итак идем на [http://free-sa.sourceforge.net/ | сайт программы], потом на '''download''' и выкачиваем последний релиз программы<br/> | ||
− | Допустим, что это файл '''free-sa- | + | Допустим, что это файл '''free-sa-2.0.0b4p8.tar.gz''': |
− | <pre># cp free-sa- | + | <pre># cp free-sa-2.0.0b4p8.tar.gz /usr/local/src |
# cd /usr/local/src | # cd /usr/local/src | ||
− | # tar -zfx free-sa- | + | # tar -zfx free-sa-2.0.0b4p8.tar.gz |
− | # cd free-sa- | + | # cd free-sa-2.0.0b4p8</pre> |
− | Теперь редактируем файл '''global.mk'''. В нем нужно установить путь к директории '''free-sa''' для Web интерфейса, обычно: | + | Теперь редактируем файл '''global.mk'''. В нем нужно установить Вашу операционную систему, а в файле конфигурации Вашей операционной системы в каталоге '''/usr/local/free-sa-2.0.0b4p8/configs/OS.mk''' - те параметры, которые нужны Вам.<br> |
+ | Я, например, использовал файл redhat-native-gcc4.mk и поменял в нем путь к директории '''free-sa''' для Web интерфейса, обычно: | ||
<pre> WWWDIR = /var/www/html/$(PROGLNAME)</pre> | <pre> WWWDIR = /var/www/html/$(PROGLNAME)</pre> | ||
Находим и исправляем путь по команды sort. | Находим и исправляем путь по команды sort. | ||
− | |||
− | |||
− | |||
<pre># Sort utility | <pre># Sort utility | ||
SORT = /bin/sort</pre> | SORT = /bin/sort</pre> | ||
Далее компилируем и устанавливаем free-sa: | Далее компилируем и устанавливаем free-sa: | ||
− | <pre># make | + | <pre>#make install</pre> |
− | + | ===Ошибка компиляции=== | |
+ | При компиляции вылезла ошибка | ||
+ | <pre>gcc: ошибка: unrecognized option «--relax»</pre> | ||
+ | '''Решение:''' Нужно убрать эту опцию из файлов | ||
+ | #Насторйки (В моем случае /usr/local/free-sa-2.0.0b4p8/configs/redhat-native-gcc4.mk). | ||
+ | #Из файла /usr/local/free-sa-2.0.0b4p8/src/config.h | ||
==Настройка программы== | ==Настройка программы== | ||
− | Все файлы настройки лежат в директории '''/usr/local/etc/free-sa'''<br /> | + | Все файлы настройки, в зависимости от OC, лежат в директории, установленной в переменной '''$ETCDIR''' файла '''/usr/local/etc/free-sa/configs/OC.mk'''<br /> |
+ | В моем случае это /etc/free-sa/. Поэтому дальше буду рассматривать только его. | ||
:1. Копируем файл '''free-sa.conf.sample''' в '''free-sa.conf''' и редактируем его.<br /> | :1. Копируем файл '''free-sa.conf.sample''' в '''free-sa.conf''' и редактируем его.<br /> | ||
− | :2. Проверяем настройку следующих переменных: | + | :2. Выкладываю тут файл настроек, далее идут коментарии |
+ | <pre> | ||
+ | # | ||
+ | # Sample configuration file for free-sa(1) | ||
+ | # | ||
+ | # copy to /etc/free-sa/free-sa.conf | ||
+ | # | ||
+ | |||
+ | |||
+ | ################## | ||
+ | # GLOBAL OPTIONS # | ||
+ | ################## | ||
+ | configuration_name="/etc/free-sa/free-sa.conf" | ||
+ | cache_directory="/var/cache/free-sa" | ||
+ | target_directory="/var/www/html/free-sa" | ||
+ | #locale="" | ||
+ | |||
+ | |||
+ | #################### | ||
+ | # LOG FILE OPTIONS # | ||
+ | #################### | ||
+ | log_file="/var/log/squid/access.log" | ||
+ | #log_format="0" | ||
+ | #log_skip_errors="no" | ||
+ | #log_time_zone_shift="0" | ||
+ | |||
+ | |||
+ | ########################## | ||
+ | # NAMES HANDLING OPTIONS # | ||
+ | ########################## | ||
+ | #recipient_tolower="no" | ||
+ | |||
+ | username_file="/etc/free-sa/users" | ||
+ | #username_is_preferred="yes" | ||
+ | #username_resolve_ip="yes" | ||
+ | #username_unescape="no" | ||
+ | |||
+ | |||
+ | ################### | ||
+ | # FILTERS OPTIONS # | ||
+ | ################### | ||
+ | #global_filter="" | ||
+ | |||
+ | # users_filter is enabled by default to keep default value of obsolete fulltraffic="false" 1.x.y option | ||
+ | users_filter="/etc/free-sa/users.filter.sample" | ||
+ | |||
+ | # HTTP related filter reports | ||
+ | local_filter="/etc/free-sa/HTTP_proxy_auth_failures.filter.sample" | ||
+ | local_filter="/etc/free-sa/HTTP_site_auth_failures.filter.sample" | ||
+ | local_filter="/etc/free-sa/HTTP_proxy_denied.filter.sample" | ||
+ | local_filter="/etc/free-sa/HTTP_site_denied.filter.sample" | ||
+ | local_filter="/etc/free-sa/HTTP_CONNECT_method.filter.sample" | ||
+ | local_filter="/etc/free-sa/HTTP_PUT+POST_method.filter.sample" | ||
+ | local_filter="/etc/free-sa/HTTP_downloads.filter.sample" | ||
+ | #local_filter="/etc/free-sa/HTTP_downloads_archives.filter.sample" | ||
+ | #local_filter="/etc/free-sa/HTTP_downloads_audio.filter.sample" | ||
+ | #local_filter="/etc/free-sa/HTTP_downloads_cddvd.filter.sample" | ||
+ | #local_filter="/etc/free-sa/HTTP_downloads_code.filter.sample" | ||
+ | #local_filter="/etc/free-sa/HTTP_downloads_office.filter.sample" | ||
+ | #local_filter="/etc/free-sa/HTTP_downloads_video.filter.sample" | ||
+ | #local_filter="/etc/free-sa/HTTP_unusual_methods.filter.sample" | ||
+ | #local_filter="/etc/free-sa/HTTP_unusual_codes.filter.sample" | ||
+ | |||
+ | # SMTP related filter reports | ||
+ | #local_filter="/etc/free-sa/SMTP_delivery_rejected.filter.sample" | ||
+ | #local_filter="/etc/free-sa/SMTP_receiving_rejected.filter.sample" | ||
+ | |||
+ | |||
+ | ########################## | ||
+ | # GLOBAL REPORTS OPTIONS # | ||
+ | ########################## | ||
+ | reports_bytes_divisor="M" | ||
+ | reports_indicators="yes" | ||
+ | #reports_logo="" | ||
+ | reports_overwrite="1" | ||
+ | #reports_privacy_mode="0" | ||
+ | #reports_privacy_username="" | ||
+ | reports_rotate="month" | ||
+ | #reports_show_info="yes" | ||
+ | #reports_site_name="" | ||
+ | #reports_svg_width="960" | ||
+ | reports_url_limit="50" | ||
+ | |||
+ | |||
+ | ############################## | ||
+ | # PARTICULAR REPORTS OPTIONS # | ||
+ | ############################## | ||
+ | #email_address="" | ||
+ | |||
+ | #index_show_calendar="yes" | ||
+ | #index_sort="DATETIME" | ||
+ | |||
+ | #real_time_timeout="5000" | ||
+ | |||
+ | #server_efficiency_report="yes" | ||
+ | server_efficiency_bytes_divisor="yes" | ||
+ | #server_efficiency_svg="" | ||
+ | |||
+ | top_sites_report="yes" | ||
+ | #top_sites_limit="0" | ||
+ | #top_sites_svg="" | ||
+ | |||
+ | #top_users_svg="" | ||
+ | |||
+ | #users_excess="" | ||
+ | #users_excess_limit="0" | ||
+ | |||
+ | #users_graphics_svg="" | ||
+ | |||
+ | #users_report="yes" | ||
+ | |||
+ | #users_fullurl_report="yes" | ||
+ | #users_fullurl_split="no" | ||
+ | </pre> | ||
+ | :3. Проверяем настройку следующих переменных: | ||
* log - полный путь к анализируемому журналу сервера, в примере ниже к журналу squid-а: | * log - полный путь к анализируемому журналу сервера, в примере ниже к журналу squid-а: | ||
<pre>log="/var/log/squid/access.log"</pre> | <pre>log="/var/log/squid/access.log"</pre> | ||
* usertab - полный путь к файлу преобразования имен, в примере ниже он размещен в директории с конфигурационными файлами free-sa: | * usertab - полный путь к файлу преобразования имен, в примере ниже он размещен в директории с конфигурационными файлами free-sa: | ||
− | <pre>usertab=" | + | <pre>usertab="/etc/free-sa/users"</pre> |
* targetdir - корневая директория для размещения отчетов (ранее, на этапе сборки программы, она была определена как WWWDIR), изменять стоит если вы ее хотите переопределить: | * targetdir - корневая директория для размещения отчетов (ранее, на этапе сборки программы, она была определена как WWWDIR), изменять стоит если вы ее хотите переопределить: | ||
<pre>targetdir="/var/www/html/free-sa"</pre> | <pre>targetdir="/var/www/html/free-sa"</pre> | ||
Строка 73: | Строка 191: | ||
Из консоли запускаем | Из консоли запускаем | ||
<pre>free-sa -d 26.06.2007-27.06.2007</pre> | <pre>free-sa -d 26.06.2007-27.06.2007</pre> | ||
− | Где 26.06.2007-27.06.2007 - это | + | Где 26.06.2007-27.06.2007 - это диапазон за который надо собрать статистику<br /> |
Остальные параметры командной строки можно посмотреть в '''man free-sa'''<br /> | Остальные параметры командной строки можно посмотреть в '''man free-sa'''<br /> | ||
И если нет никаких ошибок, то в директории '''/var/www/html/free-sa''' должен появиться каталог '''26.06.2007-27.06.2007''', и значит программа работает нормально. | И если нет никаких ошибок, то в директории '''/var/www/html/free-sa''' должен появиться каталог '''26.06.2007-27.06.2007''', и значит программа работает нормально. | ||
+ | |||
==Автоматический запуск из cron== | ==Автоматический запуск из cron== | ||
Создаем файл '''/etc/scripts/free-sa_day.sh''' (Путь может быть любым, в некоторых системах достаточно будет поместить скрипт в директорию /etc/cron.daily '''(например!)''' без изменения crontab) | Создаем файл '''/etc/scripts/free-sa_day.sh''' (Путь может быть любым, в некоторых системах достаточно будет поместить скрипт в директорию /etc/cron.daily '''(например!)''' без изменения crontab) | ||
Строка 81: | Строка 200: | ||
# Программа создания отчетов по журналам SQUID | # Программа создания отчетов по журналам SQUID | ||
#set -x | #set -x | ||
+ | umask 0022 | ||
export LANG=ru_RU.UTF-8 | export LANG=ru_RU.UTF-8 | ||
export LC_ALL= | export LC_ALL= | ||
− | + | free_sa=/usr/bin/free-sa | |
− | free_sa=/usr | ||
date1=`date +%x` | date1=`date +%x` | ||
$free_sa -d $date1- | $free_sa -d $date1- | ||
Строка 96: | Строка 215: | ||
<pre>service crond restart</pre> | <pre>service crond restart</pre> | ||
И наслаждаемся статистикой по адресу '''http://adress_server/free-sa''' | И наслаждаемся статистикой по адресу '''http://adress_server/free-sa''' | ||
+ | |||
==Просмотр " Эффективность сервера"== | ==Просмотр " Эффективность сервера"== | ||
{| border=1 | {| border=1 |
Текущая версия на 22:15, 5 марта 2013
Содержание
Описание
Представлены первые релизы нового проекта Free-SA, занимающегося разработкой программы, которая является хорошей заменой устаревшего SARG. Версия Free-SA, использованная для написания данной статьи: 1.6.2
Из особенностей Free-SA автор выделяет:
- более внятная архитектура и код (C/HTML/CSS);
- скорость формирования отчетов в 7-20 раз выше по сравнению с SARG (7х — для файла access.log объемом в 50 Мб, 20x — для 1 Гб);
- все отчеты успешно проходят проверку W3C HTML/CSS validator;
- потенциальная поддержка различных форматов файлов журналов (сейчас только Squid, CLF, Postfix, QMail, CommuniGate Pro);
- дополнительные отчеты (в т.ч. для оценки эффективности сервера);
- изменяемые «на-лету» темы оформления (сейчас 5).
Цели Free-SA:
- контроль расхода трафика по пользователям;
- контроль выполнения политик безопасности (в части доступа к ресурсам сети Internet) и информационная поддержка при служебных расследованиях некоторых инцидентов;
- оценка эффективности работы серверов.
Сайт программы находится | тут
Установка программы
Итак идем на | сайт программы, потом на download и выкачиваем последний релиз программы
Допустим, что это файл free-sa-2.0.0b4p8.tar.gz:
# cp free-sa-2.0.0b4p8.tar.gz /usr/local/src # cd /usr/local/src # tar -zfx free-sa-2.0.0b4p8.tar.gz # cd free-sa-2.0.0b4p8
Теперь редактируем файл global.mk. В нем нужно установить Вашу операционную систему, а в файле конфигурации Вашей операционной системы в каталоге /usr/local/free-sa-2.0.0b4p8/configs/OS.mk - те параметры, которые нужны Вам.
Я, например, использовал файл redhat-native-gcc4.mk и поменял в нем путь к директории free-sa для Web интерфейса, обычно:
WWWDIR = /var/www/html/$(PROGLNAME)
Находим и исправляем путь по команды sort.
# Sort utility SORT = /bin/sort
Далее компилируем и устанавливаем free-sa:
#make install
Ошибка компиляции
При компиляции вылезла ошибка
gcc: ошибка: unrecognized option «--relax»
Решение: Нужно убрать эту опцию из файлов
- Насторйки (В моем случае /usr/local/free-sa-2.0.0b4p8/configs/redhat-native-gcc4.mk).
- Из файла /usr/local/free-sa-2.0.0b4p8/src/config.h
Настройка программы
Все файлы настройки, в зависимости от OC, лежат в директории, установленной в переменной $ETCDIR файла /usr/local/etc/free-sa/configs/OC.mk
В моем случае это /etc/free-sa/. Поэтому дальше буду рассматривать только его.
- 1. Копируем файл free-sa.conf.sample в free-sa.conf и редактируем его.
- 2. Выкладываю тут файл настроек, далее идут коментарии
# # Sample configuration file for free-sa(1) # # copy to /etc/free-sa/free-sa.conf # ################## # GLOBAL OPTIONS # ################## configuration_name="/etc/free-sa/free-sa.conf" cache_directory="/var/cache/free-sa" target_directory="/var/www/html/free-sa" #locale="" #################### # LOG FILE OPTIONS # #################### log_file="/var/log/squid/access.log" #log_format="0" #log_skip_errors="no" #log_time_zone_shift="0" ########################## # NAMES HANDLING OPTIONS # ########################## #recipient_tolower="no" username_file="/etc/free-sa/users" #username_is_preferred="yes" #username_resolve_ip="yes" #username_unescape="no" ################### # FILTERS OPTIONS # ################### #global_filter="" # users_filter is enabled by default to keep default value of obsolete fulltraffic="false" 1.x.y option users_filter="/etc/free-sa/users.filter.sample" # HTTP related filter reports local_filter="/etc/free-sa/HTTP_proxy_auth_failures.filter.sample" local_filter="/etc/free-sa/HTTP_site_auth_failures.filter.sample" local_filter="/etc/free-sa/HTTP_proxy_denied.filter.sample" local_filter="/etc/free-sa/HTTP_site_denied.filter.sample" local_filter="/etc/free-sa/HTTP_CONNECT_method.filter.sample" local_filter="/etc/free-sa/HTTP_PUT+POST_method.filter.sample" local_filter="/etc/free-sa/HTTP_downloads.filter.sample" #local_filter="/etc/free-sa/HTTP_downloads_archives.filter.sample" #local_filter="/etc/free-sa/HTTP_downloads_audio.filter.sample" #local_filter="/etc/free-sa/HTTP_downloads_cddvd.filter.sample" #local_filter="/etc/free-sa/HTTP_downloads_code.filter.sample" #local_filter="/etc/free-sa/HTTP_downloads_office.filter.sample" #local_filter="/etc/free-sa/HTTP_downloads_video.filter.sample" #local_filter="/etc/free-sa/HTTP_unusual_methods.filter.sample" #local_filter="/etc/free-sa/HTTP_unusual_codes.filter.sample" # SMTP related filter reports #local_filter="/etc/free-sa/SMTP_delivery_rejected.filter.sample" #local_filter="/etc/free-sa/SMTP_receiving_rejected.filter.sample" ########################## # GLOBAL REPORTS OPTIONS # ########################## reports_bytes_divisor="M" reports_indicators="yes" #reports_logo="" reports_overwrite="1" #reports_privacy_mode="0" #reports_privacy_username="" reports_rotate="month" #reports_show_info="yes" #reports_site_name="" #reports_svg_width="960" reports_url_limit="50" ############################## # PARTICULAR REPORTS OPTIONS # ############################## #email_address="" #index_show_calendar="yes" #index_sort="DATETIME" #real_time_timeout="5000" #server_efficiency_report="yes" server_efficiency_bytes_divisor="yes" #server_efficiency_svg="" top_sites_report="yes" #top_sites_limit="0" #top_sites_svg="" #top_users_svg="" #users_excess="" #users_excess_limit="0" #users_graphics_svg="" #users_report="yes" #users_fullurl_report="yes" #users_fullurl_split="no"
- 3. Проверяем настройку следующих переменных:
- log - полный путь к анализируемому журналу сервера, в примере ниже к журналу squid-а:
log="/var/log/squid/access.log"
- usertab - полный путь к файлу преобразования имен, в примере ниже он размещен в директории с конфигурационными файлами free-sa:
usertab="/etc/free-sa/users"
- targetdir - корневая директория для размещения отчетов (ранее, на этапе сборки программы, она была определена как WWWDIR), изменять стоит если вы ее хотите переопределить:
targetdir="/var/www/html/free-sa"
- 3. Создаем и редактируем файл преобразования имен /usr/local/etc/free-sa/users. Пример такого файла:
172.16.140.10 Копылова Елена Александровна 172.16.140.11 Трофимова Людмила Николаевна
IP адреса и имена должны разделяться пробелом. В случае использования аутентификации в squid можно использовать имена пользователей.
- 4. Я установил дополнительно еще следующие параметры
dld="true" | Включить отчет о загрузках файлов |
dld_min=512000 | для исключения ссылок меньших по размеру, чем указанное в этой опции значение. Влияет на индикаторы (и
соответственно на отчет "Закачки" (downloads)). В данном случае 512Кб |
ts_limit=30 | для ограничения количества сайтов в отчете "Популярные сайты" (top sites). |
overwrite="1" | Для перезаписи отчетов совпадающие по своему периоду, например, с точностью в 1 день (У меня таким образом каждые пол часа считается статистика и при этом на 1 день всегда один отчет) |
rotate="month" | Стирать всю статистику старше 1 месяца |
divisor="M" | Отображать статистику в Мб |
Остальные параметры файла конфигурации можно посмотреть в man free-sa.conf
Проверка работы
Из консоли запускаем
free-sa -d 26.06.2007-27.06.2007
Где 26.06.2007-27.06.2007 - это диапазон за который надо собрать статистику
Остальные параметры командной строки можно посмотреть в man free-sa
И если нет никаких ошибок, то в директории /var/www/html/free-sa должен появиться каталог 26.06.2007-27.06.2007, и значит программа работает нормально.
Автоматический запуск из cron
Создаем файл /etc/scripts/free-sa_day.sh (Путь может быть любым, в некоторых системах достаточно будет поместить скрипт в директорию /etc/cron.daily (например!) без изменения crontab)
#!/bin/bash # Программа создания отчетов по журналам SQUID #set -x umask 0022 export LANG=ru_RU.UTF-8 export LC_ALL= free_sa=/usr/bin/free-sa date1=`date +%x` $free_sa -d $date1-
Где ru_RU.UTF-8 кодировка локали.
Данный скрипт обновляет статистику каждые полчаса и удаляет статистику месячной давности.
Добавляем строки в /etc/crontab
# Статистика SQUID 29,59 * * * * root /etc/scripts/free-sa_day.sh
Далее перезапускаем cron
service crond restart
И наслаждаемся статистикой по адресу http://adress_server/free-sa
Просмотр " Эффективность сервера"
Тип трафика | Описание |
---|---|
Обработанный | Это весь трафик. |
Запрет на прокси (ACL) | Это трафик заблокированный на прокси (его списками контроля доступа), чаще всего - вырезание баннеров или блокирование запрещенных сайтов или файлов. |
Закэшированный | То, что было отдано из кэша и не скачивалось извне (обычно из Internet) |
Другой локальный | Запросы аутентификации и запросы, которые прокси обработать не смог (некорректно сформированные, чаще всего червяками) |
Актуальный | Из обработанного вычесть все 3 предыдущие (закэшированный, другой локальный и актуальный). Т.е. это тот трафик, который пришел извне (обычно из Internet) |
Зависает на команде sort
- Проблема После запуска скрипта он зависает, и если с другой консоли посмотреть командой top, то виснет на выполнении программы sort.
- Решение Можно решить двумя способами
Проблема рассмотрена в форуме
1. Берем и качаем пакет slackware coreutils. Это почти обычный tar.gz, в mc он открывается, нужно взять из него только /bin/sort. Переписываем его в /usr/local/bin и переименовываем в sort.correct
Далее в файле global.mk исходника fre-sa меняем.
SORT = /usr/local/bin/sort.correct
И пересобираем fre-sa
# make clean # make # make install
2. Пересобираем пакет coreutils от Mandriva без coreutils-6.9-new-i18n.patch. Для этого качаем и устанавливаем coreutils-6.9-5mdv2008.0.src.rpm
Идем в /usr/src/rpm/SPECS и правим файл coreutils.spec
Коментируем 36 строку
#Patch800: coreutils-6.9-new-i18n.patch
118 строку
#%patch800 -p1 -b .i18n
и 149
#chmod a+x tests/sort/sort-mb-tests
И вводим команду для пересборки пакета
rpm -bb coreutils.spec
Если попросит, доустанавливаем нужные пакеты, а потом снова пробуем.
После нормального завершения сборки идем в /usr/src/rpm/RPMS/i586. Там и будут лежать три файла. Открываем в mc файл coreutils-6.9-5mdv2008.0.i586.rpm. Идем в папку CONTENTS.cpio/bin и переписываем файл sort в /usr/local/bin/sort.correct.
Далее, как написано в первом пункте
- Второй способ я бы использовал, только, если первый по каким-то причинам не заработал