Инструменты логов и наблюдаемости

Просмотрщик логовдля JSON, logfmt, Kubernetes и Docker

Вставьте текст лога или откройте файл, нажмите «Форматировать» — фильтр по уровню, поиск и переключение отображения меток времени сразу применяются к уже отформатированному результату.

Просмотрщик логов

Пример:
Предустановка форматаМетка времени
Уровень

Текст лога

Всё работает локально в браузере. Вставленное или открытое содержимое никуда не отправляется.

Отформатированные строки

Отформатируйте лог, чтобы увидеть строки здесь.

Вставьте лог или загрузите пример, затем нажмите «Форматировать».

Один grep находит подходящие строки, но перестаёт справляться, как только тикет поддержки смешивает структурированные события JSON, одну строку logfmt от какого-то middleware и stdout, скопированный из контейнера Kubernetes. Разбираться на глаз, какие строки — ошибки, что на самом деле означает искажённая Unix-метка времени и какие запросы относятся к одному и тому же ID пользователя, медленно и легко ошибиться.

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

Зачем нужен этот просмотрщик логов

Сделан для вставки с несколькими смешанными форматами, а не для одного за раз.

Одна вставка — пять форматов распознаются построчно

События JSON, пары logfmt, stdout контейнера Kubernetes в формате CRI, одна строка json-file от Docker и обычный текст могут находиться в одной вставке одновременно — «Автоопределение» оценивает каждую строку отдельно, а не заставляет весь блок подходить под один формат. Строка, не подошедшая ни под один известный формат, всё равно отображается как обычный текст, а не исчезает.

Вставленный блок со смешанными строками логов JSON, logfmt, Kubernetes и Docker, у каждой строки указан определённый формат

Фильтры, поиск и отображение меток времени работают мгновенно

Чтобы отформатировать новую вставку, нужен осознанный клик по «Форматировать» (или Ctrl/Cmd+Enter) — но как только таблица появилась, включение или отключение уровня, ввод поискового запроса и переключение отображения меток времени между исходным, локальным, UTC и относительным вариантами пересчитываются мгновенно на уже отформатированных строках, без повторного нажатия «Форматировать».

Таблица результатов, в которой переключение флажка уровня и ввод поискового запроса обновляют видимые строки без повторного нажатия кнопки Форматировать

От смешанной вставки к таблице, которой можно доверять

Три шага и то, что на самом деле происходит за каждым из них.

01

Вставьте текст, откройте файл или загрузите смешанный пример

Текст лога можно вставить напрямую, либо нажать «Открыть файл» и локально прочитать файл .log, .txt или .json через файловый API браузера — этот файл никуда не загружается. Предустановка формата по умолчанию — «Автоопределение», поэтому в большинстве случаев формат не нужно выбирать вручную; но если заранее известно, что всё в logfmt, принудительный выбор этой предустановки полностью пропускает построчное определение.

  • Ctrl/Cmd+Enter запускает форматирование без использования мыши
02

Нажмите «Форматировать» и прочитайте таблицу результатов

Форматирование не запускается автоматически во время ввода — заново определять форму каждой строки при каждом нажатии клавиши было бы напрасной работой над ещё редактируемой вставкой. Один клик по «Форматировать» (или сочетание клавиш) — и каждая непустая строка становится строкой таблицы. Кнопка «Поля» у строки показывает, что именно было извлечено, включая исходные поля объекта JSON или пары logfmt.

  • Строка, не подошедшая ни под один известный формат, всё равно получает строку с форматом «text» — она никогда не отбрасывается молча и не считается ошибкой
03

Фильтруйте, ищите и экспортируйте без повторного форматирования

Флажки уровней изначально все включены, поэтому ничего не скрыто, пока вы сами что-то не отключите — а строка, для которой уровень не удалось уверенно определить, всегда остаётся видимой независимо от состояния флажков, потому что скрывать неклассифицируемое содержимое было бы произвольным предположением, а не настоящим фильтром. Поиск можно переключить на регулярное выражение, а столбец метки времени — между исходным значением, локальным временем, UTC и относительным вариантом, не затрагивая вставленный текст. Копирование или скачивание экспортирует именно текущие отфильтрованные строки как обычный текст или как структурированный JSON с разобранным значением epoch.

  • Переключение фильтра уровня, поиска или отображения меток времени никогда не делает таблицу тусклой — это происходит только при изменении ввода или предустановки формата, потому что только они действительно требуют повторного форматирования
Перейти к инструменту

Что эта таблица даёт сверх исходного текста

Определение формата, фильтрация и экспорт для вставки, под которую нет готового парсера.

Пять форматов определяются по строкам, а не по всей вставке

JSON, logfmt, Kubernetes CRI, Docker json-file и обычный текст определяются независимо для каждой строки, поэтому смешанная вставка из нескольких источников всё равно даёт одну согласованную таблицу без предварительного ручного разделения.

Фильтр по уровню и поиск по ключевому слову или регулярному выражению

