AstraLogPack 0.1

Что делает?

Сделано специально под конкретную задачу упаковки логфайлов на виртуальный серверах valuehost.ru. На текущий момент (октябрь 2002) хостер ведет логи своих клиентов, но своеобразным образом. Лог-файл записывается и архивируется в 4:00 каждого дня, если достиг размера 2048k. Создаются тома от 0 до 5. Если не успеть выкачать себе эти тома, то происходит презапись всех архивов - потеря накопленнной информации :( Приходится вращать логи самостоятельно. Для чего и предназначен этот скрипт.

Набор скриптов пакует логфайл, если его размер превышает некоторый заранее определенный пользователем размер. Каждый раз создается том вида 20021231235959.tgz (имя файла - дата создания). После чего эти тома можно обрабатывать чем-то на предмет извлечение полезной информации (например, analog http://www.analog.cx/).

Скрипт можно запускать как ручками, так и из cron-а, что, собственно, и представляет наибольшую ценность.

Инсталляция и настройка

Разархивируйте все файлы.

Настройте файл pack.php

1a. Если Вы применяете все это на valuehost, то
- укажите ваш аккаунт: $name_of_account
- укажите директорию инсталяции: $directory
- укажите min размер логфайлы, при котором будет запускаться упаковка: $min_size_to_pack

1b. Если Вы применяете это не на valuehost, то настраивайте все переменные в области настройки:

$min_size_to_pack // минимальный размер лог-файла, для которого уже можно запускать упаковку
$path_to_include // путь для подключения библиотек
$path_to_log_directory // путь, откуда брать логи
$path_to_move_logs // путь, куда складывать обработанные и запакованные логи
$path_to_cut_from_arhive // путь, который будет вырезан из содержимого архива, т.е. чтобы далеко за лог-файлом не лезть. В принципе, совпадает с предыдущем. Можно оставить пустым и посмотреть содержимое архива :)
$log_filename= // имя лог-файла, который гнерится самим сервером, и кот. обрабатывается собственно
$file_ext_arhive // расширение создаваемого архива. лучше оставить как есть, иначе см. документацию http://www.phpconcept.net/pcltar-index.en.php3#manuel
$filename_of_counter // имя файла, в котором содержится метка очередного тома

2. Скопируйте все файлы на сервер

Можете защитить папку инсталяции файлом .htaccess, чтобы напрямую нельзя было запускать pack.php (пока не придумаю, зачем это было бы нужно, но тем не менее можно)

3. Выставьте права на файлы

Конкретно для случая valuehost:
park.php 770
counter 660
и права на сам лог-файл 660,
есс-но, что все папки должны быть доступны

4. Начинайте использовать

а. Напрямую. Т.е. запускайте через браузер pack.php и далее разбирайте логфайл

б. Через cron. Настройте crontab на запуск pack.php.
Для случая valuehost:
В управлении cron ставим строку на выполнение /usr/local/bin/php < /pub/home/ВАШ АККАУНТ/htdocs/astralogpack/pack.php
Ну и, скажем */2 в часах. Т.е. каждые 2 часа. (Все зависит от посещаемости сайта, может и реже нужно проверять)

Использованное ПО

В данном наборе использованы библиотеки упаковки PclTar library (http://www.phpconcept.net/). Мануал к ним здесь: http://www.phpconcept.net/pcltar-index.en.php3#manuel

Разработчики, лицензии

Это ПО поставляется как есть, можете вносить изменения и т.д. Можете продавать, если найдете кому :) Просьба только указывать сайт разработчика: http://www.webing.ru Последнюю версию AstraLogPack можно найти на нем же. Замечания о багах и т.д. высылайте на astra@webing.ru