linux bind日志级别,BIND日志相关(一)
對于排除DNS故障來說,日志文件是極其重要的工具,DNS日志可以記錄服務器CPU占用時間,查詢統計信息以及配置中存在的問題。經常分析日志可以了解服務器的負荷,性能安全性,從而及時采取措施糾正錯誤。BIND在默認情況下,日志是寫到/var/log/messages文件中,由于這個文件是系統中的日志信息由syslog生成,所以不全是BIND的日志,要詳細分類BIND的日志,需要修改配置文件named.conf,使用logging語句來定制自己 所需要的日志記錄,logging語句的語法為:
logging {
channel ; {
file ;;
syslog ;;
null;
stderr;
severity ;;
print-time ;;
print-severity ;;
print-category ;;
};
category ; { ;; ... };
};
在 日志中主要有兩個概念:通道(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中就可以了):
CODE:
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進行寫入。
DNS日志應該根據實際需要多設置幾個通道,將日子信息分類記錄,在多看多分析的原則下發現各類問題,以便及時解決。例如:
/var/named/dns-default.log文件發現多條警告信息“Nov 02 15:15:34.647 client:warning 10.2.2.36#1036:no more recursive clients:quota reached”?。通過分析得知BIND客戶端數量默認是1000,瞬間請求超過這個值就會出現這個警告,所以修改named.conf。添加語句“recursive-clients 10000”,即解決問題。
總結
以上是生活随笔為你收集整理的linux bind日志级别,BIND日志相关(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 笔趣阁看小说免费吗(只看这一篇就够了)
- 下一篇: linux mcelog 运行,服务器硬