Показаны сообщения с ярлыком Сети. Показать все сообщения
Показаны сообщения с ярлыком Сети. Показать все сообщения

23 июня 2015 г.

Установка и настройка ScreenSquid 1.5 - анализатор логов для SQUID

Перед реализацией всей этой машинерии необходимо скачать ScreenSquid с сайта разработчика.
Для нормальной работы MySQL с UTF-8 была проделана небольшая настройка:
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
Произведённые выше действия с конфигурационным файлов привели к корректной работе с кириллическими символами. Не знаю как будет у Вас, но у меня кириллица упорно сохранялась и отображалась в win1252 (latin1).
После успешной загрузки и настройки MySQL распакуем полученный архив в директорию расположения веб-страниц:
sudo tar xzf screensquid_v1_5.tar.gz -С /var/www/
В связи с тем, что помимо анализатора логов ScreenSquid у меня там хранятся и другие страницы, переименую его:
sudo mv /var/www/html /var/www/screensquid/
Переходим к созданию базы данных, в которой будут храниться логи, и заполнению её таблицами (отношениями).
Подключимся:
mysql -u[user_name] -p[password]
и создадим новую базу данных:
CREATE DATABASE squidreport DEFAULT CHARACTER SET=utf8;
после чего произведём её заполнение, воспользовавшись прилагаемым к ScreenSquid файлом createdb.sql:
SOURCE /var/www/squidreport/createdb/createdb.sql
Чтобы не подключаться и не светить права root создадим нового пользователя mysql и наделим его полными правами к созданной БД:
CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON squidreport.* TO 'user_name'@'localhost'; 
С самой сложной часть сего Марлезонского балета покончено и мы плавно переходим к редактированию конфигурации ScreenSquid. Вместо user_name и password указываем те значения, которые мы ввели выше:
sudo vi /var/www/squidreport/config.php
$db = "squidreport";
$user = "user_name";
$pass ="password";
$address ="localhost";
и в скрипте заполнения таблиц БД:
sudo vi /var/www/squidreport/fetch.pl
my $user = "user_name";
my $pass = "password";
my $db = "squidreport";
В завершении всего этого безобразия настроим cron для запуска скрипта, который запускает парсер:
sudo crontab -e
куда добавим следующую запись:
# запуск каждый день в 23 часа 
00 23 * * * /var/www/squidreport/fetch.sh
Сам файл представляет простейший скрипт следующего содержания:
#!/sbin/sh
cd /var/www/squidreport/
perl /var/www/squidreport/fetch.pl
Можно, конечно же, переписать парсер, чтобы он принимал файл лога в качестве параметра вызова или прописать полный путь к нему, но я решил это не делать =)
Казалось бы всё хорошо и работу можно считать законченной, но есть нюанс. Ротация логов SQUID выполняется не с помощью squid -k rotate, а с помощью программы logrotate, запускаемой с через cron. Указанный выше logrotate работает по расписанию cron.daily. Расписание запуска можно подсмотреть в /etc/crontab, где будет написано следующее:
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
Иными словами ротация логов происходит в 6:25 ежедневно. Но мы настроили, что access.log будет парситься 23:00. В итоге получаем, что время с 23:00 по 6:25 в базу данных попадать не будет.

Меня это совсем не устраивает, поэтому было решено следующее. Т.к. после запуска logrotate к текущему access.log прибавляется 1, файл уже недоступен для SQUID для внесения в него изменений и считается сформированным, и именно по этой причине для заполнения базы данных будем использовать именно его. Для чего потребовалось внести небольшие изменения в файл парсера fetch.pl:
#open(IN, "<access.log"); 
open(IN, "<access.log.1");
 
while (my $line=<IN>) {
@item = split " ", $line; 
А вот на этом работу можно считать выполненной. Можно было сделать немного иначе. Например, вызывать парсер каждые N-минут(часов), но у меня нет необходимости иметь настолько своевременный отчёт, а мгновенный отчёт получаю с помощью sqstat 1.20, который прекрасно справляется со своей задачей.

28 января 2015 г.

Перед запуском SQUID 3.4.11

"Волею судеб" пришлось столкнуться с этим зверем. После установки на FreeBSD появился вот такой стартовый мануальчик, который надо не забыть, ибо... могу =)

Файлы конфигурации можно найти в папке /usr/local/etc/squid

Директория по умолчанию для хранения кэша /var/squid/cache

Директория по умолчанию для хранения логов /var/log/squid/
Примечание. Перед запуском SQUID необходимо инициализировать новые директории для хранения кэша. Выполняется это запуском "squid -z" с правами 'root' или 'squid'. Если директории кэш уже инициализированы (например, после обновления SQUID) производить инициализацию нет необходимости.

Конфигурация по умолчанию блокирует доступ ко всем сервисам, кроме локального хоста и локальных сетей, определённых в RFC 1918 для IPv4 и RFC 4291 для IPv6.

Для включения SQUID, добавить "squid_enable=yes" в одном из мест /etc/rc.conf, /etc/rc.conf.local или /etc/rc.conf.d/squid. За подробностями обращайтесь к /usr/local/etc/rc.d/squid.
Примечание. Если вы обновляете SQUID с младшей версии, необходимо сравнить  конфигурацию SQUID с конфигурационным файлом по умолчанию /usr/local/etc/squid/squid.conf.sample.

/usr/local/etc/squid/squid.conf.documented это полностью комментированный файл конфигурации, который вы можете использовать.

В завершении, вы должны проверить файл конфигурации перед запуском SQUID: "squid -f /path/to/squid.conf -k parse".

24 ноября 2011 г.

Оформление кода на blogger.com

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

8 августа 2011 г.

Использование адресов

Уж пришлось по своей работе начать всерьёз изучать сетевые протоколы на основе TCP\IP. Но в связи с тем, что мои знания итак были довольно сильно ограничены, то пришлось начать с азов, т.с. "с нуля". Поэтому сам для себя, а может и для кого-нибудь другого это пригодится. Итак, начну сам для себя пересказ понятным языком книги, которую я читаю.

В протоколе TCP\IP существует два вида адресации: физическая (она же аппаратная, MAC) и межсетевая (она же программная, IP). Возможно я некорректно выражаюсь, но мне так проще запомнить.

Физический адрес хоста задаётся на заводе, является уникальным, но изменить его возможно с помощью специальных средств (что нежелательно делать, по крайней мере не рекомендуют).

Сетевой адрес состоит из четырёх октетов в двоичной системе (всего 32 бита) или из четырёх тетрадов в десятичной системе счисления. Различают несколько классов адресации:


$(function(){ $('#includedContent').load('http://guest:pCQ5-qU9W6@kotovskogo15.ddns.net/ISAPI/Streaming/channels/102/httpPreview'); });