Terminal User Interface для работы с журналами логов системы, файловой системы и контейнеров Docker и Podman

Введение

Lazyjournal — это инструмент для быстрого просмотра и фильтрации логов с использованием интерфейса терминала. Написанный на языке Go с использованием библиотеки awesome-gocui (форк gocui), он вдохновлён такими инструментами, как lazydocker и lazygit.

Основной функционал

Работа с журналами

  • Просмотр логов системных и пользовательских юнитов через journalctl.
  • Список всех загрузок системы для анализа логов ядра.
  • Логи файловой системы из /var/log (например, Apache, Nginx), а также syslog, dmesg (ядро) и авторизации пользователей (wtmp и btmp), отсортированные по дате изменения.
  • Просмотр логов в домашней директории пользователей и root.
  • Чтение архивированных логов в формате .gz.

Контейнеры Docker и Podman

  • Логи контейнеров Docker, Podman и сервисов Swarm.

Фильтрация и поиск

  • Отображение текущего выбранного лога с загрузкой и отметкой времени.
  • Три режима фильтрации:
    • По умолчанию: чувствительный к регистру поиск.
    • Fuzzy: нечёткий, регистронезависимый поиск.
    • Regex: поиск с использованием регулярных выражений, регистронезависимый по умолчанию.

Планы разработки

  • Поддержка MacOS для работы с launchd.
  • Поддержка Windows для чтения логов событий через PowerShell.
  • Синтаксическое окрашивание вывода логов (аналогично tailspin).
  • Управление через мышь и прокрутка интерфейса.
  • Работа с удалёнными машинами через ssh.

Установка

Быстрая установка

Для установки или обновления выполните команду в терминале:

curl https://raw.githubusercontent.com/Lifailon/lazyjournal/main/install.sh | bash

Установка через Go

Для установки через Go (должен быть установлен Go интерпретатор):

sudo snap install go --classic
grep -F 'export PATH=$PATH:$HOME/go/bin' $HOME/.bashrc || echo 'export PATH=$PATH:$HOME/go/bin' >> $HOME/.bashrc && source $HOME/.bashrc

go install github.com/Lifailon/lazyjournal@latest

Запуск:

lazyjournal

Сборка из исходного кода

  1. Клонируйте репозиторий:bashКопировать кодgit clone https://github.com/Lifailon/lazyjournal cd lazyjournal
  2. Установите зависимости:bashКопировать кодgo mod tidy
  3. Запустите проект:bashКопировать кодgo run main.go

Для создания исполняемого файла для разных платформ:

bash build.sh

Горячие клавиши

КомбинацияОписание
TabПереключение между окнами.
Shift+TabВозврат к предыдущему окну.
Left/RightПереключение между списками логов.
EnterОткрыть журнал для просмотра.
Up/DownПрокрутка списка логов или вывода вверх/вниз.
Shift+Up/DownБыстрая прокрутка на 10 строк.
Alt+Up/DownИзменение количества строк в выводе (1000-50000).
Alt+Left/RightСмена режима фильтрации.
Ctrl+RОбновление текущего лога.
Ctrl+D/WОчистка поля фильтрации.
Ctrl+CВыход.

Альтернативы

  • lnav: лог-файл навигатор для терминала.
  • Dozzle: веб-приложение для мониторинга Docker-логов.

Источник

GitHub — Lazyjournal