bind当中的日志系统
bind的最基本的两个组件channel、category
channel:用来记录不同的日志文件要放到什么地方,这个地方只有两类(syslog,file【自定义】)
category:用来记录产生的日志文件应该发给哪个类别channel,默认有15种category
channel和category得关系是一对多的关系
channel支持日志级别,支持的级别有:
critical error warning notice info debug[level] dynamic
debug和dynamic是bind特有的级别,因为syslog并不支持(syslog支持的bug并没有bug自身的级别,但是bind支持的bug是有自身的级别的)
默认级别是info
print-severity定义级别的,并且会在日志中显示出来
print-category定义是由哪个category产生的日志信息
print-time记录日志产生的时间(如果channel默认位置是syslog就不要使用print-time了,因为这个很消耗系统资源)
例如:
channel "default_syslog" { syslog deamon;severity into; };
channel "default_debug" { file"named.run";severity dynamic; };
channel "default_stderr" { stderr;severity info; } 这个表示有错误就输出到屏幕上
channel "null" { null; };发往这的信息会被丢弃
category的15种类别;
default generl client config dispatch dnssec lame-servers network notify queries resolver security udate xfer-in xfer-out
notify:主从服务器当中,主服务器通知从服务器的通知记录,都会被category notify记录
queries:所有由客户端或者其他服务器发过来的请求都会被记录
resolver:递归查询由它记录
update :动态更新
xfer-in:由其他服务器区域传入事件,由它记录下来
xfer-out:当前服务器进行区域发送这个事件,由它记录下来
logging {
channel:日志信息的去处(记录方式及保存位置)
category
file
category:日志信息来源子系统(定义由bind的哪种功能所产生的日志信息)
};
例如:
logging {
【用logging关键字实现】
channel my file {
file "log.msgs" versions 3 size 10k 【这个是实现日志滚动,一旦这个日志文件达到10k的时候就滚动一次,最多保留三个版本】
severity dynamic
};
channel my_syslog {
syslog local0
severity info
}
category xfer-in { my_file; }
category update { my_syslog; };
};