🔍 Шпаргалка по логам BIND9

Полный справочник команд для анализа логов DNS-сервера

📍 Путь к логам: /mnt/ramdisk/bind-logs/
Основные файлы: named.log (общий), query.log (запросы), rpz.log (блокировки)
📚 1. Базовые команды просмотра
Команда Описание
tail -n 50 /mnt/ramdisk/bind-logs/named.log Показать последние 50 строк лога
tail -f /mnt/ramdisk/bind-logs/named.log Следить за логами в реальном времени (live-режим)
tail -n 100 -f /mnt/ramdisk/bind-logs/named.log Показать последние 100 строк и продолжить следить
head -n 50 /mnt/ramdisk/bind-logs/named.log Показать первые 50 строк лога
cat /mnt/ramdisk/bind-logs/named.log Вывести весь файл (для небольших логов)
less /mnt/ramdisk/bind-logs/named.log Постраничный просмотр с навигацией
Навигация: стрелки, PageUp/PageDown, / для поиска, q для выхода
2. Поиск ошибок и предупреждений
Команда Описание
grep -i "error" /mnt/ramdisk/bind-logs/named.log Найти все строки с ошибками (без учёта регистра)
grep -i -C 3 "error" /mnt/ramdisk/bind-logs/named.log Найти ошибки с контекстом (3 строки до и после)
grep -i -n "error" /mnt/ramdisk/bind-logs/named.log Найти ошибки с номерами строк
grep -i "warning\|warn" /mnt/ramdisk/bind-logs/named.log Найти все предупреждения
grep -i "critical\|failure\|fatal" /mnt/ramdisk/bind-logs/named.log Найти критические ошибки и фатальные сбои
grep -c -i "error" /mnt/ramdisk/bind-logs/named.log Подсчитать общее количество ошибок
🌐 3. Сетевые ошибки и проблемы подключения
Команда Описание
grep -i "network unreachable" /mnt/ramdisk/bind-logs/named.log Найти ошибки недоступности сети (IPv6)
grep -i "address not available" /mnt/ramdisk/bind-logs/named.log Найти ошибки недоступности адреса
grep -i "connection refused" /mnt/ramdisk/bind-logs/named.log Найти ошибки отказа в соединении
grep -i "timed out" /mnt/ramdisk/bind-logs/named.log Найти ошибки таймаута
grep "198.41.0.4" /mnt/ramdisk/bind-logs/named.log Найти обращения к конкретному IP (корневой сервер)
grep -i "ipv6\|AAAA" /mnt/ramdisk/bind-logs/named.log Найти все IPv6-запросы и ошибки
⏰ 4. Поиск по времени
Команда Описание
grep "17-Jul-2026" /mnt/ramdisk/bind-logs/named.log Найти записи за конкретную дату
grep "$(date +%d-%b-%Y)" /mnt/ramdisk/bind-logs/named.log Найти записи за сегодня (автоматически)
grep "$(date -d yesterday +%d-%b-%Y)" /mnt/ramdisk/bind-logs/named.log Найти записи за вчера
grep "14:" /mnt/ramdisk/bind-logs/named.log Найти записи с 14:00 до 14:59
awk '/10:/,/12:/' /mnt/ramdisk/bind-logs/named.log Найти записи с 10:00 до 12:00
journalctl -u bind9 --since "1 hour ago" Показать логи за последний час (через systemd)
5. Статистика и анализ
Команда Описание
grep "$(date +%d-%b-%Y)" query.log | wc -l Подсчитать количество запросов за сегодня
grep "query:" query.log | awk '{print $9}' | sort | uniq -c | sort -rn | head -10 Топ-10 самых запрашиваемых доменов
grep "query:" query.log | awk '{print $5}' | cut -d'#' -f1 | sort | uniq -c | sort -rn | head -10 Топ-10 клиентов (кто делает больше всего запросов)
grep "RPZ QNAME rewrite" rpz.log | awk '{print $8}' | sort | uniq -c | sort -rn | head -10 Топ-10 заблокированных доменов (RPZ)
grep "query:" query.log | awk '{print $10}' | sort | uniq -c | sort -rn Статистика по типам запросов (A, AAAA, MX, TXT)
grep rpz.log | wc -l Общее количество заблокированных запросов
🎯 6. Поиск конкретных данных
Команда Описание
grep "192.168.25.100" /mnt/ramdisk/bind-logs/query.log Найти все запросы от конкретного IP-адреса
grep "mynetname.net" /mnt/ramdisk/bind-logs/query.log Найти все запросы к конкретному домену
grep "sddm.xyz" /mnt/ramdisk/bind-logs/query.log Найти запросы к вашей локальной зоне
grep "kv56.loc" /mnt/ramdisk/bind-logs/query.log Найти запросы к зоне .loc
grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" named.log Найти все IPv4-адреса в логе
grep -E "[0-9a-fA-F]{4}:" named.log Найти все IPv6-адреса в логе
7. Работа с несколькими файлами
Команда Описание
grep -i "error" /mnt/ramdisk/bind-logs/*.log Искать ошибки во всех файлах логов
grep -i -H "error" /mnt/ramdisk/bind-logs/*.log Искать с указанием имени файла
grep -i "error" /mnt/ramdisk/bind-logs/named.log* Искать в текущем и архивных логах
zgrep -i "error" /mnt/ramdisk/bind-logs/*.gz Искать в сжатых архивных логах (gzip)
cat /mnt/ramdisk/bind-logs/*.log | grep "error" Объединить все логи и искать
8. Продвинутые техники (awk, sed, regex)
Команда Описание
grep "query:" query.log | awk '{print $5}' | cut -d'#' -f1 | sort -u Извлечь все уникальные IP-адреса клиентов
grep "query:" query.log | awk '{print $9}' | sort -u Извлечь все уникальные доменные имена
grep -i "error" named.log | sort | uniq -c | sort -rn Подсчитать уникальные ошибки и отсортировать
grep -i "error" named.log | sort -u Удалить дубликаты ошибок
awk '/15-Jul-2026/,/17-Jul-2026/' named.log Извлечь логи за период (с 15 по 17 июля)
sed -n '100,200p' named.log Показать строки с 100 по 200
🤖 9. Готовые скрипты и автоматизация
Команда Описание
/usr/local/bin/bind-daily-report.sh Запустить ежедневный отчёт (если создан)
tail -f named.log | grep --color=auto -i "error" Следить за логами с подсветкой ошибок
tail -f named.log | ccze -A Красивая цветная подсветка (требуется ccze)
du -sh /mnt/ramdisk/bind-logs/ Проверить размер всех логов
df -h /mnt/ramdisk Проверить свободное место на RAM-диске
⚡ 10. Быстрая диагностика (одной строкой)
Команда Описание
echo "=== Ошибки ===" && grep -i "error" named.log | tail -5 && echo "=== Сеть ===" && grep -i "network" named.log | tail -5 Быстрая проверка ошибок и сетевых проблем
systemctl is-active bind9 && echo "OK" || echo "FAILED" Проверить статус службы BIND
echo "Запросов: $(grep query.log | wc -l) | Ошибок: $(grep -c error named.log)" Быстрая статистика
💡 Советы:

📌 Сохраните эту страницу как справочник!
Можно распечатать (Ctrl+P) или сохранить как PDF