Мониторинг логов в реальном времени с inotifywait

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

inotifywaitлогированиеbash

ℹ️ Если вы администрируете серверы или приложения в Linux, то наверняка знакомы с задачей мониторинга логов. Вместо того чтобы постоянно использовать tail -f, можно автоматизировать реактивный мониторинг логов с помощью утилиты inotifywait, которая отслеживает изменения файлов в реальном времени.

⚡️Пример: вы хотите автоматически перехватывать новые ошибки в логе вашего веб-сервера и мгновенно уведомлять себя об этом.

🖥 1. Установите пакет inotify-tools:

sudo apt-get install inotify-tools

2. Создайте скрипт для отслеживания изменений:

#!/bin/bash

LOGFILE="/var/log/nginx/error.log"
OUTPUTFILE="/home/user/filtered_errors.log"
TRIGGER_KEYWORD="error"

# Запускаем inotifywait для отслеживания добавления новых строк
inotifywait -m -e modify "$LOGFILE" | while read path action file; do
  # Проверяем последние 10 строк на наличие ключевого слова
  tail -n 10 "$LOGFILE" | grep -i "$TRIGGER_KEYWORD" >> "$OUTPUTFILE" && \
  echo "Обнаружена ошибка, запись добавлена в $OUTPUTFILE"
done

ℹ️ Этот скрипт отслеживает изменения в файле логов, фильтрует новые строки с ключевым словом (например, "error") и сохраняет их в отдельный файл.

✳️ Его можно интегрировать с системами уведомлений (например, отправлять уведомления в Telegram или Slack), создавая более сложные системы мониторинга с минимальными ресурсами.

tags: #linux #логирование #мониторинг

🧭 @recura_tech

Скриншот терминала с примером Bash-скрипта для мониторинга логов: inotifywait, tail, grep и переменные LOGFILE/OUTPUTFILE.
Пример Bash-скрипта, который использует inotifywait для отслеживания изменений в error.log и фильтрации ошибок.

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