Как ускорить работу с journald и логами

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

journaldjournalctlлогирование

ℹ️ Если вам часто приходится анализировать логи в системе с systemd, стандартные команды вроде journalctl -fu <service> могут быть неудобны из-за медленной навигации. Вот несколько полезных трюков, которые помогут вам быстрее работать с логами.

📂 1. Просмотр логов в реальном времени с цветами и улучшенной навигацией

Обычный journalctl не выделяет важные события цветами. Давайте добавим подсветку:

journalctl -fu <service> --no-pager | ccze -A

ccze – это утилита для раскрашивания логов, делает их более читаемыми. Установить можно так:

sudo apt install ccze  # Debian/Ubuntu  
sudo dnf install ccze  # RHEL/CentOS

👨‍💻 2. Фильтрация логов по уровню критичности

Хотите увидеть только ошибки и критические сообщения? Используйте фильтр:

journalctl -p 3 -u <service> --since "1 hour ago"

Уровни логирования:

  • 0 - Emergency
  • 1 - Alert
  • 2 - Critical
  • 3 - Error
  • 4 - Warning
  • 5 - Notice
  • 6 - Info
  • 7 - Debug

🖥 3. Поиск по ключевым словам без мусора

Если вам нужно найти конкретное событие в логах:

journalctl -u <service> | grep -i "ошибка|failed|timeout"

Но лучше использовать встроенный фильтр, который быстрее:

journalctl -u <service> | awk '/ошибка|failed|timeout/ {print}' <code></code>

Или:

journalctl -u <service> | rg "ошибка|failed|timeout"  # ripgrep — быстрее 
grep

👨‍💻 4. Вывод логов в JSON для анализа

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

journalctl -u <service> -o json-pretty

Можно передавать это в jq для фильтрации:

journalctl -u <service> -o json | jq '.MESSAGE'

⚡️ 5. Ускорение journalctl в системах с большим объёмом логов

Если journalctl работает медленно, попробуйте индексированный поиск:

journalctl --disk-usage  # Узнать, сколько места занимает  
journalctl --vacuum-time=2d  # Удалить старые логи старше 2 дней  
journalctl --vacuum-size=500M  # Ограничить размер логов

✳️ Эти трюки помогут вам быстро анализировать логи, находить ошибки и работать с журналами эффективнее.

tags: #полезно #логирование #linux

🧭 @recura_tech

Иллюстрация: разработчик за ноутбуком просматривает панель с системными логами, графиками и иконками мониторинга системы.
Демонстрация панели мониторинга и работы с системными логами.

Читайте так же