BIND9详解之日志篇

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

BIND9详解之⽇志篇
在默认情况下,BIND把⽇志消息写到/var/log/messages⽂件中,⽽这些⽇志消息是⾮常少的,主要就是启动,关闭的⽇志记录和⼀些严重错误的消息,所以要详细记录服务器的运⾏状况,需要⾃⼰配置服务器的⽇志⾏为。

也就是要在配置⽂件named.conf中使⽤logging语句来定制⾃⼰所需要的⽇志记录,logging语句的语法为:
logging {
channel ; {
file ;;
syslog ;;
null;
stderr;
severity ;;
print-time ;;
print-severity ;;
print-category ;;
};
category ; { ;; ... };
};
在⽇志中主要有两个概念:通道(channel)和类别(category)。

通道指定了应该向哪⾥发送⽇志数据:是发送给syslog,还是写在⼀个⽂件⾥,或是发送给named的标准错误输出,还是发送到位存储桶(bit bucket)。

类别则规定了哪些数据需要记录。

下⾯我们主要介绍⼀下⽂件通道和类别。

在定义通道的语句中,severity是指定记录消息的级别。

在bind中主要有以下⼏个级别(按照严重性递减的顺序):
critical
error
warning
notice
info
debug [ level ]
dynamic
定义了某个级别后,系统会记录包括该级别以及⽐该级别更严重的级别的所有消息。

⽐如定义级别为error,则会记录critical和error两个级别的信息。

⼀般情况下,我们记录到info级别就可以了。

print-time是设定在⽇志中是否需要写⼊时间,print-severity是设定在⽇志中是否需要写⼊消息级别,print-category是设定在⽇志中是否需要写⼊⽇志类别。

category语句是指定哪⼀种类别的数据使⽤哪个或者哪⼏个已经定义了的通道。

在bind9中类别有:
default
default类别匹配所有未明确指定通道的类别,但是不匹配不属于任何类别的消息。

这些不属于任何类别的消息属于下⾯列出的这些类别。

general
包括所有未明确分类的BIND消息。

client
处理客户端请求。

config
配置⽂件分析和处理。

database
同BIND内部数据库相关的消息,⽤来存储区数据和缓存记录。

dnssec
处理DNSSEC签名的响应。

lame-servers
发现错误授权。

network
⽹络操作
notify
异步区变动通知。

queries
查询⽇志
resolver
名字解析,包括对来⾃解析器的递归查询的处理。

security
认可/⾮认可的请求。

update
动态更新事件。

xfer-in
从远程名字服务器到本地名字服务器的区传送。

xfer-out
从本地名字服务器到远程名字服务器的区传送。

例如要记录queries消息,就可以如下配置(把以下语句添加到named.conf中就可以了):
logging {
channel query_log {
file "query.log" versions 3 size 20m;
severity info;
print-time yes;
print-category yes;
};
category queries {
query_log;
};
};
这样服务器会在⼯作⽬录(directory语句所指定的⽬录,通常为:/var/named)下创建query.log这个⽂件,并把运⾏过程产⽣的queries消息写如到query.log⽂件中,如下:
Nov 28 16:04:55.516 queries: client 192.168.0.113#32770: query: IN A
另外解释⼀下“[color=blue]file "query.log" versions 3 size 20m;[/color]”语句中“version”和“size”的意义:
version是指定允许同时存在多少个版本的该⽂件,⽐如指定3个版本(version 3),bind9会保存query.log、query.log0、query.log1和query.log2。

Size是指定⽂件⼤⼩的上限,如果只设定了size⽽没有设定version的话,当⽂件达到指定的⽂件⼤⼩上限时,服务器停⽌写⼊该⽂件。

如果设定了version的话,服务器会进⾏循环,⽐如把query.log变成query.log1,query.log1变成query.log2等,然后建⽴⼀个新的query.log进⾏写⼊。

相关文档
最新文档