January 4
Самописный скрипт для мониторинга системных логов
Специально для телеграм-канала Мониторим ИТ
Сила в простоте! А иначе как оправдать использование этого скрипта?
Скрипт alert_monitor.sh состоит из двух функций: первая для анализа логов, а вторая для отправки найденного по электронной почте.
#!/bin/bash
# Укажем переменные
ADMIN_EMAIL="admin@example.com" # Укажите ваш email
TEMP_LOG="/tmp/critical_log_monitor.txt" # Временный файл для сохранения результата
DATE=$(date +"%Y-%m-%d %H:%M:%S") # Текущее время
# Функция для поиска ошибок и критических сообщений в логах
function check_logs() {
echo "Critical Log Monitoring Report - $DATE" > "$TEMP_LOG"
echo "----------------------------------------" >> "$TEMP_LOG"
# Проверка journalctl на критические сообщения
echo "[journalctl - Critical Errors]" >> "$TEMP_LOG"
journalctl -p 3 -n 50 --no-pager >> "$TEMP_LOG" # Записи с приоритетом 3 (Error)
echo "" >> "$TEMP_LOG"
# Проверка неудачных попыток входа или подозрительной активности в secure.log
echo "[/var/log/secure - Failed Logins & Suspicious Activity]" >> "$TEMP_LOG"
grep -Ei 'failed|invalid|unauthorized|error' /var/log/secure | tail -n 50 >> "$TEMP_LOG"
echo "" >> "$TEMP_LOG"
# Проверка неудачных аутентификаций или повышения привилегий в auth.log
echo "[/var/log/auth.log - Auth Issues & Privilege Escalation]" >> "$TEMP_LOG"
grep -Ei 'failure|authentication|sudo:.*(error|failure)' /var/log/auth.log | tail -n 50 >> "$TEMP_LOG"
echo "" >> "$TEMP_LOG"
# Отображение критичных событий из syslog (можно заменить на другую директорию, если требуется)
echo "[/var/log/syslog - Critical Events]" >> "$TEMP_LOG"
grep -Ei 'kernel:.*error|panic|segfault|critical' /var/log/syslog | tail -n 50 >> "$TEMP_LOG"
echo "" >> "$TEMP_LOG"
}
# Функция для отправки алертов на электронную почту
function send_alert() {
if [[ -s $TEMP_LOG ]]; then # Проверка лог файла, что он не пустой
mail -s "⚠️ Critical Log Alert - $DATE" "$ADMIN_EMAIL" < "$TEMP_LOG"
echo "Alert email sent to $ADMIN_EMAIL."
else
echo "No critical events found. No email sent."
fi
}
# Выполнение проверки лога и отправки алерта
check_logs
send_alert
# Очистка временного файла
rm -f "$TEMP_LOG"$ sudo apt update && sudo apt install mailutils # Установка утилиты для отправки писем $ chmod +x alert_monitor.sh # Выдача прав скрипту на выполнение $ crontab -e # Редактирование конфигурации планировщика заданий */10 * * * * /path/to/alert_monitor.sh # строка конфигурации планировщика заданий, чтобы скрипт авыполнялся каждые 10 минут
Подписывайтесь на телеграм-канал Мониторим ИТ, там еще больше полезной информации!
January 4, 05:02
0 views
1 reaction
0 replies
0 reposts