squid 日誌內容詳解
squid
0 Comments
squid 日誌內容詳解
cat /var/log/squid/access.log|gawk ‘{print $4}’|sort|uniq -c|sort -nr
93083 TCP_MISS/200
33858 TCP_IMS_HIT/304
13938 TCP_HIT/200
5920 TCP_REFRESH_HIT/304
4443 TCP_CLIENT_REFRESH_MISS/304
3263 TCP_MISS/304
3078 TCP_MEM_HIT/200
2842 TCP_REFRESH_HIT/200
2665 TCP_REFRESH_MISS/200
2603 TCP_MISS/302
2227 TCP_CLIENT_REFRESH_MISS/200
2098 TCP_MISS/500
1802 TCP_MISS/301
967 TCP_MISS/404
946 TCP_NEGATIVE_HIT/404
562 TCP_MISS/204
206 TCP_MISS/503
188 TCP_MISS/502
101 TCP_NEGATIVE_HIT/403
93 TCP_MISS/504
84 TCP_MISS/206
81 TCP_IMS_HIT/200
76 TCP_MISS/403
66 TCP_CLIENT_REFRESH_MISS/404
59 TCP_MISS/400
57 TCP_REFRESH_MISS/302
41 TCP_NEGATIVE_HIT/400
20 TCP_REFRESH_MISS/000
18 TCP_MISS/307
13 TCP_CLIENT_REFRESH_MISS/206
12 TCP_MISS/000
10 TCP_MISS/401
9 TCP_DENIED/400
8 TCP_MISS/202
7 TCP_SWAPFAIL_MISS/200
5 TCP_MISS/303
4 TCP_CLIENT_REFRESH_MISS/500
3 TCP_REFRESH_MISS/404
3 TCP_NEGATIVE_HIT/504
3 TCP_NEGATIVE_HIT/500
3 TCP_MEM_HIT/302
2 TCP_MISS/600
2 TCP_MEM_HIT/206
2 TCP_CLIENT_REFRESH_MISS/403
1 TCP_HIT/302
以上的一個命令可以用於分析Squid日誌,命令返回結果當中,如果看到很多的TCP_MEM_HIT,這表明該文件是從內存緩存讀取。其他返回顯示的解析如下:
TCP_HIT
Squid發現請求資源的貌似新鮮的拷貝,並將其立即發送到客戶端。
TCP_MISS
Squid沒有請求資源的cache拷貝。
TCP_REFERSH_HIT
Squid發現請求資源的貌似陳舊的拷貝,並發送確認請求到原始服務器。原始服務器返回304(未修改)響應,指示squid的拷貝仍舊是新鮮的。
TCP_REF_FAIL_HIT
Squid發現請求資源的貌似陳舊的拷貝,並發送確認請求到原始服務器。然而,原始服務器響應失敗,或者返回的響應Squid不能理解。在此情形下,squid發送現有cache拷貝(很可能是陳舊的)到客戶端。
TCP_REFRESH_MISS
Squid發現請求資源的貌似陳舊的拷貝,並發送確認請求到原始服務器。原始服務器響應新的內容,指示這個cache拷貝確實是陳舊的。
TCP_CLIENT_REFRESH_MISS
Squid發現了請求資源的拷貝,但客戶端的請求包含了Cache-Control: no-cache指令。Squid轉發客戶端的請求到原始服務器,強迫cache確認。
TCP_IMS_HIT
客戶端發送確認請求,Squid發現更近來的、貌似新鮮的請求資源的拷貝。Squid發送更新的內容到客戶端,而不聯係原始服務器。
TCP_SWAPFAIL_MISS
Squid發現請求資源的有效拷貝,但從磁盤裝載它失敗。這時squid發送請求到原始服務器,就如同這是個cache丟失一樣。
TCP_NEGATIVE_HIT
在對原始服務器的請求導致HTTP錯誤時,Squid也會cache這個響應。在短時間內對這些資源的重複請求,導致了否命中。 negative_ttl指令控製這些錯誤被cache的時間數量。請注意這些錯誤隻在內存cache,不會寫往磁盤。下列HTTP狀態碼可能導致否定 cache(也遵循於其他約束): 204, 305, 400, 403, 404, 405, 414, 500, 501, 502, 503, 504。
TCP_MEM_HIT
Squid在內存cache裏發現請求資源的有效拷貝,並將其立即發送到客戶端。注意這點並非精確的呈現了所有從內存服務的響應。例如,某些cache在內存裏,但要求確認的響應,會以TCP_REFRESH_HIT, TCP_REFRESH_MISS等形式記錄。
TCP_DENIED
因為http_access或http_reply_access規則,客戶端的請求被拒絕了。注意被http_access拒絕的請求在第9域的值是NONE/-,然而被http_reply_access拒絕的請求,在相應地方有一個有效值。
TCP_OFFLINE_HIT
當offline_mode激活時,Squid對任何cache響應返回cache命中,而不用考慮它的新鮮程度。
TCP_REDIRECT
重定向程序告訴Squid產生一個HTTP重定向到新的URI(見11.1節)。正常的,Squid不會記錄這些重定向。假如要這樣做,必須在編譯squid前,手工定義LOG_TCP_REDIRECTS預處理指令。
NONE
無分類的結果用於特定錯誤,例如無效主機名。
相應於ICP查詢,下列標簽可能出現在access.log文件的第四域。
UDP_HIT
Squid在cache裏發現請求資源的貌似新鮮的拷貝。
UDP_MISS
Squid沒有在cache裏發現請求資源的貌似新鮮的拷貝。假如同一目標通過HTTP請求,就可能是個cache丟失。請對比UDP_MISS_NOFETCH。
UDP_MISS_NOFETCH
跟UDP_MISS類似,不同的是這裏也指示了Squid不願去處理相應的HTTP請求。假如使用了-Y命令行選項,Squid在啟動並編譯其內存索引時,會返回這個標簽而不是UDP_MISS。
UDP_DENIED
因為icp_access規則,ICP查詢被拒絕。假如超過95%的到某客戶端的ICP響應是UDP_DENIED,並且客戶端數據庫激活了(見附錄A),Squid在1小時內,停止發送任何ICP響應到該客戶端。若這點發生,你也可在cache.log裏見到一個警告。
UDP_INVALID
Squid接受到無效查詢(例如截斷的消息、無效協議版本、URI裏的空格等)。Squid發送UDP_INVALID響應到客戶端。2010-02-12
開源技術
squid
time
0 Comments
Squid限製工作時間瀏覽開心網
今天,朋友來電詢問如何利用代理服務器禁止開心網。我將過程隨意的告訴了他,中午不久又給我一個消息。他說工作時間禁止登陸即可,中午時候可以任意的訪問開心網是否可以實現。這個其實也非常的簡單,順便在博客上也記錄一下:
在squid.conf適當位置添加以下參數:
acl WH time MTWHFA 09:00-12:00 13:30-18:00
acl DenyKaixin dstdomain www.kaixin.com www.kaixin001.com
http_access deny WH DenyKaixin
其中ACL的時間參數解析:
以上的方法對於用Squid限製工作時間上QQ,MSN,網頁遊戲均有效,關鍵在於dstdomain是否準確有效。
2010-02-12
開源技術
configure
squid
0 Comments
Squid編譯安裝參數
以下是我目前安裝squid所用的配置參數,性能方麵感覺還可以:
2.7版本:
./configure –prefix=/usr/local/squid –with-maxfd=65535 –disable-internal-dns –enable-async-io –enable-epoll –enable-arp-acl –with-large-files –enable-snmp –enable-storeio=aufs,ufs –enable-default-err-language=Simplify_Chinese –enable-err-languages=”Simplify_Chinese English”
配置參數解析:
–disable-internal-dns
該選項是禁用Squid內部DNS解釋,即不檢查/etc/hosts,直接運用/etc/resolc.conf中列出的DNS服務器的順序進行DNS解析,這樣有個問題是不能代理內部網段的服務器訪問。
–with-maxfd=65535
該選項在2.7版本中更換為–max_filedescriptors=65535
–enable-epoll
開啟epoll據說可以提升I/O性能,沒有實際感覺出來但也加上編譯
2010-02-12
開源技術
cacti
snmp
squid
0 Comments
Cacti監控Squid運行情況
1.監控squid需要在編譯安裝時增加以下參數:
–enable-snmp
2.修改squid配置文件,啟用snmp:
acl CactiServer src cacti_ip_address
acl SNMP snmp_community public
snmp_port 3401
snmp_access allow SNMP CactiServer
snmp_access deny all
配置完成後需要重新啟動Squid程序或重新刷新配置。
3.檢查是否配置成功:
yum install -y net-snmp-utils
snmpwalk -v 1 -c public 127.0.0.1:3401 .1.3.6.1.4.1.3495.1.3.2.1.4
4.下載與配置cacti模板:
wget https://forums.cacti.net/download.php?id=79
unzip SquidStats-0.1.zip
mv webcache_squid_* /var/www/cacti/resource/snmp_queries/
chmod 777 /var/www/cacti/resource/snmp_queries/webcache_squid_*
登陸到cacti管理控製台,通過import templates導入cacti_host_template_webcache_squid_server_snmp.xml文件。
5.添加設備:
在“Devices”選項中添加新主機,注意“Host Template”選擇”squid sever”
就是導入進的那個.並注意填寫以下內容:
SNMP Community = public
SNMP Version = 1
SNMP Port = 3401
以上,完成!
2010-02-12
開源技術
squid
version
0 Comments
Squid版本區別
Squid 2.5:比較少見到有在生產中運行,沒有epoll支持,內存管理不穩定常出現宕機。
squid 2.6:性能與穩定較好,但隻支持http 1.1,具備epoll支持。
squid 2.7:推薦采用2.7版本,具備2.6的穩定性,同時具備Squid 3.0版本特性。
Squid 3.0:不建議。C++語言重架構,性能與穩定性遠不如2.6版本或2.7版本。不過大型網站都在用,可能反向緩存加速功能強大點吧。
2010-02-12
開源技術
squid
time
0 Comments
Squid的ERROR MESSAGE時區問題
在Squid的錯誤或警告頁麵當中,底端的時間與實際時間有8小時的差距,平時看起來讓用戶感覺有些奇怪。Squid的ERROR MESSAGE默認的時間顯示的GMT時間,而非本地時間導致有時間差距。
解決方法
編輯Squid源文件src/errorpage.c,大概在60多行:
{
ERR_SQUID_SIGNATURE,
“\n<BR clear=\”all\”>\n”
“<HR noshade size=\”1px\”>\n”
“<ADDRESS>\n”
“Generated %T by %h (%s)\n”
“</ADDRESS>\n”
“</BODY></HTML>\n”
}
“Generated %T by %h (%s)\n” 修改為 “Generated %t by %h (%s)\n”即可!
最後更新:2017-01-04 22:34:34