Skip to content

pacif-coder/apache_log_reader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ТЗ

Используя Yii2, реализовать приложение, которое является агрегатором данных из access логов apache с сохранением в БД. Разбор файлов должен выполняться по cron'у (команда Yii2).

В приложении реализовать такие функции:

  • авторизация (пользователи в БД)
  • просмотр данных сохраненных в БД (группировка по IP, по дате, выборка по промежутку дат)
  • API для получения данных в виде JSON (смысл тот же: получение данных по временному промежутку, возможность группировать/фильтровать по IP)
  • конфигурация через файл настроек (где лежат логи, маска файлов, и все, что Вам потребуется для настройки приложения)

Для исполнения интерфейса использовать bootstrap

Установка

Клонировать репозиторий, указать в настройках доступ к база данных, запустить миграцию.

'DocumentRoot' в конфиге виртуального хоста должен указать на папку web.

Настройки

Путь для файла с логами и регулярное выражения для их чтения указан в файле basic/config/params.php, как параметры как параметры 'log_file' и 'log_parse_reg' соответственно.

Параметр 'log_file' по по-умолчанию указывает на файл logs/access.log.

Доступ к базе данных прописан в basic/config/db.php.

Cron

Команда для чтения лога запускается через basic/yii parse-log.

API

Базовое использование

Получить логи через Api в формате JSON:

curl -i -g --user 100token: "http://gds/api"

где:

http://gds - имя домена, где развернут сайт

100token - 'accessToken' пользователя, по которому мы его авторизуем 

Фильтрация логов

Если нужно отфильтровать логи по интервалу дат или/и по имени хоста, нужно добавить к url запроса параметр 'search' c подпараметрами.

curl -i -g --user 100token: "http://gds/api?search[begin]=2017-01-19&search[end]=2017-01-21&search[host]=127"

подпараметры в параметре 'search':

'begin' - начало временного интервала
'end' - конец временного интервала
'host' - c какой строки должно начинаться имя хоста

Примечание: для получения логов за один день достаточно указать его в подпараметрах 'begin' и 'end'.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published