Skip to content

Gannicus91/test_project

Repository files navigation

test_project

Проект реализует парсинг логов apache сервера, их обработку и хранение.


Развертка, настройка и запуск проекта

Загрузка проекта

Сначала необходимо клонировать репозиторий на локальную машину:

git clone [email protected]:Gannicus91/test_project.git

Создайте и активируйте виртуальное окружение:

py -m venv venv
venv\Scripts\activate

Установите необходимые библиотеки:

pip install -r requirements.txt

Настройка базы данных

В settings.py укажите используемую СУБД. По умолчанию - sqlite:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

Выполните миграции с помощью команд: python manage.py makemigrations python manage.py migrate

Запуск проекта на локальной машине

Выполните python manage.py runserver. В консоли появится сообщение

System check identified no issues (0 silenced).
June 23, 2019 - 18:23:42
Django version 2.2.2, using settings 'test_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

Docker

Вы можете запустить проект с настройками по умолчанию, выполнив команды:

docker-compose run web python manage.py makemigrations
docker-compose run web python manage.py migrate
docker-compose up

Сбор логов

Используйте команду python manage.py get_logs <url> чтобы собрать логи:

python manage.py get_logs http://www.almhuette-raith.at/apache-log/access.log

Документация

Model ApacheLog

Модель ApacheLog содержит основную информацию о логе:
ip - Адрес IPv4 или IPv6 в виде строки
date - дата и время запроса
tz - целое число, часовой пояс
method - HTTP-метод из заголовка запроса
referer - URL источника запросам
status - статусный код ответа
resp_size - размер ответа в байтах

Management command get_logs

Команде get_logs на вход дается URL, по которому собираются логи Класс Command содержит следующие методы

process

Параметры: data - блок данных для обработки, obj_list - список, содержащий объекты модели ApacheLog;
Обрабатывает данные из data и сохраняет их в obj_list.

save_data

Параметры: obj_list - список, содержащий объекты модели ApacheLog;
Сохраняет данные в бд.

get_log_object

Параметры: log - строка с информацией о запросе;
Создает объект модели ApacheLog из строки.

get_data

Параметры: url - ссылка на ресурс с логами;
Получет и обрабатывает данные содержащиеся в url

ApacheLogListView

Наследуется от generic.ListView. Реализует поиск, обработку и представление данных о логах. Также через статический метод download осуществляет экспорт в xlsx.

About

parse apache logs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published