3 декабря 2015 г.

Встречаем новый ScreenSquid 1.7 - анализатор логов SQUID

Дабы не ссылаться на ранее написанную статью по установке версии 1.5, полностью её сюда скопирую, отредактировав под 1.7.

Перед реализацией всей этой машинерии необходимо скачать ScreenSquid с сайта разработчика.
Для нормальной работы MySQL с UTF-8 была проделана небольшая настройка в файле /etc/mysql/conf.d/mysql.cnf (для версии 5.7 в Ubuntu 16.04, в других дистрибутивах это может быть /etc/my.cnf, /etc/mysql/my.cnf и т.п.):
[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_7.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
и обновим её же до последней версии:
SOURCE /var/www/squidreport/createdb/upgrade.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";
В последнем файле, который выполняет роль парсера файла лога, были внесены очень необходимые изменения, а это:
  1. Можно указывать короткий или полный путь к файлу лога SQUID
  2. Появился лог результатов выполнения скрипта, путь к которому также можно указать в коротком или полном формате.
Поэтому не побрезгуем и воспользуемся этими возможностями, отредактировав соответствующие переменные:
my $filetoparse="/var/log/squid3/access.log.1";
my $filetolog="/var/www/screensquid/ssquid.log";
Конечно же можно было оставить эти значения по умолчанию, разместив сам скрипт в папке с логами, но этот метод меня не устроил. Также заметьте, что парсер будет работать с файлом .1, который появляется после работы программы logrotate, таким образом получая в базе данные за предыдущий день. Никто не заставляет поступать аналогичным образом, всё в Ваших руках.

По завершении конфигурирования парсера сделаем его исполняемым, воспользовавшись командой:
sudo chmod u+x fetch.pl
После чего настроим cron для запуска этого скрипта:
sudo crontab -e
куда добавим следующую запись:
# запуск каждый день в 23 часа 
00 23 * * * /var/www/squidreport/fetch.pl
С конфигурированиями закончили, поэтому можно немного расслабиться и поиграться другими очень интересными и нужными командами.

В общем отчёте "По времени суток" был добавлен график. Пока это так, игрушка можно сказать, но надеюсь получит своё развитие в других отчётах. Но игрушка представляет собой файл изображения, который автоматически создаётся каждый раз при формировании отчёта. Так как архив с анализатором мы распаковывали с правами root, именно он и стал владельцем всех каталогов и файлов. Менять владельца на всё не буду, поэтому ограничусь лишь каталогом, где создаются эти самые картинки:
sudo chown -R www-data:www-data /var/www/screensquid/lib/pChart/pictures/
А теперь можем откинуться на спинку кресла и наслаждаться своей работой.

При обновлении с 1.5 на 1.7, необходимо воспользоваться сценарием обновления таблиц базы данных, применив команду:
mysql [database_name] < /var/www/squidreport/createdb/upgrade.sql 

В остальном обновление 1.5 до 1.7 не отличается от полной установки за исключением отсутствия необходимости создания новой БД, пользователя и настройки cron, если, конечно же, не вздумаете сменить расположение скрипта парсера.

На сих откланиваюсь. Спасибо за внимание =) Успехов!

Комментариев нет:

Отправить комментарий

Уважаемый комментатор, пишите грамотно.
С благодарностью, автор блога.