bind的log设置

    在默认情况下,BIND把日志消息写到/var/log/messages文件中,而这些日志消息是非常少的,主要就是启动,关闭的日志记录和一些严重错误的消息,所以要详细记录服务器的运行状况,需要自己配置服务器的日志行为。也就是要在配置文件named.conf中使用logging语句来定制自己所需要的日志记录,logging语句的语法为:
logging {
            channel <string>; {
                file <logfile>;;
                    syslog <optional_facility>;;
                null;
                stderr;
                    severity <logseverity>;;
                    print-time <boolean>;;
                    print-severity <boolean>;;
                    print-category <boolean>;;
        };
        category <string>; { <string>;; ... };
};
在日志中主要有两个概念:通道(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: dns.andy.com IN A
    另外解释一下file "query.log" versions 3 size 20m;语句中 “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进行写入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值