DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一種有效的IP 地址分配手段,已經廣泛地應用於各種局域網管理。它能動態地向網絡中每台計算機分配唯一的IP 地址,並提供安全、可靠、簡單和統一的TCP/IP 網絡配置,確保不發生IP 地址沖突。當在服務器上啟用DHCP 后,我們希望了解服務的運行情況,希望看到詳細日志。可以通過下面的命令了解到DHCP 服務的日志文件在什么地方。
以CentOS6.9系統為例,查看是否安裝了DHCP服務,命令如下:
rpm -qa | grep dhcp
DHCP 服務的默認日志不會輸出到指定文件,而是和NFS 服務一樣,輸出到/var/log/messages 文件中,成了日志的大雜燴,不便於分辨,更不便於查找故障,一旦messages文件遭到破壞,DHCP 日志也跟着受影響。
那么還有沒有其他什么文件,記錄了DHCP 的分配IP 的信息呢?那就是/var/lib/dhcpd/dhcpd.leases文件,它記錄了客戶機分配IP的詳細信息。下面我們進入/var/lib/dhcpd/dhcpd.leases這個文件看一下。
客戶機每次獲取地址后會產生如下信息:
每當發生租約變化的時候,都會在文件結尾添加新的租約記錄,也就是說這個文件是在不斷變化的。
從上面分析看到,DHCP 服務器的日志在messages和dhcpd.leases里分別有一部分,都不全面。如何將DHCP 的日志專門轉儲到特定文件中呢?下面介紹一種方法。
假設需要將日志記錄在/var/log/目錄下,則可以先用touch命令創建一個dhcpd.log 文件。
1)創建dhcpd.log 文件
touch /var/log/dhcpd.log
chmod 600 /var/log/dhcpd.log
2)修改/etc/dhcp/dhcpd.conf配置文件,在最后添加“log-facility”參數並賦值為local4,內容如下:
log-facility local4;
然后保存退出(不同Linux 發行版配置文件路徑有所不同)。
3)在 /etc/rsyslog.conf 配置文件最后添加
# Save dhcpd messages also to dhcpd.log
local4.* /var/log/dhcpd.log
將下面這條
*.info;mail.none;authpriv.none;cron.none /var/log/messages
改為:
*.info;mail.none;authpriv.none;cron.none;local4.none /var/log/messages
目的是把消息傳送到/var/log/messages 文件,而不再向local4 傳送。
注意要把下面這行語句注銷:
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
4)重啟Rsyslog 和DHCP 服務
service rsyslog restart
service dhcpd restart
tail -f /var/log/dhcpd.conf # 即時輸出文件變化后追加的數據
tail -f /var/log/messges
重啟DHCP 服務即可生效,這時的日志文件就是DHCP服務器出現故障后排除錯誤的一個重要基礎數據。所以需要定期對這個日志文件作好備份工作。否則,當這個日志意外丟失后,就很難查清DHCP 服務器的故障。