BIND9詳解之日誌篇(轉)

post0發表於2007-08-11
BIND9詳解之日誌篇(轉)[@more@]

前幾天一直有網友詢問關於DNS的日誌問題。今天我剛好有空,整理了一下分享給大家 icon_biggrin.gif

在預設情況下,BIND把日誌訊息寫到/var/log/messages檔案中,而這些日誌訊息是非常少的,主要就是啟動,關閉的日誌記錄和一些嚴重錯誤的訊息,所以要詳細記錄伺服器的執行狀況,需要自己配置伺服器的日誌行為。也就是要在配置檔案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中就可以了):

程式碼:

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進行寫入。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-945035/,如需轉載,請註明出處,否則將追究法律責任。

相關文章