Free-SA, Squid і FreeBSD. Вважаємо Internet-трафік

Проблема обліку використання Internet постає майже перед кожною, навіть найменшої організацією, особливо, коли інтернет не безлімітний, та й оцінити наскільки співробітники зайняті роботою, а не сидять в робочий час з розумним виглядом в соціальних мережах, на музичних або порно сайтах, варто теж не на останньому місці.

Існує сножество аналізаторів журналів проксі-серверів як під Windows, так під * NIX. Squid, на сьогоднішній день найбільш гнучкий з вільних проксі-серверів в налаштуванні і багатий за можливостями, хоча і у нього є недоліки. Маючи великий досвід організації корпоративного доступу в Інтернет, і випробувавши різні аналізатори, для себе зупинився на двох готових рішеннях Free-SA і SARG + одному самопісний. Використовуються для різних рішень.

В основному ставлю замовникам Free-SA. Які ж у нього переваги?

  • більш виразна архітектура і код (C / HTML / CSS);
  • швидкість формування звітів в 7-20 разів вище в порівнянні з SARG (7х – для файлу access.log об’ємом в 50 Мб, 20x – для 1 Гб);
  • підтримка різних форматів файлів журналів (Squid, CLF, Postfix, QMail, CommuniGate Pro);
  • додаткові звіти (в т.ч. для оцінки ефективності сервера);
  • змінювані «на-льоту» теми оформлення. можливість робити свої, при наявності навіть початкових знань CSS

Спочатку оновимо порти, далі йдемо в директорію з портами і встановлюємо

програму. Опції конфігурації при складанні під FreeBSD відсутні.

cd / usr / ports / www / free-sa / make install clean

Налаштування програми:

vi /usr/local/etc/free-sa/free-sa.conf

[Code lang = bash]

# Sample configuration file for free-sa (1)

# Copy to /usr/local/etc/free-sa/free-sa.conf

#########

# FILES #

#########

# Повний шлях до аналізованого журналу сервера

log = “/ var / squid / logs / access.log”

# Повний шлях до файлу перетворення імен

# (Замінює логін або IP користувача на його ім’я)

usertab = “/ usr / local / etc / squid / users”

# Повний шлях до файлу, який містить розширення для звіту “Закачування”.

# У комплекті йде кілька зразків таких файлів, включаючи зразки

# З розширеннями аудіо, відео, виконуваних файлів.

#downloads = “/ usr / local / etc / free-sa / downloads.sample”

# Local_filter = “”

# Global_filter = “”

###############

# DIRECTORIES #

###############

# Коренева директорія для розміщення звітів

targetdir = “/ var / squid / reports”

# Повний шлях до директорії, де Free-SA зберігає робочі файли

# Під час генерації звіту. При старті Free-SA очищає

# Повністю даний каталог

tmpdir = “/ var / cache / free-sa”

#####################

# REPORTS SELECTION #

#####################

ts = “true” # Формувати звіт Top Sites.

# Формувати звіт “Помилки аутентифікації на проксі” (код 407).

paf = “false”

# Формувати звіт “Помилки аутентифікації на сайтах” (код 401).

saf = “false”

# Формувати звіт “Заборона на проксі” (код 403). потрапляють тільки

#URL блоковані, за допомогою списків контролю доступу (ACL).

pdn = “true”

# Формувати звіт “Заборона на сайтах” (код 403).

sdn = “false”

# Формувати звіт “Метод прямого з’єднання CONNECT”.

cct = “true”

# Формувати звіт “Метод відправки даних PUT / POST”.

pst = “false”

# Формувати звіт “Закачування”. Закачування визначаються згідно файлу

# Розширень, зазначених вище через опцію downloads.

dld = “false”

# Створювати звіт на кожного користувача, в якому будуть

# Повні URL відвіданих користувачем посилань. Загальний час

# Генерації звіту за період збільшується.

fullurl = “true”

# Створювати звіт на кожного користувача, в якому будуть

# Відображатися тільки URL відвіданих користувачем сайтів.

users = “true”

# Надіслати текстовий звіт “Користувачі” на e-mail.

# Якщо в якості e-mail ‘-‘, звіт виводиться на stdout.

# Email = “”

##################

# REPORTS LIMITS #

##################

# Кількість відображуваних URL на одного користувача в звітах.

