Добавить в корзинуПозвонить
Найти в Дзене

LazyJournal: один экран для логов Linux, Docker и Kubernetes

У каждого, кто хоть раз пытался понять, почему «что-то опять не работает», рано или поздно появляется знакомая картина: одно окно с journalctl, второе с логами Docker, третье с /var/log, где-то рядом терминал с SSH, а в голове тихо крутится вопрос: «И где именно оно упало?»
Я люблю простые консольные инструменты, но с логами всё часто превращается в охоту по разным углам системы. Ошибка может
Оглавление

У каждого, кто хоть раз пытался понять, почему «что-то опять не работает», рано или поздно появляется знакомая картина: одно окно с journalctl, второе с логами Docker, третье с /var/log, где-то рядом терминал с SSH, а в голове тихо крутится вопрос: «И где именно оно упало?»

Я люблю простые консольные инструменты, но с логами всё часто превращается в охоту по разным углам системы. Ошибка может быть в службе systemd, в контейнере, в старом архивном файле, в Kubernetes-поде или вообще на удалённой машине. И вроде бы все команды известны, но переключаться между ними, вспоминать флаги и руками фильтровать длинные простыни текста - удовольствие на любителя.

LazyJournal как раз закрывает эту боль. Это терминальный интерфейс для просмотра логов из разных источников в одном месте. Он написан на Go и внешне идейно напоминает LazyGit и LazyDocker: слева списки, справа содержимое, внизу фильтр, всё управляется с клавиатуры, без тяжёлого веб-комбайна и отдельной базы данных.

Зачем он нужен

Главная идея LazyJournal простая: не заставлять человека каждый раз собирать картину вручную. Открыл программу - и видишь доступные журналы systemd, системные загрузки, файлы из /var/log, логи контейнеров Docker и Podman, стеки Docker Compose, Kubernetes-поды. Для тех, кто держит домашний сервер, мини-ПК, NAS, VPS или рабочую Linux-машину, это может заметно сэкономить нервы.

Представьте обычную ситуацию. На сервере крутится несколько контейнеров: база, веб-приложение, обратный прокси. Сайт перестал открываться. Можно по очереди идти в docker logs, потом в Nginx, потом в journalctl, потом проверять старые файлы. А можно открыть LazyJournal и быстро переключаться между источниками, не теряя контекст. Это не магия и не «автоматический ремонт», но хороший фонарик в тёмной кладовке.

Особенно приятно, что инструмент не ограничивается одним миром. Он умеет читать не только journald, но и auditd, файловые логи Apache, Nginx, syslog, messages, архивы после ротации в форматах gz, xz и bz2, pcap и даже Apple System Logs. На Windows заявлена работа с Windows Event Logs через PowerShell и wevtutil, а также поиск прикладных логов в типичных системных папках.

Фильтры - главная польза

Логи редко бывают маленькими. В них много шума: успешные подключения, отладочная информация, повторяющиеся строки, временные метки, технические подробности. Поэтому ценность LazyJournal не только в том, что он показывает разные журналы, а в том, как он позволяет их просеивать.

Есть обычный точный поиск, нестрогий fuzzy-поиск в духе fzf, регулярные выражения как в grep и фильтрация по дате. Последнее важно для больших журналов: если проблема началась после обновления в 18:30, нет смысла тащить на экран всё, что происходило с утра. Можно сузить период и уже внутри него искать error, fail, crash, код ответа или имя сервиса.

Подсветка тоже не декоративная. LazyJournal раскрашивает ошибки, предупреждения, успешные события, числа, IP-адреса, пути, HTTP-методы и статусы. Когда смотришь длинный лог глазами, такие мелочи помогают быстрее ухватиться за нужную строку. А если лог огромный и подсветка мешает скорости, её можно отключить горячей клавишей.

Установка без танцев

У проекта есть готовые бинарные файлы в релизах, а для Linux, macOS, BSD и Windows предусмотрены быстрые варианты установки. На Ubuntu и Debian можно поставить через PPA или deb-пакет, на macOS и Linux - через Homebrew, в Arch - через AUR, через conda/mamba/pixi тоже есть вариант. Для тех, кто не хочет ставить программу прямо в систему, доступен Docker-режим.

Отдельный плюс - web mode в контейнере через ttyd. Это значит, что интерфейс можно открыть в браузере, если программа запущена в Docker-контейнере. Для домашней лаборатории или сервера без постоянного SSH-сеанса это может быть удобно. Но тут лучше не забывать про пароль и доступ только из доверенной сети: логи часто содержат чувствительные данные.

Запуск базовый: поставили lazyjournal, открыли терминал и ввели команду с тем же названием. Для справки есть lazyjournal -h. В командной строке инструмент тоже работает: можно передать ему вывод через pipe, включить подсветку, fuzzy-фильтр или регулярное выражение. То есть это не только полноценный экранный интерфейс, но и полезная «прокладка» для быстрых разборов.

Где есть ограничения

Я бы не называл LazyJournal инструментом для всех подряд. Если человек вообще не работает с Linux, контейнерами и серверными приложениями, пользы будет мало. Это не красивый мониторинг с графиками, не система алертов и не замена Grafana, Loki или ELK. Он не строит инфраструктуру наблюдаемости, а помогает быстро смотреть уже существующие логи.

Ещё один момент - права доступа. Чтобы читать системные журналы и контейнерные файлы, пользователю могут понадобиться повышенные привилегии. Например, без доступа к /var/lib/docker/containers часть старых Docker-логов будет недоступна из файловой системы. Для Kubernetes тоже нужно заранее настроить подключение к кластеру через kubeconfig. То есть «скачал и сразу увидел всё на свете» получится не всегда.

И, конечно, терминальный интерфейс надо любить. Если вам ближе мышка, красивые панели и графики, возможно, удобнее будет Dozzle для Docker-логов или другой веб-инструмент. Но если вы уже живёте в терминале, LazyJournal ощущается естественно: меньше лишнего, больше дела.

Кому стоит попробовать

Мне кажется, LazyJournal особенно хорошо зайдёт тем, у кого есть домашний сервер, VPS, Docker Compose-проекты, k3s-кластер, рабочие Linux-службы или просто привычка разбирать проблемы через терминал. Это инструмент не про «вау-эффект», а про спокойную экономию времени: открыть, найти источник, отфильтровать, увидеть ошибку, принять решение.

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

Если у вас есть сервер или контейнеры, я бы добавил LazyJournal в список инструментов «поставить и держать под рукой». Не обязательно пользоваться каждый день. Но в тот самый вечер, когда сервис внезапно падает, такой фонарик может оказаться очень кстати.

Источник: LazyJournal

Похожие статьи

Если вам интересны такие инструменты для диагностики и администрирования, посмотрите также: