在CentOS安装BIND,把所有DNS请求日志转发到syslog服务器去
在CentOS安装BIND,把所有DNS请求日志转发到syslog服务器去
在vim /etc/named.conf
里配置的内容
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
channel DNS-LOG {
syslog local1;
severity debug;
print-time yes;
print-category yes;
print-severity yes;
};
category queries {
DNS-LOG;
};
category client {
DNS-LOG;
};
category resolver {
DNS-LOG;
};
};
zone "baidu.com" {
type forward;
forwarders {10.127.1.8; };
forward only;
};
zone "qq.cn" {
type forward;
forwarders {10.127.1.8; };
forward only;
};
刷新named配置
systemctl reload named
systemctl restart named
rndc flush
在rsyslog服务里的配置项,最下面vim /etc/rsyslog.conf
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514
#将BIND的DNS请求信息发送给日志平台
DNS-LOG.* @@10.5.5.5:514
# ### end of the forwarding rule ###
重启rsyslog服务
systemctl restart rsyslog
关于logging的详解
logging {
channel DNS-LOG {
syslog local1;
severity debug;
print-time yes;
print-category yes;
print-severity yes;
};
category queries {
DNS-LOG;
};
category client {
DNS-LOG;
};
category resolver {
DNS-LOG;
};
};
在 BIND 中,可以根据日志消息的类型和属性将其分类到不同的日志分类中。以下是一些常见的日志消息分类示例:
default
:默认分类,用于处理未明确指定分类的日志消息。
在下面示例中,default
分类用于处理未分类的日志消息,并将其路由到默认的文件通道和 syslog 通道。
category default {
default_file;
default_syslog;
};
queries
:用于处理 DNS 查询相关的日志消息。
在下面示例中,queries
分类用于处理与 DNS 查询相关的日志消息,并将其路由到指定的文件通道和 syslog 通道。
category queries {
queries_file;
queries_syslog;
};
client
:用于处理客户端相关的日志消息。
在下面示例中,client
分类用于处理与客户端相关的日志消息,并将其路由到指定的文件通道和 syslog 通道。
category client {
client_file;
client_syslog;
};
resolver
:用于处理 DNS 解析器相关的日志消息。
在下面示例中,resolver
分类用于处理与 DNS 解析器相关的日志消息,并将其路由到指定的文件通道和 syslog 通道。
category resolver {
resolver_file;
resolver_syslog;
};
除了以上示例,你可以根据自己的需求和配置,在 BIND 中创建更多的日志分类。每个分类可以与一个或多个通道关联,以实现特定类型的日志消息的处理和记录。
如果你需要自定义输出格式,可以在 category queries
配置中添加适当的参数来定义日志消息的格式。以下是一个示例,展示了如何自定义输出格式:
category queries {
queries_file;
channel queries_file {
file "/var/log/bind/queries.log" versions 3 size 10m;
severity info;
print-time yes;
print-category yes;
print-severity yes;
format {
"Timestamp: %time%, Category: %category%, Severity: %severity%, Message: %msg%\n";
};
};
};
在上述示例中,我们将日志消息输出到名为 queries_file
的文件通道,并使用自定义的输出格式。通过 format
参数,你可以定义日志消息的输出格式,使用特定的占位符来表示不同的属性。
在这个示例中,我们使用 %time%
表示时间戳,%category%
表示日志分类,%severity%
表示严重性级别,%msg%
表示日志消息文本。你可以根据需要自定义格式,并使用可用的占位符来表示不同的属性。
请根据你的需求和环境进行适当的格式定义,并根据需要在 category
配置中添加其他的通道和自定义格式。
或者这样直接给rsyslog输出
下面是自定义channel:DNS-LOG,使用local7通道,发送到rsyslog服务上去。
logging {
channel DNS-LOG {
syslog local7;
severity debug;
print-time yes;
print-category yes;
print-severity yes;
format {
"Timestamp: %time%, Category: %category%, Severity: %severity%, Message: %msg%\n";
};
};
category queries {
DNS-LOG;
};
category client {
DNS-LOG;
};
category resolver {
DNS-LOG;
};
};
下面是直接转发到syslog里
logging {
channel rsyslog {
syslog <rsyslog-server-ip>;
severity info;
print-time yes;
print-category yes;
print-severity yes;
format {
"Timestamp: %time%, Category: %category%, Severity: %severity%, Message: %msg%\n";
};
};
category queries {
rsyslog;
};
category client {
rsyslog;
};
category resolver {
rsyslog;
};
};