Логи контейнеров онлайн
Логи Docker онлайн в Наблюдателе открываются прямо в браузере: не нужно заходить на сервер по SSH, вспоминать имя контейнера и запускать docker logs -f или kubectl logs -f. Откройте вкладку «Консоль» стека, выберите контейнер — и строки пойдут вживую, с подсветкой уровней и поиском.
Живые логи читает агент стека в тот момент, когда вы их открыли. Полные логи Наблюдатель не хранит: в облако постоянно уходят только распознанные ошибки и исключения. Ниже — где смотреть логи, как искать по ним и что делать, если поток не подключается.
Где смотреть логи Docker онлайн
Живые логи есть в трёх местах:
| Где | Что показывает при открытии | Сколько строк держит на экране |
|---|---|---|
| Вкладка «Консоль» стека | последние 300 строк выбранного контейнера, дальше — новые | до 2000 |
| Вкладка «Консоль» на странице контейнера | последние 200 строк, дальше — новые | до 1000 |
| Страница инцидента контейнера | последние 200 строк | до 400 |
Вкладка «Консоль» стека удобна, когда нужно быстро переключаться между контейнерами: слева список с поиском «Поиск контейнера», справа — «Консоль: <имя контейнера>». Статус потока виден в углу: «live» — строки идут, «подключение...» — агент открывает поток, «недоступно» — подключиться не удалось.
Консоль работает и для Docker Compose, и для подов Kubernetes. Агент в Docker Compose показывает логи только контейнеров своего compose-проекта, в Kubernetes — подов своего namespace.
Как искать в логах
Над лентой — панель инструментов:
- Фильтр по уровню: «Все», «Error», «Warn», «Info», «Debug», «Trace», «Other». Рядом с каждым — сколько таких строк сейчас на экране. Уровень распознаётся в обычных текстовых логах и в JSON-логах.
- Поиск «Поиск в логах»: совпадения подсвечиваются, показан счётчик вида
3/12. Enter — к следующему совпадению, Shift+Enter — к предыдущему, Esc — очистить поиск. Ctrl+F (на Mac — Cmd+F) ставит курсор в поиск. Пока идёт поиск, лента не прыгает к новым строкам. - «Очистить» убирает накопленные строки с экрана. Поток при этом не останавливается — новые строки продолжат приходить.
Строки со стеком исключения выделяются фоном, время из строки лога выносится в отдельную колонку.
Поиск работает только по строкам, которые сейчас на экране. Найти, что было в логе час назад, консоль не поможет: старые строки она не загружает. Для этого см. ниже, что хранится.
Живые метрики контейнера
На странице контейнера во вкладке «Метрики» период «Сейчас» включает живой поток от агента: CPU, память, сеть, диск и число процессов обновляются раз в секунду. Кнопка «Стоп» замораживает значения на экране, «Запустить» — подключается снова. Индикатор в шапке показывает «Live-метрики активны» или «Live на паузе».
Для подов Kubernetes живого потока нагрузки нет: кластер отдаёт потребление срезами раз в ~15 секунд, графики строятся по ним. История метрик контейнера за прошлые периоды хранится 30 дней — подробнее в статье Контейнеры и поды.
Живые метрики есть и у серверов — на странице сервера, см. мониторинг сервера.
Хранятся ли логи
Нет. Агент постоянно читает stdout и stderr контейнеров, но в Наблюдатель отправляет только распознанные ошибки и исключения — они собираются во вкладке «Ошибки» стека со стеком вызовов и счётчиком повторов. Как это работает и как писать логи, чтобы ошибки разбирались хорошо, — в статье Мониторинг ошибок.
Остальные строки видны только вживую, пока открыта консоль. Закрыли вкладку — поток остановился, на серверах Наблюдателя ничего не осталось.
Если нужно хранить и искать свои логи — журнал запросов, входы пользователей, ответы партнёров, платежи, — отправляйте их как события и логи приложения. Такие записи хранятся 30 дней, по ним работают поиск, фильтры, подсчёт и уведомления об аномалиях. Обычный stdout для этого не подходит.
Маскирование персональных данных
Персональные данные в живых логах скрывает сам агент — ещё на вашем сервере, до отправки в браузер. Нужен агент 0.9.0 или новее.
| Что | Пример | Что видно в консоли |
|---|---|---|
Пароли, токены, ключи API, Authorization, cookie |
password=…, Bearer eyJ… |
*** |
ivan.petrov@mail.ru |
i***@m***.ru |
|
| Телефон, ИНН, СНИЛС | +7 912 345-67-89 |
*********89 |
| Номер карты | 4111 1111 1111 1111 |
411111******1111 |
| ФИО, паспорт — по имени поля | first_name="Иван" |
И*** |
| IP клиента — по имени поля | client_ip=95.31.18.119 |
95.31.18.0/24 |
Поэтому найти строку лога по email или телефону нельзя — в консоли их нет. IP-адреса сервисов в тексте ошибок (dial tcp 10.0.0.8:5432) не маскируются: без них сбой не разобрать. Те же правила действуют для ошибок, трасс и событий — подробнее в статье Как работает агент.
Почему логи не подключаются
Если консоль пишет «недоступно» или «Нет live-логов. Контейнер может быть остановлен или недоступен агенту»:
- Контейнер остановлен или удалён. У остановленного контейнера новых строк нет. Статус контейнера видно в карточке.
- Агент не на связи. Живые логи идут через агента стека. Проверьте, что он запущен и в шапке стека кнопка «Агент» не красная. Как проверить подключение — в статьях про Docker Compose и Kubernetes.
- Устаревший агент. Обновите его по инструкции Обновление агента.
- Контейнер из другого compose-проекта. Агент видит только свой проект; для другого нужен свой стек.
Пока живой поток недоступен, на странице контейнера остаются последние сохранённые метрики.
Логи через ИИ-ассистента
ИИ-ассистент тоже умеет читать последние строки контейнера через подключённого агента и искать в них нужное — например, request id или trace id — среди последних 5000 строк. Достаточно спросить: «покажи последние ошибки в логах api в prod» или «найди в логах worker запрос с id 7f3a…».
Что дальше
Первый сервер или стек подключается за пару минут. Бесплатно в раннем доступе.
Нашли неточность или не хватает ответа? Напишите на hello@nablserver.ru