Парсер логов и редактирование
Перетащите файл рабочего лога и получите фильтруемую таблицу: Apache/Nginx, JSON Lines и syslog распознаются автоматически, чувствительные значения скрываются, а на выходе — чистый CSV, JSON или текст. Файл никогда не покидает ваш браузер: парсинг происходит локально, и именно в этом весь смысл существования этой страницы.
- Прочитано строк
- Сохранено строк
- Ошибки / предупреждения
- Диапазон времени
| Время | Уровень | Источник | Сообщение |
|---|
Что эта страница делает с вашими логами
Файл лога полезен только тогда, когда он становится таблицей: время в одном столбце, уровень в другом, сообщение, читаемое без прокрутки сырого текста. Эта страница разбирает каждую строку в эти столбцы, считает уровни и позволяет отфильтровать строки, которые важны, — только ошибки или всё, где упоминается одно имя хоста, один путь, один пользователь. Таблица показывает первые 1 000 подходящих строк; счётчики охватывают всё прочитанное, поэтому вы всегда знаете, скрыл ли фильтр девять строк или девять тысяч.
Файлы читаются кусками по 1 МБ, а не загружаются одной строкой, поэтому рабочий лог на несколько мегабайт не вешает вкладку при загрузке. Первые 20 000 разобранных строк сохраняются для фильтрации и экспорта; дальше страница по-прежнему считает каждую строку и честно сообщает итоги. Если ваш файл больше, фильтруйте перед экспортом — или разрежьте файл и прогоните его дважды. Ничто в этом процессе не касается сети: File API читает байты, парсер работает на странице, а экспорт собирается из тех же локальных строк.
Редактирование — это сопоставление по шаблонам, а не гарантия
Редактирование скрывает значения, которые чаще всего утекают из расшаренного лога: адреса электронной почты, IP-адреса, токены Bearer, ID ключей доступа AWS и значения, записанные после меток api_key, secret, password или token. Оно включено по умолчанию и применяется к таблице и к каждому формату экспорта. Но это сопоставление по шаблонам, а шаблоны что-то пропускают — токен в необычном формате, секрет, разбитый по строкам, внутреннее имя хоста, по которому можно опознать клиента. Относитесь к экспорту как к более безопасному, а не как к безопасному: прочитайте его один раз, прежде чем куда-то отправлять, особенно за пределы вашей организации. Если для собственной отладки нужны исходные значения, отключите редактирование — переключатель прямо над таблицей.
Именно это различие и есть причина существования страницы. Вставка рабочего лога в окно чата или в онлайн-просмотрщик навсегда передаёт его содержимое третьей стороне; локальный парсинг не передаёт ничего никому. Удобство размещённого просмотрщика никогда не стоит содержимого лога, а вкладка браузера, которая никогда не делает запросов, — самый простой способ быть уверенным.
Частые вопросы
Мой файл лога покидает браузер?
Нет. Файл читается через File API и разбирается локально; ничего не загружается, и серверных вызовов нет вообще. В этом и смысл: рабочие логи содержат адреса, токены и пользовательские данные, которые не следует вставлять в окно чата или загружать в случайный просмотрщик.
Какие форматы логов распознаются?
Журналы доступа Apache/Nginx в формате combined, JSON Lines (один объект JSON на строку), строки syslog и универсальный запасной вариант, сканирующий любую строку на предмет ключевых слов уровня. Автоопределение пробует combined, затем JSON, затем syslog, затем универсальный вариант — или выберите формат явно, если автоопределение ошиблось.
Что редактирование скрывает на самом деле?
Адреса электронной почты, адреса IPv4 и IPv6, токены Bearer, ID ключей доступа AWS и значения после меток api_key/secret/password/token. Это сопоставление по шаблонам, а не гарантия: необычные форматы проскальзывают, поэтому проверяйте экспорт, прежде чем куда-то его отправлять. Редактирование включено по умолчанию и применяется и к таблице, и к экспорту.
Файл какого размера можно открыть?
Файлы читаются кусками по 1 МБ, чтобы лог на несколько мегабайт не вешал вкладку. Все строки считаются, первые 20 000 разобранных строк сохраняются для фильтрации и экспорта, а таблица показывает первые 1 000 подходящих строк. Для больших задач сначала фильтруйте, потом экспортируйте.
Почему у некоторых строк уровень «info», хотя они выглядят как ошибки?
В журналах доступа нет поля уровня, поэтому уровень выводится из HTTP-статуса: 5xx — ошибка, 4xx — предупреждение, всё остальное — информация. Строки JSON используют собственное поле уровня, когда оно есть. Если строка выглядит классифицированной неверно, истиной является код статуса или текст сообщения рядом с ней.