Выгрузка архива логов на терминале — это процесс сбора, упаковки и передачи файлов журналов событий (логов) с устройства терминала (платежного, самообслуживания, промышленного контроллера и т.д.) во внешнее хранилище или в техническую поддержку для последующего анализа. В современных системах этот процесс является ключевым элементом диагностики, аудита безопасности и мониторинга стабильности работы оборудования.
Зачем нужна выгрузка логов?
Логи (журналы событий) — это «черный ящик» любого программно-аппаратного комплекса. Они фиксируют:
- Ошибки и исключения приложений и системных сервисов.
- Транзакционные данные (для платежных терминалов — история платежей, взаимодействие с банковскими шлюзами).
- Системные события: загрузка ОС, работа драйверов периферии (принтеры, считыватели карт, PIN-клавиатуры), сетевые подключения.
- Действия пользователей и операторов (аудит безопасности).
Выгрузка архива необходима, когда:
- Произошел сбой, требующий вмешательства разработчиков или техподдержки (например, ошибка платежного терминала).
- Требуется плановый аудит или проверка соответствия стандартам (PCI DSS и др.).
- Локальное хранилище терминала переполняется (логи ротируются, но архивы нужно убрать вовне).
- Настроена централизованная система мониторинга (SIEM, ELK/EFK стек, облачные хранилища).
Источники логов на терминале (Linux/Unix-like среды)
Большинство современных терминалов работают на базе Linux (Debian, Ubuntu, Yocto, Buildroot) или FreeBSD. Источники логов там стандартизированы:
Systemd Journal (journalctl)
Основной источник для сервисов, запущенных через systemd.
journalctl -u <имя_сервиса> # Логи конкретного сервиса
journalctl -b # Логи текущей загрузки
journalctl -k # Только сообщения ядра (dmesg)
Если служба пишет в stdout/stderr, логи автоматически попадают в journal.
/var/log/syslogили/var/log/messages— системные сообщения./var/log/auth.log— авторизация и безопасность./var/log/kern.log— ядро ОС.- Логи конкретных приложений (nginx, apache, docker, кастомные приложения терминала).
Важно: Файлы могут быть архивными (.gz, .1, .2.gz) из-за работы logrotate (ротации логов).
Docker-контейнеры
Если терминал использует контейнеризацию, логи контейнеров собираются отдельно (обычно в JSON-файлы под /var/lib/docker/containers/ или через драйверы логирования: json-file, syslog, journald, gelf, fluentd).
Сессионное логирование (TTY/PTY)
Иногда требуется записать всю активность консоли (ввод команд, вывод программ), а не только историю команд (.bash_history). Для этого используются:
- script / scriptreplay — классическая утилита записи сессии.
- asciinema — современная альтернатива.
- systemd-journald с настройкой
ForwardToConsole=yesили утилиты вроде watch (в FreeBSD) / conspy, screen с логированием в Linux для мониторинга чужих терминалов.
Процесс формирования архива
Перед выгрузкой логи собираются в единый архив. Типичный сценарий:
- Сбор: Скрипт (bash/python) копирует актуальные логи из
/var/log,journalctl --export, логи Docker (docker logs), конфигурационные файлы (/etc), дампы БД (если мало). - Фильтрация по времени: Критически важно скопировать логи, относящиеся ко времени возникновения ошибки. Используются
grep,zgrep(для сжатых),journalctl --since="2026-07-10 10:00" --until="2026-07-10 11:00". - Упаковка: Архивация в ZIP, 7z (7zip), RAR, tar.gz. 7z и ZIP предпочтительнее для кроссплатформенности.
7z a logs_archive_$(date +%F).7z /var/log/app/* /tmp/journal_export.journal - Целостность: Часто считают хеш-суммы (SHA256) для проверки при передаче.
Способы выгрузки (Экспорта) Ручная выгрузка через интерфейс терминала (Лаунчер/Веб-интерфейс)
Многие производители (например, в экосистеме Teleofis или аналогичных) встраивают функцию в лаунчер или веб-админку.
- В лаунчере (правой части главного окна) ищут иконки: «Инфо» и иконка документа с надписью «Log».
- Нажатие на документ -> кнопка «Перейти к логам».
- Открывается интерфейс с тремя панелями: сервисы systemd, файлы
/var/log(включая архивные/усеченные), контейнеры Docker. - Есть поле фильтрации для поиска нужных записей.
- Финальный шаг: «Их необходимо положить в архив (RAR, ZIP, 7zip) и отправить на почту техподдержки (например,
support@teleofis.ru).
Автоматизированная выгрузка в внешние хранилища (Enterprise подход)
Настроенная опция выгрузки автоматически переносит логи в указанное хранилище клиента. Это исключает человеческий фактор и задержки.
- Объектные хранилища (S3-совместимые): MinIO, AWS S3, Yandex Object Storage, Selectel. Настройка через
rclone,aws cli,s3cmd. - FTP / SFTP / SCP: Классические протоколы для передачи на корпоративные файловые серверы.
- CDN / Edge-платформы: В разделе CDN (вкладка «Логи» -> «Сырые логи») включают опцию и настраивают отправку в S3/FTP/SFTP.
- Syslog / Fluentd / Vector / Filebeat: Прямая стриминговая передача в SIEM (Splunk, ELK, Graylog, Loki) без создания промежуточных архивов на диске терминала.
Через личный кабинет / Портал управления парком
Для доступа к логам терминала необходимо перейти в личный кабинет -> раздел Отчеты -> Логи терминалов в левом меню. Это актуально для облачных платформ управления терминалами (MDM для POS/ККТ).
Инструменты анализа на стороне терминала (до выгрузки)
Чтобы не выгружать гигабайты мусора, инженеры предварительно смотрят логи локально:
| Задача | Инструмент / Команда |
|---|---|
| Просмотр в реальном времени (follow) | tail -f /var/log/app.log, journalctl -f -u service |
| Поиск в текстовом файле | grep "ERROR" /var/log/app.log |
| Поиск в сжатых архивах (logrotate) | zgrep "ERROR" /var/log/app.log.*.gz |
| Удобная навигация/поиск в большом файле | less /var/log/app.log (клавиши: / поиск, n далее, q выход) |
| Экспорт журнала systemd в файл | journalctl -u service --since "1 hour ago" -o short-precise > /tmp/service_log.txt |
Особенности для платежных терминалов (ККТ, POS) - Регламентированные сроки хранения: По 54-ФЗ (РФ) и стандартам платежных систем (Visa, Mastercard, МИР) логи транзакций должны храниться определенное время и быть защищены от подделки.
- Чувствительные данные: Перед выгрузкой в поддержку обязательно маскируют/удаляют PAN (номера карт), PIN-блоки, CVV, токены (требование PCI DSS). Архив должен быть «чистым».
- Криптографическая защита: Архивы часто шифруют открытым ключом поддержки (PGP/GPG) или кладут в пароль-защищенный 7z/ZIP.
Чек-лист: Правильная выгрузка архива логов - Локализовать проблему: Определить временное окно и задействованные сервисы.
- Собрать полный набор: Системные логи + логи приложения терминала + логи драйверы периферии + journalctl + конфиги.
- Отфильтровать по времени: Использовать
zgrep, journalctl --since, чтобы не слать логи за год. - Очистить от ПДН/Платежных данных: Прогнать скрипт санитизации (mask PAN, track2, PIN).
- Упаковать:
7z a -mx=9 -p'StrongPassword' logs_case_12345.7z ./collected_logs/. - Передать: Через UI лаунчера (кнопка Log), через ЛК портала, по SFTP/S3 или зашифрованной почтой.
- Подтвердить получение: Убедиться, что поддержка скачала и открыла архив (хеш-суммы совпали).
- Локализовать проблему: Определить временное окно и задействованные сервисы.
- Собрать полный набор: Системные логи + логи приложения терминала + логи драйверы периферии + journalctl + конфиги.
- Отфильтровать по времени: Использовать
zgrep,journalctl --since, чтобы не слать логи за год. - Очистить от ПДН/Платежных данных: Прогнать скрипт санитизации (mask PAN, track2, PIN).
- Упаковать:
7z a -mx=9 -p'StrongPassword' logs_case_12345.7z ./collected_logs/. - Передать: Через UI лаунчера (кнопка Log), через ЛК портала, по SFTP/S3 или зашифрованной почтой.
- Подтвердить получение: Убедиться, что поддержка скачала и открыла архив (хеш-суммы совпали).
Выгрузка архива логов на терминале, это не просто копирование файлов, а стандартизированная процедура инцидент-менеджмента. Она включает в себя понимание архитектуры логирования ОС (systemd, syslog, Docker), умение работать с утилитами фильтрации (grep, zgrep, less, journalctl), знание каналов доставки (UI лаунчера, API облака, S3/SFTP, Email) и требований безопасности (PCI DSS, 54-ФЗ) к обработке чувствительных данных. Грамотная настройка автоматизированной выгрузки в объектное хранилище или SIEM значительно ускоряет Time-to-Resolve (время разрешения инцидента) и снимает нагрузку с первой линии поддержки.