多奇 IT 部落格

記錄著多奇數位在工作中對資訊技術的心得筆記

由於公司管理的一台web server流量不太穩定,

不確定是異常的流量,還是那天真的沒什麼人瀏覽網站

image

可以發現2015年4月03日的參觀次數、網頁數、點擊數、位元組都特別少,

這個數據是由AWStats分析的結果,因此我想利用真正的IIS Log來印證當天的流量有沒有異常。



Log Parser這個工具的出現非常便捷,

一般傳統的log檔又臭又長,想統計個資訊可能要耗費大量的時間

使用Log Parser,就像在使用SQL語法一樣,

下個SELECT語法就可以兜出你想要的資訊



  1. 下載Log Parser 2.2:
    https://www.microsoft.com/en-us/download/details.aspx?id=24659
  2. 安裝非常簡單,只要雙擊安裝程式即可。
  3. 接著打開Log Parser 2.2工具:
    image
  4. 打開來就是命令提示字元,就可以在這邊下指令,撈想要呈現的Log資料。
    例如:我想要知道我的log檔有什麼欄位,就可以搭配TOP 1的語法

    LogParser “SELECT TOP 1 * FROM log檔路徑\*.log” –i:w3c –o:csv

    ※-i:w3c代表我的log輸入檔是w3c格式
    ※-o:csv代表我要輸出的結果格式為csv檔(以逗號隔開的結果)
    image

    補充:你可以在
    這裡看到這些欄位名稱代表的意思。
  5. 接著就是進階一點的用法,我想要統計位元組總和(04/03 8:00 ~ 04/04 8:00)

    先挑出20150403早上8:00以後的數據:(1048576=1024*1024,我把Bytes/1048576=MB)

    LogParser “SELECT TO_STRING(TO_TIMESTAMP(DATE, TIME),’MM-dd’) as Day,
    div(sum(cs-bytes),1048576) as INCOMING(K),
    div(sum(sc-bytes),1048576) as OUTGOING(K)
    from 路徑\u_ex150403.log
    WHERE TIME >= '08:00:00' GROUP BY Day”  –i:w3c –o:csv


    image



    再挑出20150404早上8:00以前的數據:
    LogParser “SELECT TO_STRING(TO_TIMESTAMP(DATE, TIME),’MM-dd’) as Day,
    div(sum(cs-bytes),1048576) as INCOMING(K),
    div(sum(sc-bytes),1048576) as OUTGOING(K)
    from 路徑\u_ex150404.log
    WHERE TIME <= '08:00:00' GROUP BY Day”  –i:w3c –o:csv


    image 


  6. 最後就可以利用兩個天數的資料相加去做加總,
    看要分析incoming(輸入server的流量)或是outgoing(server輸出的流量)都可以。

    Question:為什麼是抓04/03 8:00 ~ 04/04 8:00的流量?
    Answer:因為AWStats預設是使用英國格林威治的時間(GMT+0)統計流量,
    而台灣是GMT+8,所以要抓04/03 8:00~04/04 8:00的流量才會一致。


 

※後記「理論上」這個作法應該是最土法煉鋼的,可是卻跟AWStats沒有一天的數據是一致的。

我猜想AWStats可能有特殊的過濾方法,把重複點擊的資料給篩選掉了(亂猜XD)

有空再來看看AWStats是怎麼運作的,應該就可以知道為什麼不一樣了Q_Q


參考資料:

 

留言與評論


本篇文章的留言功能已關閉!