歡迎您光臨本站 註冊首頁

編譯安裝9.6后 named -u bind -gc /usr/local/named/etc/named.conf出現問題

1。問題1
  編譯后啟動:/usr/local/named/sbin/named -u bind -gc /usr/local/named/etc/named.conf
  啟動成功,最後一行running狀態后,機器就停在這個界面,我要做其他操作需要重新開窗口。或者,
  named -u bind -gc /usr/local/named/etc/named.conf  &   才能
  有沒設置那裡,啟動成功后,自動返回到能輸命令的界面。
2.問題2
  還有就是編譯后,named啟動或者失敗的日誌,是在那裡定義的。目前我在messages里看不到日誌,仔細閱讀了README,也沒看到定義日誌的項目(偶英語閱讀能力有限,屬邊看邊翻譯類型)
  各位有過經驗的,能否點撥點撥,感激不盡。
《解決方案》

1.是什麼操作系統,配置文件中是否有daemon相關選項
2.bind的日誌和logging欄位相關,你檢查一下
《解決方案》

1.是什麼操作系統,配置文件中是否有daemon相關選項
2.bind的日誌和logging欄位相關,你檢查一下
zhanglinbaby 發表於 2010-04-13 23:40 http://bbs.chinaunix.net/images/common/back.gif
1.操作系統是RHEL 5U4的。
2.logging 欄位的話,就是說只要配置named.conf就行了,明白日誌的定義了,謝謝!
《解決方案》

1. -g是在前台運行。
-g Run the server in the foreground and force all logging to stderr.

看看手冊的附錄B。
《解決方案》

我手中參考資料不少,很奇怪竟然沒有詳細介紹logging選項的。
  man named.conf也不夠詳細,至多是選項和簡略的一個詞解釋欄位意義。
《解決方案》

詳細介紹logging選項的真的是很少
《解決方案》

問題1
自己寫腳本或者修改別人的腳本

問題2
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
《解決方案》

1. -g是在前台運行。
-g Run the server in the foreground and force all logging to stderr.

看看手冊 ...
diancn 發表於 2010-04-14 10:22 http://bbs.chinaunix.net/images/common/back.gif


    2.日誌配置在bind9管理員手冊 中有詳細說明

