利用bind,dlz,mysql构建智能dns。能够实现将dns的数据放入mysql里面去。
yum list all |grep bind 里面有个sdb包,也可以将我们的数据放入数据库里面去。
如何让dns开启日志功能?并不建议开启日志功能。如果打开日志功能就会影响dns的性能,会将性能给弄的很差。
只需要在option里面加入一个选项即可。man named.conf
querylog yes;
options {
directory "/var/named";
querylog yes;
};
之后查看/var/log/messages就能看到日志信息;浪费大量的空间。
可以使用catagory日志系统,帮我们定制需要对那些行为进行日志检测。
默认的日志级别是info级别。
DNS服务器默认日志输出在/var/log/messages,但是都是一些启动,重启,关闭等日志,并没有重要的DNS日志输出。针对一些重要的日志是我们想要的,我们来看看dns日志是如何
设置和定义的。
channel通道:作用主要定义日志输出的方式;
在定义通道的语句里有哪些子语句:
通道的名称,即自定义通道的名称,即是什么类别。
输出方式和路径;
输出日志的轮转;即日志1,日志2,日志3...;
输出日志的大小限制;
输出到syslog
定义消息的级别:severity critical |err |warning |notice |info |debug |dynamic
定义类别的输出:print-category yes or no
定义等级的输出:print-severity yes or no
定义时间的输出:print-time yes or no
category类别:定义了那些数据需要记录,即在日志里输出那些日志内容。哪一类的类别使用哪个或哪几个已经定义好的通道
类别的种类:
default,没有配置的分类使用default的分类日志配置。
general,许多没有分类的内容都在此分类;
database,named使用的,用来存储和缓存的内部数据库信息;
security,接受和拒绝的请求
config配置文件分析和处理
resolver DNA解析;
xfer-in:服务器收到的域传输;
xfer-out:服务器发送的域传输。
。。。
queries 请求。
bind的日志系统,提供了两个子系统,一个叫做channel,一个叫做category。
catagory: 日志源(指的是产生日志的日志源,不如说有的是跟查询有关的,有的是跟区域传送相关的。)所以catagory可以让我们定义日志来源。
查询
区域传送;
可以通过catagory自定义日志来源;
一个catagory,可以存放到多个位置;一个channel只能存放一个catagory。
catagory:
channel: 定义日志的日志保存位置;
syslog:系统日志;使用日志级别的概念。/var/log/messages.
file: 自定义保存日志信息的文件。
channel "default_syslog" { syslog daemon log;security info }"
channel "default_debug" { file "named.run";severity dynamic }"
channel "default_stderr" { stderr;severity info;}
channel "default_null" { null; }
catagory:
logging {
file "log.msgs" version 3 size 10k; #一旦达到10k,就开始滚动,日志是可以滚动的;
severity dynamic; #定义日志级别;
};
channel my_syslog {
syslog local0; #定义syslog里面local0的信息存放到哪里去;
severity info; #定义local0里面的普通信息放到固定位置去。
};
category xfer-in { my_file; }; #传入 #将传入日志保存到my_file里面去;
category update { my_syslog; }; #更新信息
};
下面举例说明:
vim /etc/name.conf
logging {
channel querylog {
file "/var/log/bind_query.log" versions 5;
severity dynamic;
print-category yes;
print-time yes;
print-severity yes;
};
category queries { querylog; };# 以上记录到是查询日志的;如果想定义传输日志,也可以再进行定义。
};
加入如下参数即可。
注意修改日志文件的权限,都为named的。
dnstop:就可以帮我们查看dns的性能。
queryperf : 压力测试
queryperf -d test -s 172.16.100.1 能够测试出来每秒钟能够完成多少测试;
cat test
www.zledu.com. A
mail.zledu.com A
zledu.com. NS
ns1.zledu.com. A
pop3.zledu.com. A
做测试的时候,可以考虑使用不同的虚拟机做个测试,试验下速度到底有多快或者速度到底有多慢。
dnstop工具的使用,如何使用它。
dnstop -4 -Q -R eth0
通过这个命令,帮助我们补获记录通过eth0这个网卡过来寻求解析的主机地址。