:::
hirokofan - Linux雜記 | 2020-03-05 | 人氣:268
  • 建立LOG存放區
  • BIND的LOG設定(named.conf)
  • logrotate
  • lgorotate hourly
  • 參考資料

環境:ubuntu 16.04

建立LOG存放區

為避免bind因權限問題無法寫入,建立資料夾並設定權限。

mkdir /var/log/named
chown bind:bind -R /var/log/named

 

BIND的LOG設定(named.conf)

在name.conf增加以下內容重啟服務

logging{
     channel default {
         file "/var/log/named/default.log" versions 10 size 200m;
         severity info;
         print-time yes;
     };
     channel query_log {
         file "/var/log/named/query.log" versions 10 size 2000m;
         severity info;
         print-time yes;
     };
category default {
    default;
    };
category queries {
    query_log;
    };
};
service bind9 restart

 

bind在沒有設定log時紀錄會寫在/var/log/syslog裡面,設定default之後相關紀錄就會寫到指定的named/default.log中

logrotate

新增/etc/logrotate.d/bind

/var/log/named/default.log
/var/log/named/query.log
{
    rotate 7
    daily
    missingok
    notifempty
    delaycompress
    compress
    postrotate
        /etc/init.d/bind9 reload > /dev/null 2>&1
    endscript
}

這樣會每天處理一次LOG,LOG保留一週

lgorotate hourly

因為query.log增加的速度很快,當檔案size超過named.conf設定的大小時會將舊的query.log改成query.log.0然後重新產生query.log。

但是logrotate在處理log時是將query.log改成query.log.1,當兩個狀況都發生時會造成檔案順序不正確,因此將logrotate改成每小時處理一次。

設定流程

  • 將原本放在/etc/logrotate.d/bind設定中對query.log的設定刪除
  • 設定logrotate
  • 排程

設定logrotate,新增設定檔如/root/bind_log.conf

/var/log/named/query.log {
    hourly
    rotate 72
    missingok
    notifempty
    delaycompress
    compress
    sharedscripts
    postrotate
        /etc/init.d/bind9 reload > /dev/null 2>&1
    endscript
}

ubuntu的logrotate是一天執行一次,無法每小時執行,因此這個檔案不能放在/etc/logrotate.d裡面而是要另外使用crontab。

crontab -e

 

增加一筆

50 * * * * /usr/sbin/logrotate /root/bind_log.conf --state /root/bind_log_state

 

參考資料

DNS Server 開啟 Log 記錄檔 - BIND

Linux中logrotate日誌輪詢操作總結

如何在Ubuntu 16.04上用Logrotate管理日志文件

:::

回上方浮動按鈕

萌典查詢

跑馬燈

  • 跑馬燈內容
  • 這是跑馬燈內容
  • 這真的是跑馬燈內容

精美選單

版面風格


(共 14 個樣板佈景)