Загрузка данных


Выбранное программное обеспечение
Назначение	Программа	Обоснование выбора
Операционная система	Ubuntu Desktop 24.04 LTS	Совместима с Python, PostgreSQL, QGIS и Grafana; удобна для демонстрации в VirtualBox.
Виртуализация	Oracle VM VirtualBox	Позволяет развернуть изолированную рабочую станцию и сделать экспорт установленной системы.
Среда разработки	Visual Studio Code	Поддерживает Python, расширения, терминал, Git и работу с проектами анализа данных.
Анализ временных рядов	pandas, NumPy, statsmodels	Используются для обработки данных датчиков, агрегации и анализа динамики загруженности дорог.
Прогнозирование	scikit-learn	Позволяет построить простой прогноз транспортной загрузки по историческим значениям.
Геоданные	PostgreSQL + PostGIS, QGIS, GeoPandas	PostGIS хранит координаты датчиков, QGIS проверяет слои, GeoPandas обрабатывает геометрию в Python.
Визуализация	Grafana	Используется как система визуализации транспортных потоков и объект руководства пользователя.
Защита и мониторинг	UFW, auditd, journalctl, Timeshift	Закрывают требования по защите данных, журналированию, резервному копированию и восстановлению.
Подготовка файлов и загрузок
До начала экзамена подготовь установочный ISO-образ Ubuntu Desktop, установщик Oracle VM VirtualBox для основной системы, а также список официальных страниц для установки VS Code, PostgreSQL/PostGIS, QGIS и Grafana. Если интернет на экзамене слабый, заранее скачай ISO Ubuntu и установщик VirtualBox. Внутри Ubuntu остальные компоненты удобнее ставить командами через терминал.
Создай на основном компьютере папку Variant30_ITS. В нее положи ISO Ubuntu, будущие скриншоты и два документа. Скриншоты называй по номеру: ris_01.png, ris_02.png и так далее до ris_30.png. Так ты не перепутаешь порядок вставки рисунков.
Создание виртуальной машины
Открой Oracle VM VirtualBox и нажми кнопку New. В поле Name введи Variant30_Ubuntu_ITS, в поле Type выбери Linux, в поле Version выбери Ubuntu (64-bit). После создания виртуальной машины сделай скриншот главного окна VirtualBox (рис. 1).
Место для вставки скриншота: На скриншоте должно быть окно VirtualBox с созданной виртуальной машиной Variant30_Ubuntu_ITS.
ВСТАВИТЬ СКРИНШОТ
Рисунок 1 — Создание новой виртуальной машины в Oracle VM VirtualBox
В настройках виртуальной машины укажи оперативную память 4096 МБ, количество процессоров 2, видеопамять 128 МБ. Создай виртуальный диск VDI размером 40 ГБ, тип хранения — dynamically allocated. Проверь, что ISO Ubuntu подключен в разделе Storage. Сделай скриншот настроек виртуальной машины (рис. 2).
Место для вставки скриншота: На скриншоте должны быть видны параметры: Linux/Ubuntu 64-bit, 4096 МБ ОЗУ, 2 CPU, диск 40 ГБ.
ВСТАВИТЬ СКРИНШОТ
Рисунок 2 — Параметры виртуальной машины для Ubuntu
Установка Ubuntu
Запусти виртуальную машину. В первом окне установщика Ubuntu выбери язык интерфейса. Для экзамена удобнее выбрать русский язык, но можно оставить English, если так проще ориентироваться в командах. Сделай скриншот стартового окна установщика (рис. 3).
Место для вставки скриншота: На скриншоте должно быть первое окно установки Ubuntu с выбранным русским или английским языком.
ВСТАВИТЬ СКРИНШОТ
Рисунок 3 — Запуск установщика Ubuntu и выбор языка
На этапе разметки диска выбери установку на весь виртуальный диск. Это безопасно, потому что диск виртуальный и не затрагивает основной компьютер. Проверь, что выбран диск размером около 40 ГБ. Сделай скриншот окна разметки диска (рис. 4).
Место для вставки скриншота: На скриншоте должен быть выбран вариант установки на виртуальный диск без ручной разметки.
ВСТАВИТЬ СКРИНШОТ
Рисунок 4 — Разметка диска при установке Ubuntu
На этапе создания пользователя введи имя компьютера its-vm, имя пользователя student, пароль 12345 или другой пароль, который ты точно запомнишь. Пароль на скриншоте не раскрывай. Сделай скриншот окна создания учетной записи (рис. 5).
Место для вставки скриншота: На скриншоте должны быть поля имени пользователя, имени компьютера и пароля без раскрытия пароля.
ВСТАВИТЬ СКРИНШОТ
Рисунок 5 — Создание учетной записи пользователя Ubuntu
Дождись окончания установки, перезагрузи виртуальную машину и извлеки ISO-образ из виртуального привода, если VirtualBox попросит это сделать. После первого входа в систему сделай скриншот рабочего стола Ubuntu (рис. 6).
Место для вставки скриншота: На скриншоте должен быть открытый рабочий стол Ubuntu после первого входа.
ВСТАВИТЬ СКРИНШОТ
Рисунок 6 — Рабочий стол Ubuntu после установки
Настройка сети и обновлений
Открой Settings, перейди в Network и проверь, что сетевой интерфейс включен. Для VirtualBox обычно достаточно режима NAT, но для проверки удаленного доступа можно использовать Bridged Adapter. Если преподаватель просит показать правильный сетевой интерфейс, открой сведения о подключении. Сделай скриншот активного сетевого интерфейса (рис. 7).
Место для вставки скриншота: На скриншоте должны быть открыты настройки сети и виден активный сетевой интерфейс.
ВСТАВИТЬ СКРИНШОТ
Рисунок 7 — Настройка сетевого интерфейса Ubuntu
Открой Terminal и проверь интернет-соединение командой ping или curl. Например, выполни ping -c 4 ubuntu.com. Успешные ответы означают, что сеть работает. Сделай скриншот проверки соединения (рис. 8).
ping -c 4 ubuntu.com
curl -I https://ubuntu.com
Место для вставки скриншота: На скриншоте должен быть терминал с успешной командой ping или curl.
ВСТАВИТЬ СКРИНШОТ
Рисунок 8 — Проверка интернет-соединения
Установи обновления безопасности и базовые утилиты. На экзамене достаточно показать, что пакеты обновлены и команда завершилась без ошибок. После выполнения команд сделай скриншот терминала (рис. 9).
sudo apt update
sudo apt upgrade -y
sudo apt install -y curl wget git unzip build-essential net-tools gnome-system-tools system-config-printer cups-pdf
Место для вставки скриншота: На скриншоте должен быть терминал с выполнением sudo apt update и sudo apt upgrade.
ВСТАВИТЬ СКРИНШОТ
Рисунок 9 — Установка обновлений безопасности
Проверь версию ядра, сведения об ОС и состояние служб. Команда systemctl --failed должна показать, что критических неработающих служб нет. Это закрывает пункт настройки параметров ОС, драйверов и служб. Сделай скриншот результата (рис. 10).
uname -r
lsb_release -a
systemctl --failed
Место для вставки скриншота: На скриншоте должны быть команды uname -r, lsb_release -a и systemctl --failed.
ВСТАВИТЬ СКРИНШОТ
Рисунок 10 — Проверка ядра, драйверов и служб
Удаленный доступ, печать, резервное копирование и безопасность
Установи и включи SSH. После запуска службы проверь ее статус и IP-адрес виртуальной машины. Для демонстрации важно, чтобы было видно active/running. Сделай скриншот настройки SSH (рис. 11).
sudo apt install -y openssh-server
sudo systemctl enable --now ssh
ip a
systemctl status ssh
Место для вставки скриншота: На скриншоте должен быть статус службы ssh active/running и IP-адрес виртуальной машины.
ВСТАВИТЬ СКРИНШОТ
Рисунок 11 — Настройка SSH
Открой Settings, затем Sharing или Remote Desktop. Включи удаленный доступ к активной сессии, задай пароль подключения и проверь, что переключатель находится в положении On. Сделай скриншот окна удаленного доступа (рис. 12).
Место для вставки скриншота: На скриншоте должны быть параметры Remote Desktop или Sharing с включенным удаленным доступом.
ВСТАВИТЬ СКРИНШОТ
Рисунок 12 — Настройка удаленного доступа к активной сессии
Установи виртуальный принтер PDF. Для Ubuntu подойдет пакет cups-pdf или системное окно Printers. После установки открой настройки принтеров и проверь наличие PDF-принтера. Сделай скриншот установленного виртуального принтера (рис. 13).
sudo apt install -y cups-pdf system-config-printer
system-config-printer
Место для вставки скриншота: На скриншоте должен быть установленный виртуальный принтер PDF или окно Printers.
ВСТАВИТЬ СКРИНШОТ
Рисунок 13 — Установка виртуального принтера
Создай резервную копию установленной ОС через Timeshift. Выбери тип RSYNC, место хранения по умолчанию и нажми Create. Если нет графического окна, можно показать терминал с установленным Timeshift. Сделай скриншот созданного снимка системы (рис. 14).
sudo apt install -y timeshift
sudo timeshift --create --comments "Variant30 initial snapshot" --tags D
Место для вставки скриншота: На скриншоте должно быть окно Timeshift или терминал с созданным снимком системы.
ВСТАВИТЬ СКРИНШОТ
Рисунок 14 — Создание резервной копии системы
Создай установочный образ или экспорт системы. Самый простой вариант для VirtualBox — выключить виртуальную машину и выбрать File, Export Appliance, затем сохранить OVA-файл. Это покажет, что систему можно перенести и восстановить. Сделай скриншот мастера экспорта (рис. 15).
Место для вставки скриншота: На скриншоте должен быть мастер экспорта VirtualBox Appliance или команда создания ISO/OVA.
ВСТАВИТЬ СКРИНШОТ
Рисунок 15 — Создание установочного образа или экспорт системы
Создай группы пользователей для разграничения доступа: traffic_admin для администраторов, traffic_analyst для аналитиков транспортных потоков, transport_dev для разработчиков. После создания групп выполни getent group и сделай скриншот (рис. 16).
sudo groupadd traffic_admin
sudo groupadd traffic_analyst
sudo groupadd transport_dev
sudo usermod -aG traffic_admin $USER
getent group traffic_admin traffic_analyst transport_dev
Место для вставки скриншота: На скриншоте должен быть терминал с группами traffic_admin, traffic_analyst, transport_dev.
ВСТАВИТЬ СКРИНШОТ
Рисунок 16 — Создание групп пользователей
Создай каталог /srv/traffic_data для данных датчиков, назначь группу traffic_analyst и права 770. Это означает, что владелец и группа могут читать, писать и выполнять, а остальные пользователи доступа не имеют. Сделай скриншот прав доступа (рис. 17).
sudo mkdir -p /srv/traffic_data
sudo chgrp traffic_analyst /srv/traffic_data
sudo chmod 770 /srv/traffic_data
ls -ld /srv/traffic_data
Место для вставки скриншота: На скриншоте должны быть права каталога /srv/traffic_data через ls -ld.
ВСТАВИТЬ СКРИНШОТ
Рисунок 17 — Настройка прав доступа к данным датчиков
Включи базовую защиту: UFW, разрешение SSH и порта Grafana 3000, аудит событий и системное журналирование. Для демонстрации покажи статус firewall и активность auditd. Сделай скриншот настроек защиты (рис. 18).
sudo apt install -y ufw auditd rsyslog timeshift lynis
sudo ufw allow OpenSSH
sudo ufw allow 3000/tcp
sudo ufw enable
sudo systemctl enable --now auditd rsyslog
sudo ufw status verbose
systemctl status auditd
Место для вставки скриншота: На скриншоте должны быть UFW, блокировка входа или параметры пользователей/паролей.
ВСТАВИТЬ СКРИНШОТ
Рисунок 18 — Настройка аутентификации, авторизации и защиты
Проверь журнал мониторинга. Используй journalctl -p warning -n 30 или приложение Logs. На экране должны быть видны системные события, дата и источник записи. Сделай скриншот журнала мониторинга (рис. 19).
journalctl -p warning -n 30
sudo tail -n 30 /var/log/syslog
Место для вставки скриншота: На скриншоте должны быть journalctl, GNOME Logs или rsyslog с событиями системы.
ВСТАВИТЬ СКРИНШОТ
Рисунок 19 — Настройка журнала мониторинга
Установка среды разработки и библиотек
Установи Visual Studio Code из официального репозитория Microsoft. Затем поставь расширение Python и открой папку ~/traffic_project. На скриншоте должно быть видно, что среда разработки готова к работе с Python-проектом (рис. 20).
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
echo "Types: deb
URIs: https://packages.microsoft.com/repos/code
Suites: stable
Components: main
Architectures: amd64,arm64,armhf
Signed-By: /etc/apt/keyrings/packages.microsoft.gpg" | sudo tee /etc/apt/sources.list.d/vscode.sources
sudo apt update
sudo apt install -y code
code --install-extension ms-python.python
Место для вставки скриншота: На скриншоте должен быть VS Code с расширением Python и открытой папкой проекта traffic_project.
ВСТАВИТЬ СКРИНШОТ
Рисунок 20 — Установка и настройка Visual Studio Code
Создай виртуальное окружение Python и установи библиотеки для временных рядов, геоданных и прогнозирования. После установки проверь импорт pandas, geopandas и sklearn. Сделай скриншот терминала с активным окружением (рис. 21).
sudo apt install -y python3 python3-pip python3-venv
mkdir -p ~/traffic_project && cd ~/traffic_project
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install pandas numpy matplotlib scikit-learn statsmodels geopandas folium psycopg2-binary sqlalchemy
python -c "import pandas, geopandas, sklearn; print('ITS libraries OK')"
Место для вставки скриншота: На скриншоте должен быть терминал с активированным venv и установленными pandas, geopandas, scikit-learn.
ВСТАВИТЬ СКРИНШОТ
Рисунок 21 — Создание Python-окружения и установка библиотек
Установка базы данных и геоинструментов
Установи PostgreSQL и PostGIS. Создай базу traffic_monitoring и расширение PostGIS. Это нужно для хранения данных транспортных датчиков с координатами и временем измерений. Сделай скриншот статуса PostgreSQL и созданного расширения (рис. 22).
sudo apt install -y postgresql postgresql-contrib postgis
sudo systemctl enable --now postgresql
sudo -u postgres createdb traffic_monitoring
sudo -u postgres psql -d traffic_monitoring -c "CREATE EXTENSION IF NOT EXISTS postgis;"
sudo -u postgres psql -d traffic_monitoring -c "\dx"
Место для вставки скриншота: На скриншоте должен быть статус PostgreSQL и созданное расширение postgis.
ВСТАВИТЬ СКРИНШОТ
Рисунок 22 — Установка PostgreSQL и PostGIS
Установи QGIS и открой его для проверки геоданных. Можно создать простой CSV со столбцами latitude и longitude, а затем добавить его как слой точек. Сделай скриншот QGIS с точками датчиков или слоем дорог (рис. 23).
sudo apt install -y qgis
qgis
Место для вставки скриншота: На скриншоте должен быть QGIS с загруженным слоем дорог или точек датчиков.
ВСТАВИТЬ СКРИНШОТ
Рисунок 23 — Проверка геоданных в QGIS
Установка и настройка Grafana
Установи Grafana из официального APT-репозитория, включи службу и открой в браузере адрес http://localhost:3000. Первый логин обычно admin/admin, после входа система попросит изменить пароль. Сделай скриншот службы или окна входа (рис. 24).
sudo apt-get install -y apt-transport-https software-properties-common wget
sudo mkdir -p /etc/apt/keyrings/
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt update
sudo apt install -y grafana
sudo systemctl enable --now grafana-server
systemctl status grafana-server
Место для вставки скриншота: На скриншоте должен быть статус grafana-server active/running или окно входа Grafana.
ВСТАВИТЬ СКРИНШОТ
Рисунок 24 — Установка и запуск Grafana
В Grafana открой Connections, Data sources, Add data source и выбери PostgreSQL. Укажи host localhost:5432, database traffic_monitoring, user postgres или отдельного пользователя, SSL Mode disable для локальной демонстрации. Нажми Save & test и сделай скриншот успешного подключения (рис. 25).
Место для вставки скриншота: На скриншоте должно быть окно Data sources и результат Save & test.
ВСТАВИТЬ СКРИНШОТ
Рисунок 25 — Подключение PostgreSQL как источника данных Grafana
Создай таблицу traffic_sensors и добавь несколько тестовых строк. Эти данные имитируют показания дорожных датчиков: количество машин, средняя скорость, время измерения и координаты. Сделай скриншот таблицы с тестовыми строками (рис. 26).
sudo -u postgres psql -d traffic_monitoring -c "CREATE TABLE IF NOT EXISTS traffic_sensors (id serial PRIMARY KEY, sensor_name text, road_name text, ts timestamptz, cars_count int, avg_speed numeric, latitude numeric, longitude numeric);"
sudo -u postgres psql -d traffic_monitoring -c "INSERT INTO traffic_sensors(sensor_name, road_name, ts, cars_count, avg_speed, latitude, longitude) VALUES ('S-001','Central Avenue',now() - interval '20 minutes',92,38.5,55.751244,37.618423),('S-002','Ring Road',now() - interval '10 minutes',140,24.2,55.760000,37.640000),('S-003','Station Street',now(),76,51.1,55.745000,37.600000);"
sudo -u postgres psql -d traffic_monitoring -c "SELECT * FROM traffic_sensors;"
Место для вставки скриншота: На скриншоте должен быть psql/pgAdmin с таблицей traffic_sensors и тестовыми строками.
ВСТАВИТЬ СКРИНШОТ
Рисунок 26 — Создание таблицы транспортных датчиков
Создание панели визуализации транспортных потоков
В Grafana создай новый dashboard с названием Traffic Flow Monitor. Этот экран будет основным доказательством, что система визуализации транспортных потоков установлена и настроена. Сделай скриншот созданной панели (рис. 27).
Место для вставки скриншота: На скриншоте должен быть созданный dashboard Grafana с названием Traffic Flow Monitor.
ВСТАВИТЬ СКРИНШОТ
Рисунок 27 — Создание панели Traffic Flow Monitor
Добавь Time series-панель. В запросе выбери время ts, среднюю скорость avg_speed и количество автомобилей cars_count. Назови панель «Средняя скорость и поток машин». Сделай скриншот графика (рис. 28).
SELECT ts AS time, avg_speed, cars_count FROM traffic_sensors ORDER BY ts;
Место для вставки скриншота: На скриншоте должна быть временная диаграмма средней скорости или количества машин.
ВСТАВИТЬ СКРИНШОТ
Рисунок 28 — График изменения скорости и загруженности дорог
Добавь Geomap-панель. Для координат укажи latitude и longitude, а в качестве значения выбери cars_count или avg_speed. Эта карта показывает положение датчиков и состояние транспортного потока. Сделай скриншот карты (рис. 29).
SELECT ts AS time, latitude, longitude, cars_count, avg_speed, sensor_name FROM traffic_sensors;
Место для вставки скриншота: На скриншоте должна быть Geomap-панель Grafana с точками датчиков и координатами.
ВСТАВИТЬ СКРИНШОТ
Рисунок 29 — Карта транспортных потоков
Создай простой прогноз загруженности дорог через scikit-learn. Результат прогноза можно вывести в терминал, сохранить в таблицу или показать отдельной Stat/Time series-панелью. На итоговом скриншоте должны быть видны график, карта и предупреждение или прогноз (рис. 30).
cat > ~/traffic_project/forecast.py <<'EOF'
import pandas as pd
from sklearn.linear_model import LinearRegression
data = pd.DataFrame({'minute':[0,10,20,30,40,50], 'cars':[70,82,96,120,135,150]})
model = LinearRegression().fit(data[['minute']], data['cars'])
print('Прогноз машин через 60 минут:', round(model.predict([[60]])[0], 2))
EOF
python ~/traffic_project/forecast.py
Место для вставки скриншота: На скриншоте должен быть итоговый dashboard с графиком прогноза, картой и статусом предупреждений.
ВСТАВИТЬ СКРИНШОТ
Рисунок 30 — Итоговая панель прогнозирования загруженности дорог
Что обязательно показать преподавателю
Что проверяют	Что показать
ОС установлена и работает	рабочий стол Ubuntu, сеть, обновления, ядро и службы
Сеть настроена	активный интерфейс и успешный ping/curl
Удаленный доступ включен	SSH active/running и Remote Desktop
Защита настроена	UFW, auditd, права доступа, группы пользователей
Резервное копирование выполнено	Timeshift snapshot и экспорт OVA
ПО по варианту установлено	VS Code, Python-библиотеки, PostgreSQL/PostGIS, QGIS, Grafana
Система визуализации готова	Grafana dashboard с графиком, картой и прогнозом
Если времени мало, в первую очередь показывай рисунки 6, 8, 9, 11, 18, 20, 22, 24, 25 и 30. Они быстрее всего доказывают, что базовая система, защита, разработческое ПО, база данных и визуализация действительно настроены.
Список использованных источников
1. Oracle VM VirtualBox. Официальный сайт: https://www.virtualbox.org/wiki/Downloads
2. Ubuntu Desktop. Официальный сайт: https://ubuntu.com/download
3. Visual Studio Code for Linux. Официальный сайт: https://code.visualstudio.com/docs/setup/linux
4. PostgreSQL Ubuntu packages. Официальный сайт: https://www.postgresql.org/download/linux/ubuntu/
5. PostGIS Ubuntu/Debian installation. Официальный сайт: https://postgis.net/documentation/getting_started/install_ubuntu/
6. Grafana installation on Debian/Ubuntu. Официальный сайт: https://grafana.com/docs/grafana/latest/setup-grafana/installation/debian/
7. Grafana PostgreSQL data source. Официальный сайт: https://grafana.com/docs/grafana/latest/datasources/postgres/
8. Grafana Geomap visualization. Официальный сайт: https://grafana.com/docs/grafana/latest/visualizations/panels-visualizations/visualizations/geomap/
9. QGIS installation guide. Официальный сайт: https://qgis.org/resources/installation-guide/
10. pandas installation. Официальный сайт: https://pandas.pydata.org/docs/getting_started/install.html
11. scikit-learn installation. Официальный сайт: https://scikit-learn.org/stable/install.html
12. GeoPandas installation. Официальный сайт: https://geopandas.org/en/latest/getting_started/install.html