linux bind日志级别,BIND日志相关(一)
對(duì)于排除DNS故障來(lái)說(shuō),日志文件是極其重要的工具,DNS日志可以記錄服務(wù)器CPU占用時(shí)間,查詢(xún)統(tǒng)計(jì)信息以及配置中存在的問(wèn)題。經(jīng)常分析日志可以了解服務(wù)器的負(fù)荷,性能安全性,從而及時(shí)采取措施糾正錯(cuò)誤。BIND在默認(rèn)情況下,日志是寫(xiě)到/var/log/messages文件中,由于這個(gè)文件是系統(tǒng)中的日志信息由syslog生成,所以不全是BIND的日志,要詳細(xì)分類(lèi)BIND的日志,需要修改配置文件named.conf,使用logging語(yǔ)句來(lái)定制自己 所需要的日志記錄,logging語(yǔ)句的語(yǔ)法為:
logging {
channel ; {
file ;;
syslog ;;
null;
stderr;
severity ;;
print-time ;;
print-severity ;;
print-category ;;
};
category ; { ;; ... };
};
在 日志中主要有兩個(gè)概念:通道(channel)和類(lèi)別(category)。通道指定了應(yīng)該向哪里發(fā)送日志數(shù)據(jù):是發(fā)送給syslog,還是寫(xiě)在一個(gè)文件里,或是發(fā)送給named的標(biāo)準(zhǔn)錯(cuò)誤輸出,還是發(fā)送到位存儲(chǔ)桶(bit bucket)。類(lèi)別則規(guī)定了哪些數(shù)據(jù)需要記錄。下面我們主要介紹一下文件通道和類(lèi)別。
在定義通道的語(yǔ)句中,severity是指定記錄消息的級(jí)別。在bind中主要有以下幾個(gè)級(jí)別(按照嚴(yán)重性遞減的順序):
critical
error
warning
notice
info
debug [ level ]
dynamic
定義了某個(gè)級(jí)別后,系統(tǒng)會(huì)記錄包括該級(jí)別以及比該級(jí)別更嚴(yán)重的級(jí)別的所有消息。比如定義級(jí)別為error,則會(huì)記錄critical和error兩個(gè)級(jí)別 的信息。一般情況下,我們記錄到info級(jí)別就可以了。print-time是設(shè)定在日志中是否需要寫(xiě)入時(shí)間,print-severity是設(shè)定在日志 中是否需要寫(xiě)入消息級(jí)別,print-category是設(shè)定在日志中是否需要寫(xiě)入日志類(lèi)別。
category語(yǔ)句是指定哪一種類(lèi)別的數(shù)據(jù)使用哪個(gè)或者哪幾個(gè)已經(jīng)定義了的通道。在bind9中類(lèi)別有:
default
default類(lèi)別匹配所有未明確指定通道的類(lèi)別,但是不匹配不屬于任何類(lèi)別的消息。這些不屬于任何類(lèi)別的消息屬于下面列出的這些類(lèi)別。
general
包括所有未明確分類(lèi)的BIND消息。
client
處理客戶(hù)端請(qǐng)求。
config
配置文件分析和處理。
database
同BIND內(nèi)部數(shù)據(jù)庫(kù)相關(guān)的消息,用來(lái)存儲(chǔ)區(qū)數(shù)據(jù)和緩存記錄。
dnssec
處理DNSSEC簽名的響應(yīng)。
lame-servers
發(fā)現(xiàn)錯(cuò)誤授權(quán)。
network
網(wǎng)絡(luò)操作
notify
異步區(qū)變動(dòng)通知。
queries
查詢(xún)?nèi)罩?/p>
resolver
名字解析,包括對(duì)來(lái)自解析器的遞歸查詢(xún)的處理。
security
認(rèn)可/非認(rèn)可的請(qǐng)求。
update
動(dòng)態(tài)更新事件。
xfer-in
從遠(yuǎn)程名字服務(wù)器到本地名字服務(wù)器的區(qū)傳送。
xfer-out
從本地名字服務(wù)器到遠(yuǎn)程名字服務(wù)器的區(qū)傳送。
例如要記錄queries消息,就可以如下配置(把以下語(yǔ)句添加到named.conf中就可以了):
CODE:
logging {
channel query_log {
file "query.log" versions 3 size 20m;
severity info;
print-time yes;
print-category?? yes;
};
category queries {
query_log;
};
};
這樣服務(wù)器會(huì)在工作目錄(directory語(yǔ)句所指定的目錄,通常為:/var/named)下創(chuàng)建query.log這個(gè)文件,并把運(yùn)行過(guò)程產(chǎn)生的queries消息寫(xiě)如到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;”語(yǔ)句中“version”和“size”的意義:
version是指定允許同時(shí)存在多少個(gè)版本的該文件,比如指定3個(gè)版本(version 3),bind9會(huì)保存query.log、query.log0、query.log1和query.log2。
Size是指定文件大小的上限,如果只設(shè)定了size而沒(méi)有設(shè)定version的話(huà),當(dāng)文件達(dá)到指定的文件大小上限時(shí),服務(wù)器停止寫(xiě)入該文件。如果設(shè)定了 version的話(huà),服務(wù)器會(huì)進(jìn)行循環(huán),比如把query.log變成query.log1,query.log1變成query.log2等,然后建立一個(gè)新的query.log進(jìn)行寫(xiě)入。
DNS日志應(yīng)該根據(jù)實(shí)際需要多設(shè)置幾個(gè)通道,將日子信息分類(lèi)記錄,在多看多分析的原則下發(fā)現(xiàn)各類(lèi)問(wèn)題,以便及時(shí)解決。例如:
/var/named/dns-default.log文件發(fā)現(xiàn)多條警告信息“Nov 02 15:15:34.647 client:warning 10.2.2.36#1036:no more recursive clients:quota reached”?。通過(guò)分析得知BIND客戶(hù)端數(shù)量默認(rèn)是1000,瞬間請(qǐng)求超過(guò)這個(gè)值就會(huì)出現(xiàn)這個(gè)警告,所以修改named.conf。添加語(yǔ)句“recursive-clients 10000”,即解決問(wèn)題。
總結(jié)
以上是生活随笔為你收集整理的linux bind日志级别,BIND日志相关(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 笔趣阁看小说免费吗(只看这一篇就够了)
- 下一篇: linux mcelog 运行,服务器硬