自定义日志输出.note
·格式:
# man 文档可查看格式:
man named.conf
1)channel:
channel //定义日志通道,定义日志存储方法(丢弃或存储到文件)
# 可以定义 file、syslog、null、stderr这里直接写相对路径 file "queries.log" ,不写绝对路径,日志默认就会存储到 /var/cache/bind 下
# file:
file 自定义日志文件名称、存储位置,如果不是绝对路径就会存储在 /var/cache/bind 下(如果是绝对路径,并且不是默认bind9可写的目录,就需要修改apparmor)
file ... versions [number] //保留多少个轮转日志文件
file ... versions .... size [SIZE] //单个日志文件的大小(当日志大小超过定义的值,就会进行轮转)# syslog:
交给系统日志
例如:syslog local7,表示,把日志发送到系统日志,facility使用local7# null:
直接丢弃日志# stderr:
输出到标准错误中(能够在 journalctl 中被查看到)# severity [level]:
## 定义日志级别:
critical //严重错误
error //错误
warning //警告
notice //普通重要信息
info //一般信息
debug //调试信息,最详细2)category:
category //指定一种类别的BIND日志,将这类日志发送到指定的 channel中# 常见的 category类型:
## 主从区域传输相关:
xfer-out //本机把zone传出去(用于dns master)
xfer-in //本机接收zone传输(用于dns slave)
notify //DNS notify同事(主dns服务器通知从dns服务器更新)
zoneload //zone加载日志(检查zone文件是否加载成功)
## 查询相关:
queries //客户端查询日志(记录谁查询了什么域名)
query-errors //查询失败原因
resolver //递归解析过程
client //客户端请求处理(输出查询、连接、请求处理细节)
unmatched //找不到匹配 view/class 的请求(输出view的日志)
## 安全相关:
security //请求允许 / 拒绝(排查 allow-query、allow-transfer、ACL)
update-security //动态更新允许 / 拒绝(排查 nsupdate、DDNS)
dnssec //DNSSEC 和 TSIG 处理(排查 DNSSEC、TSIG key)
rate-limit //响应速率限制日志
rpz //Response Policy Zone 日志(输出DNS策略拦截日志)
rpz-passthru //RPZ passthru策略日志
general //通用日志1、输出 主从区域传输日志:

mkdir /var/log/bind
touch /var/log/bind/transfer.log
chown -R bind:bind /var/log/bind·自定义路径需要修改 apparmor:
vim /etc/apparmor.d/usr.sbin.named
# 新增一行:
systemctl restart apparmor
# 主 dns服务器:
vim /etc/bind/named.conf
channel log //定义名为 log 的日志通道
file "/var/log/bind/transfer.log" versions 5 size 10M //定义日志存储到/var/log/bind/transfer.log路径,最多轮转5次,每个文件最大 10MB(versions 和 size 都是可选项)
print-category yes //打印日志类别(可选项)
print-severity yes //打印日志级别(可选项)
print-time yes //在日志前面打印时间(可选项)
severity info //定义日志输出级别为 info
category xfer-out { log; }; //输出区域传输日志(xfer-out),将日志发送到 log channel 中最简化:

# 从 dns服务器:
vim /etc/bind/named.conf
最简化:

·查看日志:
主 dns:

从 dns:

2、输出 dns查询 日志:
存储到默认路径:
这里直接写相对路径 file "queries.log" ,不写绝对路径,日志默认就会存储到 /var/cache/bind 下
vim /etc/bind/named.conf
测试:
客户端访问时,访问日志将被存储到 /var/cache/bind/queries.log 下

如果要自定义路径:
# 配置bind9:
vim /etc/bind/named.conf
# 给予权限:
touch /var/log/queries.log
chown bind:bind /var/log/queries.log# 配置 apparmor:
vim /etc/apparmor.d/usr.sbin.named添加一行

systemctl restart apparmor
systemctl restart bind9
测试:
客户端解析:

查看日志:
