|
1 / 1 / 0
Регистрация: 30.11.2016
Сообщений: 31
|
|
Загрузка лог-файла веб-сервера в БД29.11.2018, 23:44. Показов 3678. Ответов 4
Метки нет (Все метки)
Доброго времени суток всем форумчанам!
Выполняю я сейчас лабу по веб-программированию в универе. Не стану объяснять суть задания своими словами, просто скину его описание с методички: Тема: «Разработка интернет-приложения по технологии PHP, методологии AJAX и с использованием БД. Обработка лог-файлов веб-сервера.» Цель: Разработать набор динамических страниц для обработки статистики посещаемости Web-сервера. Лог-файл веб-сервера должен загружаться в нормализованную базу данных. Структура (состав столбцов) выбирается студентом из фактической необходимости для построения отчета. Реализовать отчет о статистике посещаемости по индивидуальному варианту. (вариант: Объем скачанной информации за одну сессию) Требования к реализации: Загрузка лог-файла в БД должна быть реализована с использованием методологии AJAX. Исходить из условия, что лог-файл является большим — 200 Мб и больше. Лог-файл находится на сервере, страница инициирует загрузку лог-файла в БД порционно. Прогресс загрузки должен отображаться на экране (в странице). Для всех отчетов реализовать: а) группировку по часам, дням, неделям, месяцам; б) сортировку по произвольным полям; в) выборка данных из БД для построения отчета должна осуществляться одним запросом. Максимально оптимизировать всю обработку по времени. Возможно, по желанию, использование диаграмм. Этапы работы: I. Установка и настройка веб-сервера, PHP, СУБД II. Настройка журнала посещаемости Web-узла. Необходимые для протоколирования в журнале поля определить самостоятельно. III. Разработка структуры БД для хранения статистики IV. Разработка скриптов для загрузки текущей статистики посещаемости в БД V. Разработка серверных страниц анализа статистики посещаемости сервера. Выдать отчет по параметрам в соответствии с персональным заданием (задание: Объем скачанной информации за одну сессию) Собственно, вот задание. Не уверен, что данный раздел форума полностью покрывает технологии, которые мне необходимо юзать, но всё же решил создать здесь. Проблема в том, что я не знаю даже, с чего начать и как подступиться к этому. Если с PHP и jQuery я ещё на прошлых лабах работал, то с AJAX нет. Гуглил, как с помощью него загрузить что-то в бд, ещё и порционно. Толком ничего подходящего мне не нашёл. Слишком большой разброс выдаваемой инфы и сложно выделить то, что мне пригодиться для лабы. Юзаю я OpenServer, нашёл там папку logs, в которой лежат логи PHP, Apache и MySql. Как я понял, мне нужно какой-то из них взять(какой хз), распарсить как-то и распихать по столбцам в БД. А потом уже при загрузке страницы динамически выводить таблицу с этими данными из БД + мой запрос на объем скаченной инфы за сессию. Под скаченной инфой подразумевается даже любой простой запрос в бд. И далее сделать функционал по её сортировке (что, наверное, не самое трудное здесь). Теоретически - вроде понял суть задания. Практически - вообще не имею представления, как такое сделать. Прошу помочь кто чем может: кодом, ссылками, разъяснениями - буду очень благодарен!
0
|
|
| 29.11.2018, 23:44 | |
|
Ответы с готовыми решениями:
4
Regex для лог файла веб-сервера Создать программу анализа лог-файла прокси-сервера Сохранение и загрузка файлов с Веб сервера |
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
|
|||||||||||||||||||
| 30.11.2018, 02:38 | |||||||||||||||||||
Сообщение было отмечено SammYDeviL как решение
РешениеУ меня в настройках HTTP-сервер "Apache-PHP-7", соответственно логи лежат в Apache-PHP-7_queriesa.log. https://habr.com/post/131093/ Для учёбы сойдёт. Либо можно изменить формат логов, выкинуть лишние параметры и добавить разделитель между параметрами. Для этого идём в Дополнительно -> Конфигурация -> выбираем свой Apache. В блокноте открываются два файла, в одним из них есть несколько директив LogFormat вроде таких:
Допустим, у вас есть скрипт log_writer.php, который переносит логи в базу. Вы перешли по ссылке - он выполнил работу. Теперь задача в том, чтобы он запускался не при переходе по ссылке, а чтобы при клике по кнопке на сайте браузер с помощью AJAX отправлял скрытый запрос на этот скрипт. Сам скрипт выполняется как обычно. Ну почти, нужно будет ещё индикатор прогресса запилить, но это несложно, в гугле полно примеров по запросу "Ajax progress bar jquery".
1
|
|||||||||||||||||||
|
1 / 1 / 0
Регистрация: 30.11.2016
Сообщений: 31
|
||
| 30.11.2018, 12:56 [ТС] | ||
Когда лог загрузился, как я понял, должна уже отобразиться страница с этими данными. Ну в общем-то за наводки по парсингу спасибо, буду пробовать) А идеи как это потом выводить пользователю есть?
0
|
||
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
|
||||
| 30.11.2018, 14:20 | ||||
Можно и без неё, хотя это будет выглядеть странно - только перешёл на страницу и сразу пошла какая-то загрузка.
1
|
||||
|
1 / 1 / 0
Регистрация: 30.11.2016
Сообщений: 31
|
|
| 30.11.2018, 18:34 [ТС] | |
|
Jodah, а, про сессию не уточнил, да. В пред. лабе делали систему авторизации и соответственно в бд есть таблица юзеров. Ну и используются сессии, чтобы отслеживать залогиненного пользователя.
Вот токо я и сам не понимаю, что за инфу он должен скачивать. У меня сайт довольно статичный. Пытался выяснить у препода, он сказал что-то типо:"Любое обращение к бд - это уже скаченная инфа в битах". Ток юзер мой толком и не обращается нигде в бд. Только когда логиниться и выходит. Рефреш страницы, я так думаю, тоже скачивание инфы с сервера о том, как должна выглядеть страница. Мб это как-то считать.
0
|
|
| 30.11.2018, 18:34 | |
|
Помогаю со студенческими работами здесь
5
Загрузка сайта с веб-сервера по IP-адресу Загрузка по списку нескольких файлов с веб-сервера Анализатор лог-файла сервера apache, позволяющий отображать количество показов Анализатор лог-файла сервера apache, позволяющий отображать количество запросов с заданного IP Загрузка файла с сервера Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
в-строка - входное арифметическое выражение в инфиксной(обычной). . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|