1.4. 在 BIND DNS 服务器中配置日志记录
默认 /etc/named.conf
文件中的配置(如 bind
软件包提供)使用 default_debug
通道,并将消息记录到 /var/named/data/named.run
文件中。default_debug
频道仅在服务器的 debug 级别为零时记录条目。
使用不同的频道和类别,您可以将 BIND 配置为将具有定义的严重性的不同事件写入单独的文件。
前提条件
- 已配置了 BIND,例如作为缓存名称服务器。
-
named
或named-chroot
服务正在运行。
流程
编辑
/etc/named.conf
文件,并将category
和channel
添加到logging
语句中,例如:logging { ... category notify { zone_transfer_log; }; category xfer-in { zone_transfer_log; }; category xfer-out { zone_transfer_log; }; channel zone_transfer_log { file "/var/named/log/transfer.log" versions 10 size 50m; print-time yes; print-category yes; print-severity yes; severity info; }; ... };
使用这个示例配置,BIND 会记录与区域传送相关的消息,到
/var/named/log/transfer.log
。BIND 创建最多10
个日志文件版本,如果它们达到50
MB 的最大大小,则轮转它们。category
定义了 BIND 向哪些频道发送类别信息。channel
定义了日志消息的目的地,包括版本数量、最大文件大小以及 BIND 应记录到频道的严重性等级。其他设置(如启用日志的时间戳、类别和严重性)是可选的,但可用于调试目的。如果不存在,创建日志目录,并为
named
用户授予对这个目录的写权限:# mkdir /var/named/log/ # chown named:named /var/named/log/ # chmod 700 /var/named/log/
验证
/etc/named.conf
文件的语法:# named-checkconf
如果命令没有显示输出,则语法为正确的。
重启 BIND:
# systemctl restart named
如果在 change-root 环境中运行 BIND,请使用
systemctl restart named-chroot
命令来重启该服务。
验证
显示日志文件的内容:
# cat /var/named/log/transfer.log ... 06-Jul-2022 15:08:51.261 xfer-out: info: client @0x7fecbc0b0700 192.0.2.2#36121/key example-transfer-key (example.com): transfer of 'example.com/IN': AXFR started: TSIG example-transfer-key (serial 2022070603) 06-Jul-2022 15:08:51.261 xfer-out: info: client @0x7fecbc0b0700 192.0.2.2#36121/key example-transfer-key (example.com): transfer of 'example.com/IN': AXFR ended
其他资源
-
named.conf(5)
man page - BIND 管理员参考手册