Загрузка данных
ВАРИАНТ 30
ШПАРГАЛКА ПОШАГОВОГО ВЫПОЛНЕНИЯ
с местами для скриншотов
Тема варианта: интеллектуальные транспортные системы. Нужно показать установку и настройку программного обеспечения для анализа данных с датчиков, работы с временными рядами, геоданными, визуализации транспортных потоков и прогнозирования загруженности дорог.
Этот файл сделан не как официальный отчет, а как рабочая шпаргалка: идешь сверху вниз, выполняешь действие, делаешь скриншот и вставляешь его в указанное место. В тексте специально стоят отсылки к рисункам, например (рис. 1), чтобы было понятно, какой скриншот подтверждает действие.
Важно: Все скриншоты делай через Win + Shift + S или Alt + PrintScreen. Вставляй скриншот прямо в прямоугольник под нужным номером, подпись под рисунком уже готова. Если скриншот большой, сжимай его так, чтобы он помещался между текстом и подписью.
Чем должны отличаться два файла
Файл Для чего нужен Как должен выглядеть
Шпаргалка выполнения Для тебя на экзамене. Пошаговые действия, команды, куда нажимать, какие скриншоты сделать.
Руководство пользователя Для сдачи как документация. Официальный текст: назначение программы, условия применения, порядок работы, аварийные ситуации.
В этом документе оставлена только шпаргалка выполнения. Если преподаватель просит именно документацию по ГОСТ, тогда используется второй файл “руководство пользователя”. Если нужно быстро выполнить практическую часть и не забыть скриншоты, используется этот файл.
Что выбираем для варианта 30
Требование варианта Что ставим Зачем это нужно
Операционная система Ubuntu Desktop в VirtualBox Удобно показать установку, сеть, SSH, защиту и ПО в одной виртуальной машине.
Среда разработки Python Visual Studio Code + Python 3 Для анализа временных рядов и написания скрипта прогноза загруженности дорог.
Геоданные и транспортные потоки PostgreSQL + PostGIS, QGIS Хранение координат датчиков, отображение дорожных точек на карте.
Система визуализации Grafana Дашборды скорости, потока машин, загруженности и прогнозов.
Защита и контроль UFW, auditd, ClamAV, пользователи/группы Файрвол, журналирование, проверка системы, разграничение доступа.
Резервное копирование VirtualBox Snapshot, Export Appliance, Timeshift Точки восстановления, резервная копия и образ установленной системы.
Пошаговый ход выполнения
1. Скачать и открыть VirtualBox
Открой браузер на основной системе, скачай Oracle VM VirtualBox и образ Ubuntu Desktop ISO. После установки запусти VirtualBox. На экране должен быть список виртуальных машин или пустое окно менеджера VirtualBox (рис. 1).
ВСТАВЬ СЮДА СКРИНШОТ 1
Окно Oracle VM VirtualBox Manager
Рисунок 1 – Окно VirtualBox перед созданием виртуальной машины
2. Создать виртуальную машину
Нажми “Создать”. Имя укажи Var30_ITS, тип Linux, версия Ubuntu 64-bit. Память поставь 4096 MB, процессоры 2, виртуальный диск 30 GB, формат VDI, динамический размер. После создания открой настройки виртуальной машины и проверь параметры системы (рис. 2).
ВСТАВЬ СЮДА СКРИНШОТ 2
Настройки VM: RAM 4096 MB, CPU 2
Рисунок 2 – Параметры памяти и процессора виртуальной машины
3. Настроить сеть виртуальной машины
В настройках VirtualBox открой “Сеть”. Для экзамена удобнее оставить NAT, потому что интернет обычно работает без дополнительной настройки. Если преподаватель просит доступ с другого компьютера, можно выбрать “Сетевой мост”. Зафиксируй выбранный адаптер на скриншоте (рис. 3).
ВСТАВЬ СЮДА СКРИНШОТ 3
Вкладка Network/Сеть, Adapter 1 enabled, NAT или Bridge
Рисунок 3 – Настройка сетевого адаптера виртуальной машины
4. Подключить ISO и начать установку Ubuntu
Открой “Носители”, подключи ISO-образ Ubuntu к оптическому приводу и нажми “Запустить”. В установщике выбери язык, раскладку, обычную установку и установку обновлений при наличии интернета. Экран начала установки нужен как подтверждение установки ОС (рис. 4).
ВСТАВЬ СЮДА СКРИНШОТ 4
Окно установщика Ubuntu
Рисунок 4 – Запуск установки Ubuntu с ISO-образа
5. Завершить установку и войти в Ubuntu
После установки перезагрузи виртуальную машину, извлеки ISO, войди под созданным пользователем. На рабочем столе Ubuntu сделай первый контрольный скриншот установленной ОС (рис. 5).
ВСТАВЬ СЮДА СКРИНШОТ 5
Ubuntu Desktop после входа пользователя
Рисунок 5 – Рабочий стол установленной Ubuntu
6. Обновить систему безопасности
Открой Terminal и выполни обновление пакетов. Это закрывает требование “установить последние обновления безопасности”. После завершения команд сделай скриншот терминала (рис. 6).
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
ВСТАВЬ СЮДА СКРИНШОТ 6
Terminal с выполненным apt update/upgrade
Рисунок 6 – Обновление пакетов операционной системы
7. Установить дополнения VirtualBox и настроить экран
Для нормального разрешения и удобной вставки скриншотов установи инструменты сборки, затем в меню VirtualBox выбери “Устройства – Подключить образ Дополнений гостевой ОС”. После установки проверь, что окно Ubuntu меняет размер. В настройках Ubuntu выбери масштаб 100% и удобное разрешение, например 1280×720 (рис. 7).
sudo apt install -y build-essential dkms linux-headers-$(uname -r)
# затем в меню VirtualBox подключи Guest Additions
sudo /media/$USER/VBox_GAs_*/VBoxLinuxAdditions.run
ВСТАВЬ СЮДА СКРИНШОТ 7
Settings → Displays, Scale 100%, Resolution 1280×720
Рисунок 7 – Настройка разрешения экрана и масштабирования
8. Проверить интернет-соединение
В терминале проверь IP-адрес и доступ в интернет. Это подтверждает правильный сетевой интерфейс и проверку соединения (рис. 8).
ip a
ping -c 4 8.8.8.8
ping -c 4 ya.ru
ВСТАВЬ СЮДА СКРИНШОТ 8
Terminal: ip a и успешный ping
Рисунок 8 – Проверка сетевого интерфейса и интернет-соединения
9. Настроить SSH
Установи SSH-сервер, включи службу и проверь статус. Это закрывает критерий настройки сетевого протокола SSH (рис. 9).
sudo apt install -y openssh-server
sudo systemctl enable --now ssh
sudo systemctl status ssh --no-pager
hostname -I
ВСТАВЬ СЮДА СКРИНШОТ 9
Terminal: ssh active/running и IP-адрес
Рисунок 9 – Настроенный и запущенный SSH-сервер
10. Настроить удаленный доступ к активной сессии
Установи XRDP для удаленного подключения к графическому интерфейсу. После запуска службы сделай скриншот статуса. Если есть время, с основной системы открой “Подключение к удаленному рабочему столу” и подключись по IP виртуальной машины (рис. 10).
sudo apt install -y xrdp
sudo systemctl enable --now xrdp
sudo adduser xrdp ssl-cert
sudo systemctl status xrdp --no-pager
ВСТАВЬ СЮДА СКРИНШОТ 10
Terminal: xrdp active/running или окно RDP
Рисунок 10 – Настройка удаленного доступа XRDP
11. Создать группы пользователей
Создай группы по ролям: transport_dev для разработчиков, traffic_analysts для аналитиков, security_admins для администраторов. Добавь тестового пользователя analyst1. Это нужно для критерия групп пользователей и разграничения прав (рис. 11).
sudo groupadd transport_dev
sudo groupadd traffic_analysts
sudo groupadd security_admins
sudo useradd -m -s /bin/bash analyst1
sudo passwd analyst1
sudo usermod -aG traffic_analysts analyst1
getent group transport_dev traffic_analysts security_admins
id analyst1
ВСТАВЬ СЮДА СКРИНШОТ 11
Terminal: группы созданы, пользователь analyst1 есть
Рисунок 11 – Создание групп и пользователя для проекта
12. Настроить права доступа к ресурсам
Создай папку проекта /opt/transport_monitoring и выдай доступ группе traffic_analysts. Обычные пользователи не должны видеть рабочие данные без прав. На скриншоте покажи права через ls -ld (рис. 12).
sudo mkdir -p /opt/transport_monitoring
sudo chown root:traffic_analysts /opt/transport_monitoring
sudo chmod 750 /opt/transport_monitoring
ls -ld /opt/transport_monitoring
ВСТАВЬ СЮДА СКРИНШОТ 12
Terminal: drwxr-x--- root traffic_analysts
Рисунок 12 – Права доступа к каталогу проекта
13. Настроить аутентификацию и политику паролей
Установи модуль проверки сложности паролей. Это можно показать как первичную настройку аутентификации. После установки открой файл настроек или покажи установленный пакет (рис. 13).
sudo apt install -y libpam-pwquality
sudo grep -E "minlen|ucredit|lcredit|dcredit" /etc/security/pwquality.conf || true
dpkg -l | grep libpam-pwquality
ВСТАВЬ СЮДА СКРИНШОТ 13
Terminal: установлен libpam-pwquality
Рисунок 13 – Настройка проверки сложности паролей
14. Включить файрвол UFW
Разреши SSH, порт Grafana 3000 и включи UFW. Это относится к защите данных транспортного мониторинга и контролю доступа к системе (рис. 14).
sudo ufw allow OpenSSH
sudo ufw allow 3000/tcp
sudo ufw --force enable
sudo ufw status verbose
ВСТАВЬ СЮДА СКРИНШОТ 14
Terminal: Status active, OpenSSH и 3000/tcp allowed
Рисунок 14 – Настроенный межсетевой экран UFW
15. Настроить журнал мониторинга
Установи auditd и добавь правило наблюдения за каталогом проекта. Потом покажи активную службу и правило аудита. Это закрывает критерий “журнал мониторинга настроен” (рис. 15).
sudo apt install -y auditd audispd-plugins
sudo systemctl enable --now auditd
sudo auditctl -w /opt/transport_monitoring -p warx -k transport_watch
sudo auditctl -l
sudo systemctl status auditd --no-pager
ВСТАВЬ СЮДА СКРИНШОТ 15
Terminal: auditd active/running и правило transport_watch
Рисунок 15 – Настройка auditd для мониторинга каталога проекта
16. Создать точку восстановления VirtualBox
Выключи виртуальную машину или оставь в сохраненном состоянии. В VirtualBox выбери виртуальную машину, открой “Снимки” и нажми “Сделать”. Название: Before_transport_software. Это первая точка восстановления системы (рис. 16).
ВСТАВЬ СЮДА СКРИНШОТ 16
VirtualBox → Snapshots → Before_transport_software
Рисунок 16 – Создание снимка виртуальной машины
17. Сделать резервное копирование системы через Timeshift
Установи Timeshift, открой программу, выбери тип RSYNC, диск виртуальной машины и создай снимок. Если Timeshift не запускается, покажи установку и окно выбора типа снимка. Это будет резервная копия ОС (рис. 17).
sudo apt install -y timeshift
sudo timeshift --list
ВСТАВЬ СЮДА СКРИНШОТ 17
Окно Timeshift или terminal с timeshift --list
Рисунок 17 – Резервное копирование установленной ОС через Timeshift
18. Создать установочный образ системы
В VirtualBox можно экспортировать готовую виртуальную машину: “Файл – Экспорт конфигураций”. Формат оставь OVA, имя файла Var30_ITS.ova. Скриншот нужен на шаге выбора имени или завершения экспорта (рис. 18).
ВСТАВЬ СЮДА СКРИНШОТ 18
VirtualBox Export Appliance / Экспорт конфигураций
Рисунок 18 – Экспорт виртуальной машины в установочный образ OVA
19. Установить виртуальный принтер
Установи CUPS и PDF-принтер. После установки открой список принтеров или покажи пакет cups-pdf в терминале. Это закрывает критерий “установлен виртуальный принтер” (рис. 19).
sudo apt install -y cups cups-pdf
sudo systemctl enable --now cups
lpstat -p -d
ВСТАВЬ СЮДА СКРИНШОТ 19
Printers или Terminal: PDF printer
Рисунок 19 – Установленный виртуальный PDF-принтер
20. Установить базовое программное обеспечение
Поставь набор базовых программ: архиватор, офис, графический редактор, утилиты и Git. Это нужно показать как базовое ПО (рис. 20).
sudo apt install -y git curl wget unzip p7zip-full gimp libreoffice htop net-tools
ВСТАВЬ СЮДА СКРИНШОТ 20
Terminal: apt install completed
Рисунок 20 – Установка базового программного обеспечения
21. Установить Visual Studio Code и Python
Установи VS Code, Python, pip и venv. Создай папку проекта transport_monitoring. Открой эту папку в VS Code и сделай скриншот интерфейса редактора (рис. 21).
sudo snap install code --classic
sudo apt install -y python3 python3-pip python3-venv
mkdir -p ~/transport_monitoring
code ~/transport_monitoring
ВСТАВЬ СЮДА СКРИНШОТ 21
VS Code открыт в папке transport_monitoring
Рисунок 21 – Среда разработки VS Code для проекта транспортной аналитики
22. Создать виртуальное окружение Python и поставить библиотеки
В терминале VS Code или обычном терминале создай окружение и установи библиотеки для временных рядов, геоданных и прогноза. На скриншоте покажи успешную установку или список пакетов (рис. 22).
cd ~/transport_monitoring
python3 -m venv venv
source venv/bin/activate
pip install pandas numpy matplotlib scikit-learn statsmodels geopandas folium psycopg2-binary sqlalchemy
ВСТАВЬ СЮДА СКРИНШОТ 22
Terminal: pip install completed
Рисунок 22 – Python-библиотеки для анализа временных рядов и геоданных
23. Установить PostgreSQL и PostGIS
PostgreSQL будет хранить данные дорожных датчиков, а PostGIS позволит хранить координаты. После установки включи сервер и проверь статус (рис. 23).
sudo apt install -y postgresql postgresql-contrib postgis
sudo systemctl enable --now postgresql
sudo systemctl status postgresql --no-pager
ВСТАВЬ СЮДА СКРИНШОТ 23
Terminal: postgresql active/running
Рисунок 23 – Установка и запуск PostgreSQL/PostGIS
24. Создать базу данных транспортного мониторинга
Создай пользователя transport_user, базу transport_db и расширение PostGIS. На скриншоте покажи выполнение команд без ошибок (рис. 24).
sudo -u postgres psql <<EOF
CREATE USER transport_user WITH PASSWORD '12345';
CREATE DATABASE transport_db OWNER transport_user;
\c transport_db
CREATE EXTENSION IF NOT EXISTS postgis;
EOF
ВСТАВЬ СЮДА СКРИНШОТ 24
Terminal: CREATE ROLE, CREATE DATABASE, CREATE EXTENSION
Рисунок 24 – Создание базы данных transport_db и расширения PostGIS
25. Добавить тестовые данные дорожных датчиков
Вставь таблицу с датчиками, скоростью, количеством машин, индексом загруженности и координатами. Это демонстрирует данные транспортного мониторинга (рис. 25).
sudo -u postgres psql -d transport_db <<EOF
CREATE TABLE IF NOT EXISTS traffic_flow (
id SERIAL PRIMARY KEY,
sensor_name TEXT,
road_name TEXT,
measured_at TIMESTAMP,
speed NUMERIC,
cars_count INT,
congestion NUMERIC,
geom geometry(Point, 4326)
);
INSERT INTO traffic_flow(sensor_name, road_name, measured_at, speed, cars_count, congestion, geom)
SELECT 'S-' || g,
CASE WHEN g % 3 = 0 THEN 'Lenina Ave' WHEN g % 3 = 1 THEN 'Central Ring' ELSE 'Station Road' END,
NOW() - (g * INTERVAL '10 minutes'),
40 + (random()*40)::int,
50 + (random()*250)::int,
round((random()*100)::numeric, 2),
ST_SetSRID(ST_MakePoint(37.60 + random()/10, 55.70 + random()/10), 4326)
FROM generate_series(1, 80) AS g;
SELECT id, sensor_name, road_name, measured_at, speed, cars_count, congestion FROM traffic_flow LIMIT 10;
EOF
ВСТАВЬ СЮДА СКРИНШОТ 25
Terminal: SELECT из таблицы traffic_flow
Рисунок 25 – Тестовые данные транспортных датчиков в PostgreSQL
26. Установить QGIS для работы с геоданными
Установи QGIS, открой его, создай подключение к PostgreSQL/PostGIS и добавь слой traffic_flow. На карте должны появиться точки датчиков (рис. 26).
sudo apt install -y qgis
qgis
ВСТАВЬ СЮДА СКРИНШОТ 26
QGIS с точками датчиков на карте
Рисунок 26 – Отображение датчиков транспортного мониторинга в QGIS
27. Установить Grafana
Grafana будет основной системой визуализации транспортных потоков. Установи пакет, включи службу и открой адрес http://localhost:3000. Первый логин обычно admin/admin, затем задай новый пароль, например admin12345 (рис. 27).
sudo apt install -y apt-transport-https software-properties-common wget gpg
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
sudo systemctl status grafana-server --no-pager
ВСТАВЬ СЮДА СКРИНШОТ 27
Browser: http://localhost:3000 или terminal: grafana-server active
Рисунок 27 – Запущенная Grafana для визуализации транспортных потоков
28. Подключить PostgreSQL как источник данных Grafana
В Grafana открой Connections/Data sources, выбери PostgreSQL. Укажи host: localhost:5432, database: transport_db, user: transport_user, password: 12345. Нажми Save & test. Должно появиться сообщение об успешном подключении (рис. 28).
ВСТАВЬ СЮДА СКРИНШОТ 28
Grafana Data source PostgreSQL: Save & test OK
Рисунок 28 – Подключение PostgreSQL к Grafana
29. Создать дашборд транспортных потоков
Создай Dashboard. Добавь панели: средняя скорость, количество машин, индекс загруженности, таблица датчиков. В запросе используй таблицу traffic_flow. Итоговый дашборд является главным доказательством работы системы визуализации транспортных потоков (рис. 29).
Пример SQL для панели средней скорости:
SELECT
measured_at AS time,
avg(speed) AS avg_speed
FROM traffic_flow
GROUP BY measured_at
ORDER BY measured_at;
Пример SQL для таблицы датчиков:
SELECT sensor_name, road_name, speed, cars_count, congestion
FROM traffic_flow
ORDER BY measured_at DESC
LIMIT 20;
ВСТАВЬ СЮДА СКРИНШОТ 29
Grafana Dashboard: графики скорости, машин и загруженности
Рисунок 29 – Дашборд Grafana с показателями транспортных потоков
30. Создать скрипт прогноза загруженности дорог
В VS Code создай файл forecast.py. Скрипт читает данные из PostgreSQL и строит простой прогноз congestion. После запуска покажи результат в терминале. Это закрывает требование пакета для прогнозирования загруженности дорог (рис. 30).
cat > ~/transport_monitoring/forecast.py <<'EOF'
import pandas as pd
from sqlalchemy import create_engine
from sklearn.linear_model import LinearRegression
engine = create_engine("postgresql+psycopg2://transport_user:12345@localhost:5432/transport_db")
df = pd.read_sql("SELECT measured_at, speed, cars_count, congestion FROM traffic_flow ORDER BY measured_at", engine)
df["t"] = range(len(df))
X = df[["t", "speed", "cars_count"]]
y = df["congestion"]
model = LinearRegression().fit(X, y)
last = df.iloc[-1]
future = pd.DataFrame([{"t": len(df)+1, "speed": last.speed, "cars_count": last.cars_count + 20}])
pred = model.predict(future)[0]
print("Прогноз загруженности дороги на следующий интервал:", round(float(pred), 2), "%")
EOF
cd ~/transport_monitoring
source venv/bin/activate
python forecast.py
ВСТАВЬ СЮДА СКРИНШОТ 30
Terminal: Прогноз загруженности дороги ... %
Рисунок 30 – Результат прогноза загруженности дороги
31. Проверить защиту от вредоносного ПО
Установи ClamAV и выполни проверку домашней папки или каталога проекта. Если обновление баз занимает много времени, покажи факт установки и запуск проверки. Это относится к защите данных транспортного мониторинга (рис. 31).
sudo apt install -y clamav clamav-daemon
sudo freshclam || true
clamscan -r ~/transport_monitoring | tail -n 15
ВСТАВЬ СЮДА СКРИНШОТ 31
Terminal: clamscan summary
Рисунок 31 – Проверка каталога проекта антивирусным сканером ClamAV
32. Финальный экран демонстрации
В конце открой рядом или по очереди: Grafana Dashboard, QGIS с точками датчиков, терминал со статусом UFW/SSH/auditd и VS Code со скриптом forecast.py. На итоговом скриншоте должно быть видно, что вариант 30 выполнен комплексно (рис. 32).
sudo ufw status
systemctl is-active ssh xrdp auditd grafana-server postgresql
ВСТАВЬ СЮДА СКРИНШОТ 32
Grafana/QGIS/Terminal или общий итоговый экран
Рисунок 32 – Итоговая демонстрация выполненного варианта 30
Минимальный набор, если времени мало
Если на экзамене не успеваешь сделать все идеально, обязательно покажи хотя бы эти доказательства: установленная Ubuntu, интернет, SSH, удаленный доступ, UFW, пользователи/группы, резервная копия или снимок VirtualBox, PostgreSQL с таблицей traffic_flow, QGIS с точками датчиков, Grafana Dashboard и Python-прогноз. Это закрывает основную часть критериев и напрямую связано с вариантом 30.
Финальный список скриншотов
№ Что должно быть на скриншоте Где вставлять
1 Окно VirtualBox перед созданием виртуальной машины В место под рисунок 1
2 Параметры памяти и процессора виртуальной машины В место под рисунок 2
3 Настройка сетевого адаптера виртуальной машины В место под рисунок 3
4 Запуск установки Ubuntu с ISO-образа В место под рисунок 4
5 Рабочий стол установленной Ubuntu В место под рисунок 5
6 Обновление пакетов операционной системы В место под рисунок 6
7 Настройка разрешения экрана и масштабирования В место под рисунок 7
8 Проверка сетевого интерфейса и интернет-соединения В место под рисунок 8
9 Настроенный и запущенный SSH-сервер В место под рисунок 9
10 Настройка удаленного доступа XRDP В место под рисунок 10
11 Создание групп и пользователя для проекта В место под рисунок 11
12 Права доступа к каталогу проекта В место под рисунок 12
13 Настройка проверки сложности паролей В место под рисунок 13
14 Настроенный межсетевой экран UFW В место под рисунок 14
15 Настройка auditd для мониторинга каталога проекта В место под рисунок 15
16 Создание снимка виртуальной машины В место под рисунок 16
17 Резервное копирование установленной ОС через Timeshift В место под рисунок 17
18 Экспорт виртуальной машины в установочный образ OVA В место под рисунок 18
19 Установленный виртуальный PDF-принтер В место под рисунок 19
20 Установка базового программного обеспечения В место под рисунок 20
21 Среда разработки VS Code для проекта транспортной аналитики В место под рисунок 21
22 Python-библиотеки для анализа временных рядов и геоданных В место под рисунок 22
23 Установка и запуск PostgreSQL/PostGIS В место под рисунок 23
24 Создание базы данных transport_db и расширения PostGIS В место под рисунок 24
25 Тестовые данные транспортных датчиков в PostgreSQL В место под рисунок 25
26 Отображение датчиков транспортного мониторинга в QGIS В место под рисунок 26
27 Запущенная Grafana для визуализации транспортных потоков В место под рисунок 27
28 Подключение PostgreSQL к Grafana В место под рисунок 28
29 Дашборд Grafana с показателями транспортных потоков В место под рисунок 29
30 Результат прогноза загруженности дороги В место под рисунок 30
31 Проверка каталога проекта антивирусным сканером ClamAV В место под рисунок 31
32 Итоговая демонстрация выполненного варианта 30 В место под рисунок 32