Показать сообщение отдельно
Старый 30.12.2003, 03:57
kompadre вне форума Посмотреть профиль Отправить личное сообщение для kompadre Найти все сообщения от kompadre
  № 29  
kompadre
 
Аватар для kompadre

Регистрация: Aug 2001
Адрес: Barcelona
Сообщений: 1,277
Отправить сообщение для kompadre с помощью ICQ
Вынужден согласиться что лучше
Цитата:
ну и как итог, мне кажется, что анализатор апачевских логов правильно построенный - хранящий сводную статистику в мюскле - это самый оптимальный вариант.
просто придумать трудно. Мускул - база все таки как ни как, а базы данных придумали ... ну вобщем придумали и все. А статистику брать из них приприятно и "лекко" =).

Но с вариантом крона вынужден не согласиться. Заставлять сервер чрезмерно "пукать" в определенное время (даже заведомо "слабое" относительно количеству юзеров) не есть гуд. имхо, опять-же. Надо как-нибудь нагрузку десцентрировать.

Предлагаю следующюю схему :
(под *никс)

в хттпд.конф прописать
Код:
# Задать формат. Это стандарт который есть в хттпд.конф последних апачей
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
# И собственно делаем "каку" (pipe)
CustomLog "|/usr/bin/al" combined
# Не забыв за"#"оментировать то что было раньше ... на всякий пожарный
Закончив потрошение .конфы примемся за дело /usr/bin/al
Что это? Это файл выполняемый файл через которого пройдут данные изрыгаемые апачем. Эту роль должен исполнять хорошо настроенный и оптимизированный бинарник. Но я его не дам Так как "нема"

Но, рассмотрим мы такой вариант :
PHP код:
#!/usr/bin/php
<?
        $fh 
fopen ("php://stdin""r");
        
$rows fgets($fh512); // 256 гета + еще столько же        
                                                //Должно типа хватить
        
fclose($fh);
        
$fh fopen ("/var/log/apache/php_generated_log""a");
        
fwrite($fh$rows);
        
fclose($fh);
?>
проверяем все права

/var/log/apache должен получить для такого случая 777 (что-бы создался php_generated_log).
/usr/bin/al - 755

Теперь можно из промта делать /etc/rc.d/rc.httpd restart или как там у вас...

Что-бы проверить фурычит ли изобретение можно воспользоваться тэйлом

tail -f /var/log/apache/php_generated_log

Если всё прошло успешно это должно привести к тому-же результату что и

tail -f /var/log/apache/access_log

только до сией белиберды.

Я думаю к хостингам (смотря к каким, конечно) это прикрутить будет тоже не сложно. CustomLog - такая-же дериктива виртуального хоста. Главное прописать правильно директории и разобраться с правами.

А туду - изменить пхп-файл что-бы он акуратненько вносил в базу тынных ...

Что бы зделать подобное под виндой ... Просто изменить директориии на знакомые (/var/log/apache на с:\Program Files\Apache Group\Apache\logs например). И в CustomLog-e прописать что нибудь типа

CustomLog "|c:\php\php.exe с:\Program Files\Apache Group\Apache\bin\al.php" combined