DNS的日志记录参数详解及示例
在"man named.conf"中能找到关于日志的配置选项:
logging {
category string { string; ... };
channel string {
buffered boolean;
file quoted_string [ versions ( "unlimited" | integer )
] [ size size ];
null;
print-category boolean;
print-severity boolean;
print-time boolean;
severity log_severity;
stderr;
syslog [ syslog_facility ];
};
};
category(类别):选择需要记录的日志类别主要有以下参数:
default #匹配未归类的消息类型。
general #包括所有未明确的bind消息
client #客户端的请求消息
config #配置文件相关消息
database #存储数据和缓存记录
dnssec #域名签名日志
lame-servers #未授权或者非法
network #网络错误
notify #异步区的更新消息
queries #查询日志
query-errors #查询不到
resolver #名字解析,包括递归日志
security #安全日志
update #部分更新日志
cname #别名解析
xfer-in #从远程域名服务器到本地服务器的数据消息
xfer-out #从本地到远程域名服务器的数据消息
示例:
category config { default_syslog; default_debug; default_log; };
#记录config相关消息,分别记录到括号里的三个位置
channel(通道):规定category括号中的记录日志位置及消息等级
示例:
channel default_debug {
print-time yes;
print-category yes;
print-severity yes;
file “named.run”;
severity dynamic;
print-category:记录消息时是否记录日志类型
severity:记录消息的等级(严重性从上往下递减):
critical
error
warning
notice
info
debug [ level ]
dynamic
定义了某个级别后,会记录比该级别更严重的日志。
print-time:是否记录消息的时间
print-severity:记录消息时是否写入消息级别
print-category:记录消息时是否写入消息类型
配置示例:
logging {
category network { default_syslog; default_debug; default_log; };
category default { default_log; };
category config { default_log; };
channel default_log {
file “/var/named/log/default.log” versions 3 size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity info;
};
#上面三个类型的日志全部记录到/var/named/log/default.log文件中,version设置为3将会保存3份日志,上限存储20M,依次版本循环记录日志。
category cname { auth_servers_log; };
channel auth_servers_log {
file “/var/named/log/auth_servers.log” versions 5 size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity info;
};
category client{ client_security_log;};
category security { client_security_log;};
channel client_security_log {
file “/var/named/log/client_security.log” versions 3 size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity info;
};
category queries { queries_log; };
channel queries_log {
file “/var/named/log/queries.log” versions 10 size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity info;
};
category query-errors {query-errors_log; };
channel query-errors_log {
file “/var/named/log/query-errors” versions 5 size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity dynamic;
};
};
#rndc status命令查看日志的记录状态是否是开启的;
#rndc querylog 开启解析记录日志即可;