Страница 1 из 8

Web морда (php) для серверных логов

Добавлено: 01:09, 31.05.2009
Yaroslav
Из-за как-то начавшихся разборок в моём чате кто что кому снял и где какой канал закрыли, а лопатить логи было очень лениво, да и времени у меня на модерацию практически нет, а некоторым модераторам нужен тоже доступ к этим логам решил написать простенькую веб морду для парсинга серверных логов.

Не претендует на что-то мего-супер-функциональное, писано за одну ночь. Так что юзайте, кому надо. В дальнейшем есть некоторые задумки по развитию, но когда будет время и будет ли вообще я не знаю.

Требования:
* мозги
* настроенный web-сервер с поддержкой php5 (php4 экспериментально)
* права доступа у web-сервера в папку логов СЕРВЕРА чата

Возможности:
* просмотр серверных логов с раскраской однотипных событий
* подсчёт количества тех или иных событий на данной странице
* постраничный вывод

Установка:
* распаковать архив в доступной по web директории сервера.

Настройка:
* Поправить в файле index.php настроечные переменные или оставить как есть.
$rows_per_page = 300; // Количество записей выводимых на одной странице
$logdir = 'c:/serv/commfort_server4/logs/'; // Каталог логфайлов
$show_id = true; // Поставить true если нужно отображать ID компьютера

Использование:
* открыть адрес http://ваш_сервер/директория/commfort_logs/ и наслаждаться.

Преимущества:
* не требует СУБД для работы

Недостатки:
* работает без СУБД, каждый раз читает логфайл

Сразу замечу:
* наверняка там куча косяков. Если есть желание - можете о них отписать прямо тут, но претензии я не принимаю.
* как настраивать web-сервер я рассказывать не намерен.
* знаю, что цвета, мягко говоря, не очень хорошие. Буду благодарен тому, кто приведёт скписок из 12 цветов хорошо смотрящихся на background-color:lightgray или на другом фоне, тогда приведите и цвет фона.

Возможно вам будет полезна другая моя разработка:
Статистика посещения чата (php) [клиента чата не нужен]

Тут будет всегда современная версия.

v.1 - 30.05.2009 - скачали 30 раз

v.1.1 - 01.06.2009 - скачали 298 раз
* добавлена экспериментальная поддержка php4 (scandir)

v.2.0 - 10.04.2010 - скачали 23 раза
* переписана под сервер 4.3х - 4.4х
* выбор логфайла из выпадающего списка
* поддержка логфайлов авторизации
* настраиваемая подсветка разных событий
- возможно PHP4 отдохнёт. Проверьте, кто может?

v.2.1.1 - 24.04.2010 - скачали 9 раз
* унифицирован вывод названия лога. Теперь вне зависимости от типа (по дням, по месяцам, по годам) заголовок будет выводиться правильно.

v.2.1.2 - 26.04.2010 - скачали 13 раз
* добавлены описания двух событий: подтверждение и отклонение авторизации.

v.2.1.3 - 29.04.2010
* добавлено описание события изменение статуса активации
* мелкие правки интерфейса
* исправлено отображение событий без IP адреса (совершаемые серверным плагином)
Снимок экрана 2010-04-10 в 05.39.09.png
Примерно так это выглядит
(110.42 КБ) 246 скачиваний
Понравилась поделка? Я добавил полезную функцию по твоей просьбе? Я ответил на вопрос и помог решить проблему? Отблагодари: R753244967524 или Z664725275810 или U806184306803

Re: Web морда (php) для серверных логов

Добавлено: 01:23, 31.05.2009
yaotzin
классно, ничего страшного не будет если я помещю этот файл отдельно в папку на web сервере и дам ссылку на эту папку всем, я имею ввиду баг какой либо может быть чтоб через этот скрипт на что либо повлиять.

Re: Web морда (php) для серверных логов

Добавлено: 02:02, 31.05.2009
Yaroslav
yaotzin писал(а):классно, ничего страшного не будет если я помещю этот файл отдельно в папку на web сервере и дам ссылку на эту папку всем, я имею ввиду баг какой либо может быть чтоб через этот скрипт на что либо повлиять.
Конечно от ошибок не застрахован ни кто, но скрипт имеет базовую защиту от вытягивания произвольных файлов, так как я рассчитывал дать доступ модсоставу к этому файлу, а там мало ли какие красавцы попадутся.
На данный момент недостатком (и потенциальной опасностью) является то, что при открытии страницы весь файл лога читается полностью и далее уже в памяти обрабатывается, так что если у вас огромные серверные логи, то это может повлечь за собой (при большой посещаемости) DOS сервера. У меня при тысячном онлайне логи сервера в пределах 1 мегабайта, так что я пока решил не париться этой проблемой.
В ближайшее время я планирую встроить в скрипт ограничение доступа по IP, что бы не плясать с .htaccess но в вашем случае это, видимо, не понадобится, так как планируется публичный доступ. Но я бы, пожалуй, так не поступал.

Re: Web морда (php) для серверных логов

Добавлено: 05:07, 31.05.2009
nikitka
Yaroslav, благодарим, взяли скрипт, ушли на тест.

