Проект реализует парсинг логов 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-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
Модель ApacheLog содержит основную информацию о логе:
ip - Адрес IPv4 или IPv6 в виде строки
date - дата и время запроса
tz - целое число, часовой пояс
method - HTTP-метод из заголовка запроса
referer - URL источника запросам
status - статусный код ответа
resp_size - размер ответа в байтах
Команде get_logs на вход дается URL, по которому собираются логи Класс Command содержит следующие методы
Параметры: data - блок данных для обработки, obj_list - список, содержащий объекты модели ApacheLog;
Обрабатывает данные из data и сохраняет их в obj_list.
Параметры: obj_list - список, содержащий объекты модели ApacheLog;
Сохраняет данные в бд.
Параметры: log - строка с информацией о запросе;
Создает объект модели ApacheLog из строки.
Параметры: url - ссылка на ресурс с логами;
Получет и обрабатывает данные содержащиеся в url
Наследуется от generic.ListView. Реализует поиск, обработку и представление данных о логах. Также через статический метод download осуществляет экспорт в xlsx.