# 0 – відсутність ліміту. За замовчуванням: 50.

# Paf_limit = “50”

# Saf_limit = “50”

# Pdn_limit = “50”

# Sdn_limit = “50”

# Cct_limit = “50”

# Pst_limit = “50”

# Dld_limit = “50”

# Lcf_limit = “50”

# Обмежити кількість символів видимої частини URL в звіті.

# 0 – відсутність ліміту. За замовчуванням: 50.

# Url_limit = “50”

# Обмеження кількості сайтів в звіті top sites.

# 0 – відсутність ліміту (за замовчуванням).

ts_limit = 100

# Інтервал оновлення сторінки для звіту реального часу

# (Free-sa.cgi), вказується в мілісекундах.

# За умовчанням: 5000 (5 секунд)

# Rtr_timeout = “5000”

####################

# OTHER PARAMETERS #

####################

# Ім’я звіту за період. Відображається в списку всіх звітів

#за період. (За замовчуванням: повний шлях до файлу конфігурації)

# Name = “free-sa.conf”

# Пропускати помилкові записи в журналі. За замовчуванням Free-SA

# Зупиняє аналіз журналу та почне генерувати звіти.

# Skip_errors = “false”

# Autorecords = “5”

# Формат журналу. 0 – формат журналу Squid.

logformat = “0”

# Створити звіт з повною інформацією. У звіт включаються попадання

# В кеш, локальний трафік і реальний трафік.

# Fulltraffic = “false”

# Відображати в звітах імена користувачів, коли в журналі є і

# Імена користувачів і IP адреси.

# Inameuser = “true”

# Відображати справа індикатори відповідні присутність посилань в

# Paf / saf / и.т.п. звітах до користувачів, URL сайтів і повним URL.

# Indicators = “true”

# Видаляти старі файли при створенні нового файлу звітів.

# 1 – означає видаляти всі старі звіти, діапазон дат яких

# Відповідає діапазону нового звіту з точністю в 1 день.

# 2 – означає видаляти всі старі звіти, діапазон дат яких лежить

# Всередині діапазону нового звіту з точністю в 1 секунду.

# Видалення відбувається після створення нового звіту або при запуску

# Free-SA з опцією -F.

overwrite = “1”

# Перетворювати IP адреса в ім’я. Опція уповільнює створення звіту.

# Resolveip = “false”

# Відображення інформації про Free-SA внизу сторінки кожного звіту

# Showinfo = “true”

# Префікс для адреси сайту.

# Site = “”

# Картинка або логотип, яка відображається вгорі сторінки кожного звіту

# Logo = “”

# Перемикає локаль при розборі опцій командного рядка

locale = “ru_RU.KOI8-R”

# Видаляти звіти, старше зазначеного часу в секундах. Можна, можливо

# Використовувати ключові слова: year, quarter, month, week, day.

# Видалення відбувається після створення нового звіту або при запуску

# Free-SA з опцією -F.

rotate = “quarter”

# Одиниці виміру, що використовуються у файлі звіту (байти, кілобайти,

# Магабайти і т. Д.).

# “V” – адаптивний механізм: 1 байт відобразиться як 1, а 1024 – 1к.

# (За замовчуванням: байти)

divisor = “M”

[/ Code]

Приклад файлу перетворення імен / usr / local / etc / squid / users.

admin Адміністратор
ivanov_i Іванов Іван
172.16.140.11 Трофимова Людмила Миколаївна

Для щоденного формування звітів додамо в cron такий рядок:

55 23 * * * /usr/local/etc/squid/stat.sh > / Dev / null 2>1

Ось вміст самого файлу stat.sh. Він займається формуванням звіту і чистить зайві запсі за поточний місяць. Сам Free-SA буває не працює в цьому плані.

#! / Usr / local / bin / bash
curr_month = `date +% m.% Y`
for i in $ (ls / var / squid / reports / | grep $ curr_month); do rm -r / var / squid / reports / $ i; done
mv /var/squid/reports/index.html “/ var / squid / reports / index”
cat / var / squid / reports / index | grep -v $ curr_month > /var/squid/reports/index.html
rm / var / squid / reports / index
/ Usr / local / bin / free-sa

Якщо вважаєте статтю корисною, не лінуйтеся ставити лайки і ділитися з друзями.

Ссылка на основную публикацию