squid日誌配置與輪詢

2021-09-09 01:34:17 字數 2693 閱讀 5240

squid日誌分類及引數

squid預設的log檔案非常多,其中最重要的log日誌有三個,分別為access.log、store.log、cache.log。三個日誌的記錄的內容如下:

access.log;客戶端使用**伺服器的記錄檔案store.log;儲存緩衝物件的狀態記錄檔案cache.log;cache的啟動以及各類狀態的記錄檔案

三個日誌的路徑可由cache_access_log,cache_store_log,cache_log三個引數在squid.conf裡定義。三個引數的用法如下:

#用法:cache_access_log路徑#說明:記錄目前**伺服器的活動情況包含所有的http請求,和icp查詢結果cache_access_log /var/log/squid/access.log;squid預設值#用法:cache_log路徑[none]#說明:此檔案記錄squid proxy啟動,關閉以及**伺服器系統的相關的資訊包括系統活動記錄cache_log /var/log/squid/cache.log;squid預設值#用法:cache_store_log路徑[none]#說明:此記錄檔案用來記錄緩衝物件的新增,刪除情況cache_store_log /var/log/squid/store.log 由於store.log的用處不大,一般可設定為:cache_store_log none,來降低日誌檔案占用的磁碟空間,這一點請特別注意。

access日誌輸出格式調整與日誌過濾

squid日誌預設定義好的幾種日誌格式如下,不需要重新定義(具體每個引數可以參看官方說明):

squid access日誌預設是以毫秒為單位計的,而想要重新定義時,可以通過以下方式在squid.conf中定義並呼叫:

注: 上面的日誌格式是在不考慮,squid前段有nginx或apache等前端的情況下記錄的日誌。而當squid前端有nginx等web伺服器時,會記 錄不到客戶的真實ip,這時候就需要通過將%>a替換為 %>h ,注意,前提是nginx在前端做了x-real-ip  header設定。就可以記錄來訪者的真實ip了。更改後的日誌格式如下:

注意在logformat格式設定有問題時,通過squid -k parse檢查配置檔案或利用squid -k reconfigure過載錯誤的配置檔案,都會出現下面的提示(此時,只需要根據官方引數提示,重新設定即可):

除了定義squid日誌的格式之外,還可以通過使用acl規則,很方便的對日誌的內容進行過濾,如下面兩例。

1、根據網域名稱過濾設定日誌

acl 361way_access_log url_regex ^ log_access allow 361way_access_log access_log /log/access/361way-access.log combined

以上配置是將blog.361way.com這個網域名稱的訪問日誌,單獨寫到乙個日誌檔案中。

2、根據檔案型別進行過濾

acl nolog urlpath_regex -i .css .js .swf access_log /var/log/squid/access.log common !nolog

以上配置中會在日誌中不再記錄css、js、swf三種格式的訪問記錄。

日誌輪詢

上 面提到三種日誌,都可以通過執行squid -k rotate命令進行輪詢。 每當執行此命令時squid會根據squid.conf裡面的logfile_rotate命令所定義的值,為輪換除 的檔名編號,預設是log_rotate 10。 logfile_rotat命令的用法如下:

#用法:logfile_rotate 0~10logfile_rotate 10

如果設定為 0即永不做輪詢。如果設定為log_rotate 10 ,以access.log為例,表示輪換出來的就log檔名依次為:access.log、access.log.0 ~access.log.9其 11個檔案。每執行一次squid -k rotate命令,三個日誌檔案都會以此類推往下輪詢。這個引數,建議小型的網路設定為10,中型網路設定為4-5;而大型的網路設定為1-2 。對大型的網路而言,應該每天做一次log檔案輪換,輪換出的檔案不需要保留長時間,只需要保留1-2天的log就可以了。

要注意的是,並不是調整這個引數重新啟動squid就可以做log檔案輪換了,還需要執行squid -k rotate 命令才行。不過在squid 3.1以後的版本中,該引數對cache.log檔案不再有用,cache.log可以通過debug_options引數設定自動輪詢。具體可以參看官方的logfile_rotate的用法。而想讓其定其自動輪詢的話,可能配合crontab命令進行。具體如下: 

每天清晨3:30 crondeamon就會自動執行輪換命令了。

Squid平衡輪詢

當多個客戶訪問一台伺服器時,伺服器會因為壓力過大宕機而對我們企業造成財產和利益的損失,我們可以通過設定squid排程器來緩解壓力實現負載均衡,客戶端只訪問乙個網域名稱,而squid排程器可以合理的為伺服器分配使用者,當第乙個使用者訪問時,去找第一台apache伺服器,當第二個使用者訪問時,去找第二台...

Apache日誌輪詢配置詳解

apache日誌輪詢配置詳解 隨著伺服器的不斷執行,日誌檔案會越來越大,如果不小心把日誌檔案放到了 var之類位置,日誌檔案可能寫滿分區,從而導致伺服器被迫停止執行。這種事情確實曾經發生過。為了防止出現這種問題,可以在日誌檔案變得太大之前把它們移到其他具有足夠空間的位置。這可以通過幾種方法實現。某些...

logrotate日誌輪詢

在任何作業系統中,日誌的作用不言而喻。下面來講下關於linux系統中的日誌輪詢。logrotate是linux中的日誌輪詢工具,主要有兩個配置檔案 etc logrotate.conf和 etc logrotate.d,其中 etc logrotate.d在主配置檔案中已經定義好,如果單獨為某個服務...