Аудит и журналы
Кто что сделал, экспорт аудита, журналы Plane и нод.
В системе есть два разных источника истины о происходящем, и их не стоит путать:
- Журнал аудита — кто из людей что сделал: завёл камеру, показал её пароль, выдал доступ, выгрузил фрагмент архива. Записи неизменяемы и хранятся в базе Plane.
- Журналы приложений — что делают процессы Plane и нод: подключения к камерам, ошибки, TLS, конфигурация. Это техническая диагностика, а не свидетельство действий пользователя.
Журнал аудита — /admin/access/audit#
Страница «Журнал аудита», подзаголовок: «Неизменяемый, только на добавление. Суперадмин видит все организации.» Раздел доступен суперадминистратору и админу организации; оператор его не видит.
Колонки#
| Колонка | Что показывает |
|---|---|
| «Время» | момент действия |
| «Субъект» | кто выполнил действие; для действий самой системы — «Система» |
| «Действие» | код действия, моноширинным шрифтом |
| «Объект» | над чем выполнено действие, с типом объекта |
| «Узел» | нода, если действие к ней относится |
| «Организация» | владелец объекта; для действий уровня платформы — «Инсталляция» (колонка скрывается на узких экранах) |
| «IP» | адрес, с которого пришёл запрос (скрывается на небольших экранах) |
Что попадает в аудит#
Действия записываются по закрытому списку кодов. Наиболее востребованные:
| Код | Что означает |
|---|---|
auth.login, auth.login_failed, auth.lockout |
вход, неудачный вход, блокировка после серии попыток |
camera.create, camera.update, camera.delete |
изменения состава камер |
camera.start, camera.stop |
включение и выключение камеры |
data.camera_password_view |
администратор посмотрел пароль камеры |
share.create, share.revoke |
выдан и отозван доступ к камере по ссылке |
export.dvr |
выгружен фрагмент архива — с точным диапазоном времени |
view.live, view.dvr, view.preview |
просмотр эфира, архива и превью |
ptz.move, ptz.preset |
управление поворотом камеры |
data.blob_download, data.csv_export |
скачано вложение события, выгружена таблица в CSV |
event.delete, dvr.delete |
очистка истории событий и очистка архива |
user.*, grant.*, tag.*, org.* |
учётные записи, права, теги, организации |
node.*, storage.* |
ноды и хранилища, включая ротацию ключей ноды |
agent.*, agent_server.*, agent_lease.* |
туннельные агенты, релеи и аренды эндпоинтов |
template.*, token.*, mosaic.*, report.* |
шаблоны событий, модульные токены, мозаики, отчёты |
settings.update |
изменение настроек установки |
Показ пароля камеры кнопкой «Показать» в форме камеры и выдача токена доступа к камере — отдельные аудируемые события. Об этом прямо предупреждает и сама форма: «Показ пароля — аудируемое действие (D38).» Значение пароля в журнал, разумеется, не попадает — фиксируется факт, автор, время, адрес и объект.
Фильтры и поиск#
Фильтры: «Дата и время» (диапазон), «Субъект», «Действие», «Камера», «Узел», «Тип объекта» (camera, node, user, org, mosaic, tag, template, token, camera_share) и «Организация».
Поиск заглядывает в том числе в JSON-параметры записи, поэтому без ограничения периода он был бы слишком дорогим. Сначала задайте «Дата и время» в пределах 31 дня, затем вводите текст. Если результатов нет, консоль подсказывает: «Расширьте диапазон времени или сбросьте один из точных фильтров.»
Карточка записи и экспорт#
Действие «Детали» открывает полную запись: «Параметры» (что именно менялось), «User-Agent» и «Идентификаторы». Именно здесь видно, например, точный диапазон времени выгруженного фрагмента архива.
Кнопка «Экспорт CSV» в шапке страницы выгружает журнал с учётом текущих фильтров. Обычный табличный экспорт на этой странице отключён — используйте именно эту кнопку.
Для типового запроса «кто смотрел камеру за месяц» задайте период, фильтр «Камера» и действие
view.live (или view.dvr), затем «Экспорт CSV». Для проверки выдачи доступов наружу —
share.create за квартал без фильтра по камере.
Программный доступ к тому же журналу (в том числе выгрузка по расписанию) — API: мониторинг и служебное.
Журналы Plane#
Из консоли#
Суперадминистратору доступен раздел Мониторинг → «Логи Plane» (/admin/monitoring/logs):
«Последние логи plane» с фильтром «Уровень логов» (Все / Инфо / Отладка / Предупреждение /
Ошибка), поиском и колонками «Время», «Источник», «Сообщение». Данные обновляются каждые 3 секунды.
Два момента, о которых нужно знать:
- Маскирование. «Поля, похожие на учётные данные, скрываются до попадания в ограниченный кольцевой буфер.» Пароли и токены в журнал не попадают.
- Фильтр не равен политике записи. Блок «Политика записи» предупреждает: «Кнопки уровней ниже лишь фильтруют уже сохранённые записи.» Чтобы записывалось больше, поднимите уровень в настройках платформы — кнопка «Настроить Plane» ведёт туда же.
На сервере#
Буфер в консоли ограничен по объёму; полная история живёт в системном журнале:
# последние 200 строк sudo journalctl -u hastreamer-cctv-plane -n 200 --no-pager # следить в реальном времени sudo journalctl -u hastreamer-cctv-plane -f # за период, только ошибки sudo journalctl -u hastreamer-cctv-plane --since '2026-08-01' --until '2026-08-02' -p err --no-pager
Журналы ноды#
Из консоли#
Откройте Узлы → карточка узла → вкладка «Логи». Журнал приходит с самой ноды, поэтому доступен только пока нода на связи — Ноды и флот.
На сервере ноды#
sudo journalctl -u hastreamer-cctv-node -n 200 --no-pager sudo journalctl -u hastreamer-cctv-node -f
Что искать в первую очередь:
# спаривание с Plane и применённая конфигурация sudo journalctl -u hastreamer-cctv-node --no-pager | grep -i 'config applied\|authio' # лицензия sudo journalctl -u hastreamer-cctv-node --no-pager | grep -i licens # выпуск и подмена сертификатов sudo journalctl -u hastreamer-cctv-node --no-pager | grep -i acme
Журналы туннельных компонентов читаются так же:
sudo journalctl -u hastreamer-cctv-agent -f # агент в сети объекта sudo journalctl -u hastreamer-cctv-relay -f # публичный релей
Что смотреть, когда что-то произошло#
| Вопрос | Где смотреть |
|---|---|
| Кто удалил камеру или очистил архив | «Журнал аудита», действия camera.delete, dvr.delete, event.delete |
| Кто выгрузил запись и за какой период | «Журнал аудита», export.dvr → «Детали» → «Параметры» |
| Кто видел пароль камеры | «Журнал аудита», data.camera_password_view |
| Кому выдали доступ по ссылке | «Журнал аудита», share.create и share.revoke |
| Почему нода отвалилась | вкладка «Логи» узла, затем journalctl -u hastreamer-cctv-node на сервере |
| Почему не работает вход | «Журнал аудита» (auth.login_failed, auth.lockout) и логи Plane |
| Почему камера не подключается | «Телеметрия» камеры и логи ноды — Настройка камер |
Откройте /admin/access/audit с диапазоном «за сегодня» — в списке должны быть как минимум ваши
собственные входы (auth.login). Если журнал пуст при заведомо выполненных действиях, проверьте
выбранную организацию в фильтре и то, что диапазон времени задан в нужном часовом поясе.
Дальше по теме: Мониторинг и метрики, Диагностика неисправностей, Резервное копирование — в бэкап базы Plane попадает и журнал аудита.