сделал проще с доступом к логам...
создал htaccess в нём прописал следующее:

AuthName "q4p user"
AuthType Basic
AuthUserFile "X:\security\cflogs.users"
require valid-user

а вот по части security рассказывать не буду, т.к. безопасность у каждого своя.

банально просто при запросе войти на страничку с логами требует логин и пароль, если нет, то увы ... :)

из интерфейса менял лишь бэкграунд body{background-color:black} на чёрный

и параметр изменил настройки на белый .rowclass4{color: white} уже резал довольно глаза.

правда если у вас логи очень большие, я имею ввиду по объёму, так как допустим у нас на сервере проходит одобрение модератором учетки, то пришлось увеличить параметр memory_limit.

и для не знающих... если не хотите чтобы отображались id, ставьте false

$show_id = true; // Поставить true если нужно отображать ID компьютера

хотелось бы всё таки чтобы была сортировка по дням осуществленна.

Re: Web морда (php) для серверных логов

Добавлено: 16:37, 31.05.2009
SkOrPIon
Помогите, как дать доступ веб серверу к папке logs если она лежит не в директории веб сервера, и если я кидаю логс для проверки в директорию веб сервака то ошибка вылетает
Fatal error: Call to undefined function: scandir() in ....

Re: Web морда (php) для серверных логов

Добавлено: 06:22, 01.06.2009
nikitka

Код: Выделить всё

Fatal error: Call to undefined function: scandir() in
могу ошибаться, но вроде он не может просмотреть директорию и сделать вывод информации, разибрайтесь с вашими веб-сервером.

Re: Web морда (php) для серверных логов

Добавлено: 12:48, 01.06.2009
SkOrPIon
Ну вот как раз я не могу понять как директорию логс открыть для доступа веб серверу? помогите плизз

Re: Web морда (php) для серверных логов

Добавлено: 14:26, 01.06.2009
Yaroslav
SkOrPIon писал(а): Fatal error: Call to undefined function: scandir() in ....
Скорее всего на сервере запрещена функция scandir() Если это ваш сервер, то посмотрите php.ini на предмет вхождения этой строки. Если это хостинг - обратитесь к провайдеру.

Больше ничего не могу сказать до того, как более подробно опишите ваш сервер. Как минимум ОС, на которой он работает.

UPD: scandir работает только для php5. Сделал версию 1.1 с экспериментальной поддержкой php4

Re: Web морда (php) для серверных логов

Добавлено: 14:38, 01.06.2009
SkOrPIon
ну вот в чем проблема (( у мну стоит РНР4 (

Re: Web морда (php) для серверных логов

Добавлено: 14:43, 01.06.2009
Yaroslav
nikitka писал(а):Yaroslav, благодарим, взяли скрипт, ушли на тест.

сделал проще с доступом к логам...
создал htaccess в нём прописал следующее:

AuthName "q4p user"
AuthType Basic
AuthUserFile "X:\security\cflogs.users"
require valid-user

а вот по части security рассказывать не буду, т.к. безопасность у каждого своя.

банально просто при запросе войти на страничку с логами требует логин и пароль, если нет, то увы ... :)
Спасибо, но я знаю что такое basic auth и выше писал об этом. Мне не понадобилось это использовать, кому надо - пожалуйста. От скрипта это уже не зависит. Может понадобится другим в виде мануала. Но думаю для того, кто не шарит, такое описание не сгодится, а для тех, кто и так разбирается это не нужно.
nikitka писал(а):из интерфейса менял лишь бэкграунд body{background-color:black} на чёрный

и параметр изменил настройки на белый .rowclass4{color: white} уже резал довольно глаза.

правда если у вас логи очень большие, я имею ввиду по объёму, так как допустим у нас на сервере проходит одобрение модератором учетки, то пришлось увеличить параметр memory_limit.

хотелось бы всё таки чтобы была сортировка по дням осуществленна.
А какой memory_limit был до этого и какой теперь? И насколько большие у вас логи? У меня в месяц где-то на 1.5 MiB затягивает.

Re: Web морда (php) для серверных логов

Добавлено: 14:59, 01.06.2009
Yaroslav
SkOrPIon писал(а):ну вот в чем проблема (( у мну стоит РНР4 (
Попробуйте теперь. Мне негде проверить. Файл в первом посте обновил.

Re: Web морда (php) для серверных логов

Добавлено: 15:59, 01.06.2009
cema93
Yaroslav писал(а):Попробуйте теперь. Мне негде проверить. Файл в первом посте обновил.
спс что обновил теперь работает

Re: Web морда (php) для серверных логов

Добавлено: 16:31, 01.06.2009
Yaroslav
nikitka писал(а):
хотелось бы всё таки чтобы была сортировка по дням осуществленна.
Какая именно сортировка?

может вместо постраничного вывода сделать вывод по дням?

Re: Web морда (php) для серверных логов

Добавлено: 16:32, 01.06.2009
cema93
Yaroslav писал(а):Какая именно сортировка?

может вместо постраничного вывода сделать вывод по дням?
да

Re: Web морда (php) для серверных логов

Добавлено: 01:05, 02.06.2009
nikitka
оффтопка...

cema93, читаешь мысли :)