压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

Squid服務日志分析

  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中修改。

  當代理服務器運行時,所有客戶提出的請求,以及Squid處理的結果都會被記錄在/var/log/squid/access.log文件里,使得access.log文件的增長速度很快,通常會mount一個比較大的磁盤作為存儲空間。

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

  2.典型Squid訪問日志分析

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

  

  對這條日志的分析見表1。

  

  結果/狀態碼 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等)不止這幾個??偟膩碚f,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時間戳轉換

 ?。?).Squid 時間戳(1356693954.014)看起來有點別扭,下面通過腳本將時間戳換算成我們認識的時間:

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

  

  經過Perl程序變化后的的時間直觀的顯示出來,便于查看。

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

  有時需要動態顯示squid日志的第3、8、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腳本使用簡單,速度快,報告詳細,免去手工分析的麻煩。分析功能包括:每小時流量、文件大小比例、文件擴展名比例、狀態碼比例、命中率比例等。其格式與流量統計報告分別如圖2、圖3所示。Scalar的下載地址是http://scalar.risk.az/scalar095/scalar.awk。

  

  5.圖形化日志分析工具

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

  

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

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

  

  圖 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網絡日志分析與流量監控》一書。

    文章來源:http://chenguang.blog.51cto.com/350944/1607385

上一篇:安卓防火墻 PS DroidWall

下一篇:基于openldap+Kerberos+google authenticator動態口令實現的運維跳板機