Таблицу можно сузить одновременно по важности и по поисковому запросу, с возможностью переключиться на регулярное выражение — всё пересчитывается мгновенно на уже отформатированных строках, без повторного запуска определения формата.

Четыре варианта отображения меток времени, всегда без изменения исходных данных

Столбец метки времени можно переключать между вставленным исходным текстом, локальным временем, UTC или относительным выражением вроде «3 минуты назад» — меняется только то, как отображается этот столбец, исходный текст в поле ввода остаётся нетронутым.

Панель полей для каждой строки и два формата экспорта

Разворачивая любую строку, можно увидеть все поля, извлечённые детектором, — ключи объекта JSON, пару logfmt или stream и tag из Kubernetes, — и экспортировать текущие отфильтрованные строки как обычный текст или как структурированный JSON с разобранной меткой времени epoch.

Чего этот инструмент намеренно не делает

Реальные ограничения, а не маркетинговый список.

Kubernetes и Docker — это только предустановки формата, а не реальное подключение
Выбор предустановки Kubernetes или Docker лишь сообщает детектору, какую форму строки ожидать (stdout в формате CRI или строку json-file); он никогда не подключается к настоящему API-серверу Kubernetes или демону Docker, чтобы получить логи в реальном времени, и инструмент вообще не отправляет сетевых запросов.
Строка без определённого уровня никогда не скрывается фильтром по уровню
Если детектор не смог уверенно извлечь уровень из строки, эта строка всегда остаётся видимой независимо от состояния флажков уровней — отфильтровывать неклассифицируемое содержимое было бы произвольным предположением, а не настоящим фильтром.
Отображение меток времени никогда не переписывает ваш ввод
Переключение между исходным значением, локальным временем, UTC и относительным вариантом меняет только то, как столбец «Метка времени» отображает обнаруженное значение; текст в поле ввода не затрагивается. Для пакетного преобразования меток времени отдельно от лога используйте специальный конвертер Unix-меток времени на сайте.
Одна вставка ограничена примерно 300 000 символов и 20 000 строк, файл — 2 МБ
Эти ограничения делают форматирование быстрым и предсказуемым во вкладке браузера. Превышение любого из них отклоняет весь процесс с понятной ошибкой, вместо того чтобы молча обрезать лог, поэтому всегда точно известно, что именно было отформатировано.

Частые вопросы про просмотрщик логов

Ответы на вопросы, которые возникают перед тем, как вставлять логи в онлайн-инструмент.

Есть ли бесплатный просмотрщик логов JSON, работающий онлайн?

Да. Вставьте или откройте лог, нажмите «Форматировать» — и таблица появится сразу в этом просмотрщике логов, без регистрации, установки или загрузки файлов. Всё выполняется как JavaScript в уже открытой вкладке браузера.

Безопасно ли вставлять файлы логов в онлайн-инструмент?

Вставленное или открытое содержимое никуда не отправляется. Форматирование, фильтрация, поиск и экспорт происходят полностью локально в браузере; нет никакой загрузки, хранения или логирования текста на сервере — это важно, потому что реальные логи часто содержат ID пользователей, IP-адреса и другие чувствительные данные.

В чём разница между logfmt и форматом логов JSON?

logfmt — это плоский формат пар ключ=значение в одной строке (level=info msg="done" duration=12ms), созданный так, чтобы быть одновременно читаемым для человека и удобным для grep. Логи в JSON содержат один JSON-объект на строку — более структурированы и легче разбираются программой, но их сложнее охватить взглядом. Просмотрщик логов автоматически определяет и извлекает поля из обоих форматов, так что выбирать парсер заранее не нужно.

Как онлайн преобразовать метку времени лога в читаемую дату?

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

Подключается ли этот инструмент к моему кластеру Kubernetes?

Нет. «Лог контейнера Kubernetes» — это лишь предустановка формата, которая сообщает просмотрщику логов, какую форму строки ожидать в уже скопированном тексте, — это не реальное подключение, не требует учётных данных, и инструмент не отправляет никаких сетевых запросов. Для live-наблюдения за работающим кластером нужен другой, действительно подключённый инструмент.

Как онлайн отфильтровать логи по ключевому слову?

Введите слово в поле поиска — и таблица мгновенно сузится до строк, которые его содержат, без повторного нажатия «Форматировать». Переключатель «Регулярное выражение» рядом включает поиск по регулярному выражению вместо простой подстроки, и его можно сочетать с флажками уровней, чтобы сужать сразу по двум критериям.

Нашли реальную строку лога, с которой инструмент справляется неправильно?

Использовать просмотрщик логов прямо сейчас

Вставьте смешанный блок логов JSON, logfmt, Kubernetes или Docker и за секунды получите таблицу, которую можно фильтровать и экспортировать — без загрузки файлов и регистрации.

Добавьте этот бесплатный просмотрщик логов в закладки на случай, когда очередной тикет поддержки или дамп терминала выдаст стену нечитаемых смешанных логов.

Всё форматирование выполняется локально в браузере.