Когда-о мне сказали:
«Логи — это не мусор. Это крик системы, которую ты не услышал вовремя.»
С тех пор я перестал игнорировать /var/log.
А вы?
Потому что:
Вот мой топ-лист логов на любой Unix-системе (Linux, BSD, macOS в серверных ролях):
Общий системный лог (в зависимости от ОС и демона syslog/rsyslog/syslog-ng).
Сюда летит всё: загрузка, сетевые интерфейсы, драйверы, cron, cron, cron… (да, я повторил, потому что cron убивал больше систем, чем rm -rf /).
Что искать:
- error, fail, fatal, critical, warning — но не слепо по ключевым словам, а в контексте.
- Повторяющиеся сообщения — особенно от cron, systemd, kernel.
Аутентификация, SSH, sudo, входы/выходы.
Самое горячее место. Здесь начинаются взломы.
Что искать:
- Failed password, Invalid user, Connection closed, Too many authentication failures — особенно многократно.
- Попытки входа с несуществующих пользователей (Invalid user admin, root, oracle, postgres).
- Успешные входы в нерабочее время.
- Массовые попытки — признак брутфорса.
- Необычные IP-адреса (особенно из Китая, Бразилии, РФ — шутка, но не совсем).
Катастрофа: Accepted password for root — если у тебя разрешён SSH-доступ для root, ты уже проиграл.
Логи ядра. Здесь — железо, драйверы, OOM, сетевые ошибки, SELinux/AppArmor.
Что искать:
- Out of memory: Killed process — OOM killer убил процесс. Серьёзно.
- Hardware error, I/O error — диски, RAID, SSD на грани.
- Kernel panic, Oops, BUG — система уже умирала или вот-вот умрёт.
- SELinux is preventing — если включён, значит, что-то не работает из-за политик.
Буфер ядра. Часто дублируется в kern.log, но лучше смотреть напрямую.
Команда:
dmesg | grep -i "error\|fail\|warn\|oom"
Каждый сервис пишет в свой лог. Надо знать, где.
Примеры:
- Nginx: /var/log/nginx/error.log — ищи 502, 504, connect() failed, Connection refused.
- MySQL/MariaDB: /var/log/mysql/error.log — Can't connect to local MySQL server, InnoDB: Database was not shut down normally.
- Postfix: /var/log/mail.log — status=deferred, connect to [x] failed, relay access denied.
Катастрофа:
- Connection refused при старте сервиса — значит, не поднялся.
- disk full в логе БД — скоро всё упадёт.
Следующие вещи — красные флажки. Если увидел — беги:
Сообщение | Почему страшно |
---|---|
Out of memory: Kill process | Система не хватает RAM. Процесс убит. |
Filesystem read-only | Диск сломался или перешёл в read-only. |
Hardware error, I/O error | Железо умирает. Диск, RAID, контроллер. |
Authentication failure (много раз) | Брутфорс. Скоро будет Accepted. |
sudo: [user] : command not allowed | Кто-то пытается стать root. |
Segmentation fault (часто) | Баг в софте или признак компрометации. |
No space left on device | Диск полон. Логи, /tmp, /var — проверяй. |
Умный админ не сидит и не читает логи вручную. Он настраивает мониторинг.
#!/bin/bash
# check_critical_logs.sh
# Ищем опасные слова в ключевых логах
LOGS="/var/log/syslog /var/log/auth.log /var/log/kern.log"
KEYWORDS="error fail fatal critical segmentation\ fault oom-killer read-only I/O\ error"
for log in $LOGS; do
if [ -f "$log" ]; then
echo "=== Проверка: $log ==="
grep -iE "$KEYWORDS" "$log" | grep -v "systemd\[" | tail -20
fi
done
Запускай через cron раз в 10 минут и пушь в Telegram/email при совпадении.
Золотое правило:
Если сообщение повторяется — оно не предупреждение. Это проблема.
Логи — это твой главный инструмент диагностики.
Не жди, пока сервер упадёт.
Смотри логи регулярно, автоматизируй, реагируй.
Лучший админ — не тот, кто всё починит.
Лучший админ — тот, кто ничего не сломается, потому что всё видит заранее.
P.S.
Написал скрипт, который парсит логи и шлёт алерты?
Выкладывай в GitHub.
Я поставлю звёздочку.
А ты — получишь благодарность от другого админа, который тоже не хочет просыпаться в 3 ночи.
Подписывайся на блог. Будем копать глубже: от auditd до eBPF.
Внимание: Cтатьи здесь сгенерированы нейросетью, пока не правил ошибки, только запустил его да и не до этого. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
НО!
Каждый кейс я реально делал минимум один раз. Серьёзно.
Сервера стоят, клиенты довольны, дата-центры не горят.
Это не просто копипаста — это опыт, выстраданный в бою, просто пересказанный через ИИ.
Если у вас есть вопросы, или Нашли неточность? пишите в коментах —
вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии
Пока нет комментариев. Будьте первым!