开启dns日志功能
默认named的日志功能是关闭的,可以使用rndc status查看,如下所示:
rndc status
使用rndc querylog开启named的日志功能,如下所示:
rndc querylog
rndc status
接下来在/var/named/chroot/var/named目录下创建一个named.log文件名,这个文件名字随便叫,创建完了后设置权限,如下所示:
chown named.named /var/named/named.log
到此这个文件的相关设置就完成了,下来配置/etc/named.conf文件,在此文件里加入以下内容:
logging {
channel default_syslog { syslog local2; severity error; };
channel audit_log {
file "named.log" versions 3 size 20m;
severity info;
print-time yes;
print-category yes;
};
category default { audit_log; };
category general { audit_log; };
category security { audit_log; default_syslog; };
category config { default_syslog; };
category resolver { audit_log; };
category xfer-in { audit_log; };
category xfer-out { audit_log; };
category notify { audit_log; };
category client { audit_log; };
category network { audit_log; };
category update { audit_log; };
category queries { audit_log; };
category lame-servers { audit_log; };
};
重启你的named进程,以后你的dns相关信息就会出现这个文件里!
查询dns解析日志
为了方便查找日志文件路径以及管理,统一放在/var/log ,创建软连接:
ln -s /var/named/named.log /var/log/named.log
tail -f /var/log/named.log
已经没有该DNS记录的信息了。说明DNS已经把日志输出在了专门的文件了。即named.log
日志分割
1)复制日志文件备份
2)统计备份后的日志文件行数
3)在原文件中将相应行数删除
4)把以上过程做计划任务,每天定时执行
sed -i -c '1,5d' file # -i 直接对文件进行修改 -c 保持inode不变 d 删除
#!/bin/bash
cp /var/named/named.log /home/log/named.log-$(date +%F).bak
count=$(cat /home/log/named.log-$(date +%F).bak | wc -l)
sed -i -c "1,${count}d" /var/named/named.log
rm -rf /home/log/named.log-$(date -d '-7 day' +%F).bak