Перейти к содержимому
В приложение

Принцип работы

Что происходит между работающей нагрузкой в Kubernetes и данными, которые вы видите в интерфейсе.

На каждом участвующем узле агент подключает зонды eBPF и наблюдает только те классы событий, которые вы включили. Метаданные Kubernetes и сведения из cgroup подсказывают ему, какому контейнеру и какой нагрузке Deployment принадлежит наблюдение. Нагрузка попадает в область наблюдения, только если совпадают заданные namespace, kind, name и labels, — всё остальное на узле остаётся за её пределами.

Увиденное агент отправляет на сервер ограниченными по размеру пакетами через gRPC, представляясь токеном приложения. Сервер проверяет токен и сам определяет, к какой организации и какому приложению относятся данные, сохраняет их в PostgreSQL и отдаёт через API. Веб-интерфейс показывает ровно то, что вернул сервер, и ничего сверх этого.

Архитектурная диаграмма: поток данных среды выполнения проходит от агента Okoscope на узле через сервер и PostgreSQL к веб-интерфейсу.

Один агент на узле может обслуживать несколько приложений сразу, и на каждый токен создаётся свой ограниченный поток. Кластер определяется по UID пространства имён kube-system. Привязка идёт по цепочке владения Pod → ReplicaSet → Deployment, поэтому Pod с другим владельцем не считается поддерживаемой нагрузкой и в этом качестве не появится.

Для привязки к релизу приоритет у дайджестов образов из Kubernetes; заданная вручную строка release — только запасной вариант. При постепенном обновлении несколько образов какое-то время сосуществуют, поэтому, прежде чем делать выводы, проверяйте, к какому релизу относятся данные и в каком интервале они наблюдались.

Группа хранит идентичность поведения, число наблюдений и время первого и последнего из них. Откройте её, чтобы посмотреть сохранившиеся примеры и контекст нагрузки вокруг них. Строка инвентаризации — это то, что удалось увидеть, а не результат аудита: она не перечисляет установленное ПО и уж тем более не перечисляет все файлы на диске.

Что именно вы увидите, зависит от агрегации, настроенных фильтров, ограничений скорости и сроков хранения. Подробности могут удалиться, а исторический счётчик остаться положительным, поэтому группа с числом, но без примеров — это нормально. А пустой список означает лишь, что для выбранной области ничего не сохранилось, а не что ничего не происходило.