Squid服務日誌分析

Squid服務日誌分析html

   Apache 和 Squid 是兩種著名的代理緩存軟件,但Squid 較 Apache 而言是專門的代理緩存服務器軟件,其代理緩存的功能強大,支持 HTTP/1.1 協議,其緩存對象也較多;而且 Squid 的緩存管理模塊和訪問控制模塊功能很強大。它們有必定的類似之處,因此在分析完Apache日誌後再看Squid日誌就容易多了。緩存

 

1 Squid日誌分類

 

Squid的日誌系統相對比較完善,經常使用日誌分爲以下兩個:分別是access.log 和cache.log。服務器

做用:網絡

  access.log;客戶端使用代理服務器的記錄文件,訪問日誌位置在squid.conf中修改;併發

  cache.log; 緩存在運行時的狀態信息和調試信息,通常狀況下容量不大。緩存日誌位置在squid.conf中修改。ide

當代理服務器運行時,全部客戶提出的請求,以及Squid處理的結果都會被記錄在/var/log/squid/access.log文件裏,使得access.log文件的增加速度很快,一般會mount一個比較大的磁盤做爲存儲空間。工具

注意:squid下還有一類日誌,store.log它記錄每一個進入和離開緩存的目標信息,參考價值不大,這裏不作介紹。ui

 

2典型Squid訪問日誌分析

 

下面給出一條典型的Squid訪問日誌:google

wKiom1TB5JrgyXlYAAE6JX1EUlw104.jpg

對這條日誌的分析見表1。url

wKiom1TB5LeSPfsYAAL1UWvRqA8178.jpg

結果/狀態碼 TCP_MISS 表示沒有命中緩存,TCP_HIT  表示命中。

下面經過一個實用的Shell命令獲取比較詳細的命中狀況:

# cat access.log|awk '{print$4}'|sort|uniq -c|sort -nr

     33 TCP_MISS/200

      2 TCP_MISS/302

      2 TCP_MEM_HIT/302

      1 TCP_MISS/503

固然狀態信息(TCP_MISS、TCP_MEM等)不止這幾個。總的來講,HIT表示命中,而TCP_MISS表示未命中。

下列標籤可能出如今access.log文件的第四個域。

  TCP_HIT :Squid發現請求資源最新的拷貝,並當即發送到客戶端。

  TCP_MISS :Squid沒有請求資源的cache拷貝。

  TCP_REFERSH_HIT :Squid發現請求資源舊拷貝,併發送確認請求到原始服務器。

  TCP_IMS_HIT:客戶端發送確認請求,Squid發送更新的內容到客戶端,而不聯繫原始服務器。

  TCP_NEGATIVE_HIT:在對原始服務器的請求致使HTTP錯誤時,Squid會緩存這個響應。在短期內對這些資源的重複請求,致使了是否命中。negative_ttl指令控制這些錯誤被Cache的時間數量。

  TCP_MEM_HIT :Squid在內存cache裏發現請求資源的有效拷貝,並將其當即發送到客戶端。

  TCP_DENIED :由於http_access或http_reply_access規則,客戶端的請求被拒絕了。

  • TCP_REDIRECT :重定向程序告訴Squid產生一個HTTP重定向到新的URI,這一功能比較常見,例如能夠用來實現訪問控制、移除廣告、本地鏡像等,用個實例來講,某個用戶請求http://www.example.com/a.htm重定向程序將請求改變成另外一個URI,http://www.example.com/b.htm。如下是重定向日誌的實例:

TCP_REDIRECT/301 277 GET http://redirector.you.com/videoplayback?3257|0|3|8 HIER_NONE comp3

 

3 Squid時間戳轉換

 

(1).Squid 時間戳(1356693954.014)看起來有點彆扭,下面經過腳本將時間戳換算成咱們認識的時間:

#perl -pe's/^\d+\.\d+/localtime($&)/e;' access.log

wKioL1TB5c-h7ws6AAKrMMBkKLg730.jpg

通過Perl程序變化後的的時間直觀的顯示出來,便於查看。

 

(2).將Squid輸出日誌格式變形的腳本

   有時須要動態顯示squid日誌的第三、八、7列內容,以便更符合咱們平常瀏覽習慣,就可使用以下命令:

# tail -f /var/log/squid/access.log |awk'{print$3 "" $8""$7}'

192.168.150.148-http://safebrowsing-cache.google.com/safebrowsing/rd/ChFnb29nLXBoaXNoLXNoYXZhchAAGMPiDyDM4g8yBkPxAwD_Aw

192.168.150.148-http://safebrowsing-cache.google.com/safebrowsing/rd/ChFnb29nLXBoaXNoLXNoYXZhchAAGM3iDyDg4g8qB1DxAwD__wEyBU3xAwAH

192.168.150.148-http://en-us.fxfeeds.mozilla.com/en-US/firefox/headlines.xml

192.168.150.148-http://fxfeeds.mozilla.com/firefox/headlines.xml

192.168.150.148-http://newsrss.bbc.co.uk/rss/newsonline_world_edition/front_page/rss.xm

(3).能夠將一個squid日誌記錄行分割成多個字段,使用參數傳回須要的字段。

# tail -f/var/log/squid/access.log | awk '{print$3 " " $8 " " $7}'

這裏選擇的是客戶IP及取回內容字段,顯示以下:

192.168.150.146-http://jump.qq.com/clienturl_simp_80192.168.150.147- http://mm.china.com/zh_cn/images/tit_liangzhuang.gif192.168.150.148 -http://ly.zzip.com.cn/movie/list.aspx?

(4).還能夠根據日誌分析緩存命中率:

#cat access.log|awk ‘{print$4}’|sort|uniq -c|sort -nr

9568 TCP_IMS_HIT/304

6313 TCP_HIT/200

2133 TCP_MISS/200

1568 TCP_MISS/206

587 TCP_MEM_HIT/200

 

4 Squid日誌位置:

 

Squid的配置文件位於/etc/squid/squid.conf,可在這個文件加入以下一行內容,以定義日誌文件的存儲位置。

Access_log/var/log/squid/access.log squid

下面以RHEL5爲例,/var/log/squid/access.log

除了命令行方式之外,採用Squid報告分析產生器(SARG)也是一種更直觀的方法。

 

1)使用Scalar腳本分析squid日誌

scalar腳本使用簡單,速度快,報告詳細,免去手工分析的麻煩。分析功能包括:每小時流量、文件大小比例、文件擴展名比例、狀態碼比例、命中率比例等。其格式與流量統計報告分別如圖二、圖3所示。Scalar的下載地址是http://scalar.risk.az/scalar095/scalar.awk

wKioL1TB5kDAmubfAAdT4BpQxpw770.jpg

 

5 圖形化日誌分析工具

 

    SARG是一款Squid日誌分析工具,它採用html格式輸出,詳細列出了每一位用戶訪問Internet的站點信息、時間佔用信息、排名、鏈接次數及訪問量等。其效果如圖4所示。

wKiom1TB5cGhwMCjAAQIKIPXkE8673.jpg

圖4 Webmin下調用SARG輸出Squid日誌

 

     Firewall Analyzer是另外一個分析Squid日誌工具,如圖5所示。圖中顯示了Squid Cache的使用狀況,TCP_HIT表示發現請求資源的拷貝,而TCP_MISS表示沒有請求資源的緩存拷貝,TCP_MISS達到了76.79%,正常狀況下TCP_HIT的數值要遠大於TCP_MISS的值若是反過來那麼說明代理服務器出現故障應當即檢查。

wKioL1TB5sPjtGqrAAVvNlajUHE137.jpg

圖 5用FirewallAnalyzer分析Squid日誌

在access.log文件當前路徑下輸入如下命令也能夠輸出統計信息:

#cat access.log|gawk ‘{print $4}’|sort|uniq -c|sort-nr

     此外,還有幾款squid專用日誌分析工具也比較易用,例如LightSquid、Calamari、Squid-Graph以及Squid Analyzer。不過它們最近已不升級這裏就不作介紹,感興趣的讀者能夠去網上查閱資料。最後,統一利用OSSIM分析日誌你們能夠參閱《UNIX/Linux網絡日誌分析與流量監控》一書。

相關文章
相關標籤/搜索