7.2.9 logging 語句語法
logging {
[ channel channel_name {
( file path name
[ versions ( number | unlimited ) ]
[ size size spec ]
| syslog syslog_facility
| stderr
| null );
[ severity ( critical | error | warning | notice | info |debug | dynamic ); ]
[ print-category yes ot no; ]
[ print-severity yes or no; ]
[ print-time yes or no; ]
}; ]
[ category category_name {
DNS (BIND9) RunStone Tech. Inc.
http://www.runstone.com , 2003 37
channel_name ; [ channel_name ; … ]
}; ]
...
};
7.2.10 Logging 語句定義和使用
logging 語句為域名伺服器設定了一個多樣性的logging 選項。它的channel 短語對應於
輸出方式、格式選項和分類級別,它的名稱可以與category 短語一起定義多樣的日誌信息。
只用一個logging 語句就可以用來定義多個channel 和category。如果沒有logging 語句的話,
logging 設置就是:
logging {
category "unmatched" { "null"; };
category "default" { "default_syslog"; "default_debug"; };
};
在BIND9 中, logging 的配置只有在整個配置文件被讀取后才被執行。而在BIND8 中,
logging 部分被讀取后就開始執行了。當伺服器啟動時,所有在配置文件中關於語法錯誤的
logging 信息都轉到預設通道(channel)中,或者使用」-g」選項,指定轉成標準錯誤。
7.2.10.1 channel 短語
所有日誌會輸出到一個或多個channel 中;你可以定義所有你想要的通道。
每個通道的定義必須包括一個目的字句,用來確定所選的相關同到的信息,將會輸出
到一個文件,或是到一個特殊的syslog 工具,或是到一個標準錯誤流,或者被忽略。它也
可以隨意的限制通道能接受的信息級別(默認值info),定義是否包含一個由named 產生的
時間標記,或者是否包含分類的名稱、級別等(默認是不包含任何內容)。
目的子句為null 時,會使所有發送給通道的信息被丟棄;那樣的話,其他通道選項就
沒有意義了。
目的子句為file 時,會使通道的內容輸出到一個磁碟文件。它可以包含這個文件的大小
和該文件可以保存多少個版本。
如果使用versions 日誌文件選項,named 就會自動保留多個版本的日誌文件。例如,如
果選擇保存文件lamers.log 的三個老版本,那麼在它被打開的時候lamers.log.1 被更名為
lamers.log.2,lamers.log.0 被更名為lamers.log.1 ,lamers.log 被更名為lamers.log.0。也可以
設置version unlimited,這樣就沒有備份版本的限制了。如果對日誌文件設置了size 選項,
那麼僅當此文件超過了設定的大小時,系統就會進行更名。默認情況下不儲存備份文件;
所有存在的日誌文件被簡單進行追加。
文件的size 選項用來限制日誌的增長。如果文件超過了限制,又沒有version 選項,則
named 就會停止寫入文件。如果保留了備份版本,則備份文件如上所述進行滾動命名,然後
開始創建一個新的文件。如果沒有versions 選項,也沒有其它的機制來刪除或減小日誌文件,
則系統就不會有數據繼續寫入日誌中。默認狀態是不限制文件的大小的。
size 和versions 選項的使用例子:
DNS (BIND9) RunStone Tech. Inc.
http://www.runstone.com , 2003 38
channel "an_example_channel" {
file "example.log" versions 3 size 20m;
print-time yes;
print-category yes;
};
syslog 目的子句是把通道指向系統日誌。它的參數是一個syslog 的前綴,如syslog 幫助
中所述。Syslog 是怎樣處理帶有這些前綴的信息,可以參考syslog.conf 的幫助信息。如果
你有一個使用很老版本的syslog 的系統,只對openlog()函數使用兩個參數,那麼這個子句
就被忽略了。
severity 子句象syslog 中的」priorites」一樣工作,唯一區別的是用戶可以直接寫入一個文
件,而不是使用syslog 寫入一個文件。不到嚴重級的信息將不會被通道選擇;高嚴重級的
信息將會被接受。
如果用戶正在使用syslog,那麼syslog.conf 的優先順序也會決定什麼會最終通過。例如,
將channel facility 和severity 定義成daemon 和debug,就不會只記錄通過syslog.conf 的
daemon.warning 信息,後者會使severity 是info 和notice 的信息被丟棄。如果情況相反,named
就會只記錄warning 或更高級別的信息,而syslogd 則會記錄來自於通道的所有信息。
Stderr 的目的子句將通道輸出到伺服器的標準錯誤流。它的用於伺服器在前台運行的情況
下,例如,debug 調試配置的時候。
當處於debug 模式的時候,伺服器能提供豐富的調試信息。如果伺服器的全局debug 級別
(globe debug level)大於0,debug 模式將被激活。全局debug 級別可以通過在啟動named
時設置「-d」參數加一個正數,或運行rndc trace 來設置。
全局debug 級別可以設置成0,或運行rndc notrace,則debug 模式被關閉。伺服器中所
有的debug 信息有一個debug 級別,高調試級給出更詳細的輸出。例如,指定調試嚴重級別
的通道:
channel "specific_debug_level" {
file "foo";
severity debug 3;
};
上例中,伺服器在處於debug 模式的時候都會收到3 級和比3 級小的級別的調試信息,
全局的調試級別在這裡不起作用。dynamic 嚴重級別的通道將使用伺服器全局debug 級別決
定列印哪些信息。
如果使用了print-time 參數,則日期和時間也將會記錄下來。print-time 也可以針對syslog
的通道進行設置,但因為syslog 也列印日期和時間,所以一般來講,這沒有什麼意義。如
果設置了print-category 參數,則信息的分類也會記錄下來。如果設置了print-severity 參數,
則信息的嚴重級別也會記錄下來。print-xxx 選項可以進行多重組合,單輸出的格式都為這
個順序:時間、分類、嚴重級別。下面是一個當三個列印選項都設置的例子:
28-Feb-2000 15:05:32.863 general: notice: running
下面是四個named 提前定義的通道,用於指定預設的日誌。
DNS (BIND9) RunStone Tech. Inc.
http://www.runstone.com , 2003 39
channel "default_syslog" {
syslog daemon; // 發送給syslog 的daemon facility
severity info; //只發送此優先順序和更高優先順序的信息
};
channel "default_debug" {
file "named.run"; // 寫入工作目錄下的named.run 文件
// 注意:如果伺服器用-f 參數啟動,則
// "named.run"會被stderr 所替換
severity dynamic; // 按照伺服器當前的debug 級別記錄日

};
channel "default_stderr"{ //寫到stderr
stderr;
severity info; //只發送此優先順序和更高優先順序的信息
};
channel "null" {
null; // 丟棄所有發到此通道的信息
};
default_debug 通道有特殊的性質:只有當伺服器的debug 級別非0 的時候,它才產生輸
出。一般來說,它會在伺服器的工作目錄中寫入named.run 文件。
因為安全原因,當在命令行選項中使用了「-u」參數后,只有當named 使用了新的UID
后,named.run 文件才會產生,以root 身份啟動和運行的named 所產生的debug 信息將會被
丟棄。如果用戶需要得到這些輸出,則必須使用「-g」參數運行伺服器,並重新將標準錯誤
定向到一個文件中去。
一旦定義好一個通道,它就不能被重新定義。這樣就不能修內置的通道,但是可以通
過把分類指向你已經定義的通道,來修改默認的日誌記錄。
7.2.10.2 category 短語
這裡存在許多分類,用戶可根據需要定義想看到或不想看的日誌。如果你不將某個分
類指定到某些通道的話,那麼在這個分類的日誌信息就會被發送到default 分類通道中。如
果用戶沒有設定預設的分類,下列"default"則會被系統使用:
category "default" { "default_syslog"; "default_debug"; };
作為一個例子,假定你要在文件中記錄安全事件,但您也要保留預設的日誌文件。最
好按照下面配置:
channel "my_security_channel" {
file "my_security_file";
severity info;
DNS (BIND9) RunStone Tech. Inc.
http://www.runstone.com , 2003 40
};
category "security" {
"my_security_channel";
"default_syslog";
"default_debug";
};
為了丟棄一個分類中的所有信息,可以設定null 通道:
category "xfer-out" { "null"; };
category "notify" { "null"; };
下面是可用的分類和相關的簡明描述,以後的BIND 版本中會包含更多的分類。
default 沒有配置的分類會使用default 的分類的日誌配置。
General 許多沒有分類的內容都歸在此分類中
Database Named 使用的,用來存儲域和緩存數據的內部資料庫信息。
security 接受和拒絕的請求
config 配置文件分析和處理
resolver DNA 解析,如由緩存域名伺服器執行的代表用戶的遞歸查詢。
xfer-in 伺服器收到的域傳輸
xfer-out 伺服器發送的域傳輸
notify NOTIFY 協議
client 用戶請求的處理
unmatched 由於沒有匹配的視圖,Named 無法確定的類別。單行的概要信息記錄在client 分類中。這個分類最好發送到一個文件或者stderr,預設情況下發送到一個null 通道。
network 網路操作。
update 動態更新。
queries 請求,使用queries 分類將會產生日誌用戶請求。
dispatch 將進入的數據包分發到能夠處理它們的伺服器模塊中去。
dnssec DNSSEC 和 TSIG 協議的處理。
lame-servers 未知伺服器。這些都是有於其它DNS 伺服器中的錯誤配置引起的。
《解決方案》

感謝樓上。

[火星人 ] 編譯安裝9.6后 named -u bind -gc /usr/local/named/etc/named.conf出現問題已經有745次圍觀

http://coctec.com/docs/service/show-post-17500.html