<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    于吉吉的技術博客

    建造高性能門戶網

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      65 隨筆 :: 6 文章 :: 149 評論 :: 0 Trackbacks
    上次因工作的需求對一臺apache的log做了一次整體的分析,所以順便也對apache的日志分析做下簡單的介紹,主要參考apache官網的Log Files,手冊參照 http://httpd.apache.org/docs/2.2/logs.html

    一.日志分析
    如果apache的安裝時采用默認的配置,那么在/logs目錄下就會生成兩個文件,分別是access_log和error_log
    1.access_log
    access_log為訪問日志,記錄所有對apache服務器進行請求的訪問,它的位置和內容由CustomLog指令控制,LogFormat指令可以用來簡化該日志的內容和格式
    例如,我的其中一臺服務器配置如下

    CustomLog "| /usr/sbin/rotatelogs /var/log/apache2/%Y_%m_%d_other_vhosts_access.log 86400 480" vhost_combined

    -rw-r--r-- 1 root root 22310750 12-05 23:59 2010_12_05_other_vhosts_access.log
    -rw-r--r-- 1 root root 26873180 12-06 23:59 2010_12_06_other_vhosts_access.log
    -rw-r--r-- 1 root root 26810003 12-07 23:59 2010_12_07_other_vhosts_access.log
    -rw-r--r-- 1 root root 24530219 12-08 23:59 2010_12_08_other_vhosts_access.log
    -rw-r--r-- 1 root root 24536681 12-09 23:59 2010_12_09_other_vhosts_access.log
    -rw-r--r-- 1 root root 14003409 12-10 14:57 2010_12_10_other_vhosts_access.log


    通過CustomLog指令,每天一天生成一個獨立的日志文件,同時也寫了定時器將一周前的日志文件全部清除,這樣可以顯得更清晰,既可以分離每一天的日志又可以清除一定時間以前的日志通過制,LogFormat定義日志的記錄格式

    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedproxy
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent

    隨意的tail一個access_log文件,下面是一條經典的訪問記錄

    218.19.140.242 - - [10/Dec/2010:09:31:17 +0800] "GET /query/trendxml/district/todayreturn/month/2009-12-14/2010-12-09/haizhu_tianhe.xml HTTP/1.1" 200 1933 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)"

    一共是有9項,將他們一一拆開

    218.19.140.242
    -
    -
    [10/Dec/2010:09:31:17 +0800]
    "GET /query/trendxml/district/todayreturn/month/2009-12-14/2010-12-09/haizhu_tianhe.xml HTTP/1.1"
    200
    1933
    "-"
    "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)"

    1) 218.19.140.242 這是一個請求到apache服務器的客戶端ip,默認的情況下,第一項信息只是遠程主機的ip地址,但我們如果需要apache查出主機的名字,可以將 HostnameLookups設置為on,但這種做法是不推薦使用,因為它大大的減緩了服務器.另外這里的ip地址不一定就是客戶主機的ip地址,如果 客戶端使用了代理服務器,那么這里的ip就是代理服務器的地址,而不是原機.

    2) - 這一項是空白,使用"-"來代替,這個位置是用于標注訪問者的標示,這個信息是由identd的客戶端存在,除非IdentityCheck為on,非則apache是不會去獲取該部分的信息(ps:不太理解,基本上這一項都是為空,奉上原文)
    The "hyphen" in the output indicates that the requested piece of information is not available. In this case, the information that is not available is the RFC 1413 identity of the client determined by identd on the clients machine. This information is highly unreliable and should almost never be used except on tightly controlled internal networks. Apache httpd will not even attempt to determine this information unless IdentityCheck is set to On.

    3) - 這一項又是為空白,不過這項是用戶記錄用戶HTTP的身份驗證,如果某些網站要求用戶進行身份雁陣,那么這一項就是記錄用戶的身份信息

    4) [10/Dec/2010:09:31:17 +0800] 第四項是記錄請求的時間,格式為[day/month/year:hour:minute:second zone],最后的+0800表示服務器所處的時區為東八區

    5) "GET /..haizhu_tianhe.xml HTTP/1.1" 這一項整個記錄中最有用的信息,首先,它告訴我們的服務器收到的是一個GET請求,其次,是客戶端請求的資源路徑,第三,客戶端使用的協議時HTTP/1.1,整個格式為"%m %U%q %H",即"請求方法/訪問路徑/協議"

    6) 200 這是一個狀態碼,由服務器端發送回客戶端,它告訴我們客戶端的請求是否成功,或者是重定向,或者是碰到了什么樣的錯誤,這項值為200,表示服務器已經成 功的響應了客戶端的請求,一般來說,這項值以2開頭的表示請求成功,以3開頭的表示重定向,以4開頭的標示客戶端存在某些的錯誤,以5開頭的標示服務器端 存在某些錯誤,詳細的可以參見 HTTP specification (RFC2616 section 10).[http://www.w3.org/Protocols/rfc2616/rfc2616.txt]

    7) 1933 這項表示服務器向客戶端發送了多少的字節,在日志分析統計的時侯,把這些字節加起來就可以得知服務器在某點時間內總的發送數據量是多少

    8) - 暫不知

    9) "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)" 這項主要記錄客戶端的瀏覽器信息





    2.error_log
    error_log為錯誤日志,記錄下任何錯誤的處理請求,它的位置和內容由ErrorLog指令控制,通常服務器出現什么錯誤,首先對它進行查閱,是一個最重要的日志文件

    tail error_log,隨意摘取一個記錄

    [Fri Dec 10 15:03:59 2010] [error] [client 218.19.140.242] File does not exist: /home/htmlfile/tradedata/favicon.ico

    同樣也是分為幾個項

    [Fri Dec 10 15:03:59 2010]
    [error]
    [client 218.19.140.242]
    File does not exist: /home/htmlfile/tradedata/favicon.ico

    1) [Fri Dec 10 15:03:59 2010] 記錄錯誤發生的時間,注意,它跟我們上面access_log記錄的時間格式是不同的

    2) [error] 這一項為錯誤的級別,根據LogLevel指令來控制錯誤的類別,上面的404是屬于error級別

    3) [client 218.19.140.242] 記錄客戶端的ip地址

    4) File does not exist: /home/htmlfile/tradedata/favicon.ico 這一項首先對錯誤進行了描述,例如客戶端訪問一個不存在或路徑錯誤的文件,就會給出404的提示錯誤



    二.實用的日志分析腳本
    了解日志的各種定義后,這里分享一下從網上淘來的一些對日志分析的腳本

    1.查看apache的進程數
    ps -aux | grep httpd | wc -l

    2.分析日志查看當天的ip連接數
    cat default-access_log | grep "10/Dec/2010" | awk '{print $2}' | sort | uniq -c | sort -nr

    3.查看指定的ip在當天究竟訪問了什么url
    cat default-access_log | grep "10/Dec/2010" | grep "218.19.140.242" | awk '{print $7}' | sort | uniq -c | sort -nr

    4.查看當天訪問排行前10的url
    cat default-access_log | grep "10/Dec/2010" | awk '{print $7}' | sort | uniq -c | sort -nr | head -n 10

    5.看到指定的ip究竟干了什么
    cat default-access_log | grep 218.19.140.242 | awk '{print $1"\t"$8}' | sort | uniq -c | sort -nr | less

    6.查看訪問次數最多的幾個分鐘(找到熱點)
    awk '{print $4}' default-access_log |cut -c 14-18|sort|uniq -c|sort -nr|head



    三.使用awstats自動分析日志
    當然啦,如果想最簡單和最直觀的分析日志還是用工具,現在網上較流行的工具是awstats,一個基于perl的web日志分析工具,功能很強大也支持IIS等服務器
    下載地址 http://awstats.sourceforge.net
    安裝配置見 <安裝配置整理之 awstats>

    簡單的界面






    ----------------------------------------

    by 陳于喆
    QQ:34174409
    Mail: dongbule@163.com


    posted on 2010-12-10 17:52 陳于喆 閱讀(12485) 評論(3)  編輯  收藏 所屬分類: linux

    評論

    # re: apache日志分析簡介 2012-03-28 10:05 萬里天
    不錯 謝謝您的分享  回復  更多評論
      

    # re: apache日志分析簡介 2013-10-13 11:38 劉昌盛
    很不錯的技術文摘。。。。  回復  更多評論
      

    # re: apache日志分析簡介 2014-07-22 11:38 seo
    無法下載,域名沒解析啊  回復  更多評論
      

    主站蜘蛛池模板: 午夜私人影院免费体验区| 亚洲综合免费视频| 亚洲AⅤ无码一区二区三区在线 | 男女一进一出抽搐免费视频 | 国产成人啪精品视频免费网| 亚洲永久在线观看| 毛片免费在线视频| 亚洲女子高潮不断爆白浆| 日韩中文无码有码免费视频 | 久久久无码精品亚洲日韩按摩| 久久久久国产精品免费网站| 久久夜色精品国产噜噜亚洲AV| 亚洲视频免费在线看| 亚洲日韩乱码久久久久久| A在线观看免费网站大全| 亚洲人成网站18禁止| 亚洲?V无码成人精品区日韩 | 四虎免费影院ww4164h| 亚洲一级高清在线中文字幕| 噼里啪啦电影在线观看免费高清| 亚洲熟妇AV一区二区三区浪潮 | 日韩精品视频免费网址| 无码人妻一区二区三区免费视频| 亚洲熟妇无码乱子AV电影| 久久国产色AV免费观看| 亚洲无人区码一二三码区别图片 | 亚洲国产精品国产自在在线| 在线观看免费视频一区| 亚洲成人免费网址| 免费国内精品久久久久影院| 国产成人AV免费观看| 亚洲自国产拍揄拍| 亚洲国产天堂久久久久久| 免费一级毛片无毒不卡| 亚洲最大中文字幕无码网站 | 色天使亚洲综合一区二区| 亚洲精品国产精品乱码不99| 国产在线a免费观看| eeuss免费天堂影院| 亚洲AV成人噜噜无码网站| 久久精品亚洲乱码伦伦中文|