🔍 Шпаргалка по логам 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+C для остановки команд с tail -f
- В
less нажмите / для поиска, n для следующего совпадения
- Добавьте полезные команды в
~/.bashrc как alias для быстрого доступа
- Регулярно проверяйте размер логов:
du -sh /mnt/ramdisk/bind-logs/
📌 Сохраните эту страницу как справочник!
Можно распечатать (Ctrl+P) или сохранить как PDF