iis8做網站日誌統計工具例子

來源:互聯網
上載者:User

 用什麼工具做統計呢?

有的人可能想到做中轉URL,比如: 點擊廣告AV的時候跳轉到一個 ad.php, 然後帶上些參數, 就成了: ad.php?id=123 等等參數, 然後入庫, 但這樣的資料是龐大的, 你的庫的主力完全不用浪費在這上面...

來我們看下百度是怎麼做的:

這是百度廣告的某引用頁面, 他是通過訪問一個圖片, 然後帶了一堆連妹子都看不懂的參數, 這樣就能統計嗎?

經過項目中的測試和研究, 發現是行的, 他的思路是這樣的:

發送請求(不管是怎麼發的) -> 然後 iis/nginx/ 阿帕奇會記錄下來這個URL -> 下載/組建記錄檔檔案 -> 後端/js處理這個檔案 -> 產生要看的資料(可畫成圖表, 表柱啥的) 你信嗎?
實現的過程

注: 此過程為iis8.0環境, nginx,阿帕奇等思路一樣

1, 開啟一個新域的iis日誌, 我這裡是W3C 類型的日誌, 具體選哪個都一樣,只是看自己要的是什麼資料了, 然後注意 計劃那裡, 那裡選的東東直接影響著你的日誌緩衝, 具體自測;

ps:為什麼用新域, 因為這個記錄檔是針對網域名稱產生的, 如果你在老域上可能會產生很多很多記錄檔, 比如你的www.111cn.net 有100萬個資源,那麼這個記錄檔是非常龐大的, 不不如啟用一個 click.111cn.net /log.gif 來做, 你不妨去看看百度.

2, 訪問這個域的url吧, 如: http://127.0.0.1/log.gif?type=jserror&uid=&ref=http%3A%2F%2Fwww.111cn.net %2Fhtml%2Fxieliang.html&content=%E7%99%BB%E5%BD%95%E5%BC%82%E6%AD%A5%E6%8A%A5%E9%94%99,%E9%94%99%E8%AF%AF%E7%B1%BB%E5%9E%8B%E4%B8%BAjson%E8%A7%A3%E6%9E%90%E5%A4%B1%E8%B4%A5&r=100000 , 你可以多訪問點, 然後坐等組建記錄檔吧!

3, 開啟記錄檔夾,(不要說你不知道), 不出意外的話會產生一個這樣的東東:

4, 少年, 開啟他看看吧...

如圖: 紅框的東西是我們訪問的, 而綠框裡的東西不是我們想要的, 但她確實占空間了, 這也是上面說為啥要盡量新域...

好吧, 有這些資料了, 我們還愁沒法用嗎?

5, 寫後端讀取她, 我是用php測試的, 當然你完全可以用js

 代碼如下 複製代碼

<?php
//統計的圖片名
define('URLNAME', 'log.gif');

//類比抓log記錄檔
$content = file_get_contents("log.txt");


//查到的每行
$arr = preg_split('/[\n]/', $content);

//行內包括 目標 URLNAME 的
$result = array();

foreach ($arr as $key => $value) {
    //如果這行包含靶心圖表片
    if(strpos($value, URLNAME) !== FALSE){
        $temp = array();
        //追加一個all為當前行
        $temp['all'] = $value;


        //查時間
        preg_match('/^(?:[\w\-])+\s(?:[^\s]+?)\s/', $value, $temp2);
        if(!empty($temp2)){
            $temp['time'] = $temp2[0];
        }

        //查參數
        preg_match('/'.URLNAME.'\s+(\S+?)\s/', $value, $temp2);
        if(!empty($temp2)){
            $temp['param'] = array();
            $temp2 = explode('&', $temp2[1]);
            for ($i=0; $i < count($temp2); $i++) {
                $temp3 = explode('=', $temp2[$i]);
                if(!empty($temp3)){
                    $temp['param'][$temp3[0]] = urldecode($temp3[1]);
                }
            }

        }


        $result[] = $temp;
    }
}

echo json_encode(array('data'=>$result));

6, 看下成果吧

圖片做統計的優勢


    小巧, 快速, 因為這個圖只有一點點, 但一定要存在, 不如就是404, 雖然說404也能抓取到, 但404本身是個bug
    不用庫, 全是web server本身的功能, 所以她要強大
    應用廣泛, 比如 自己定一些參數, type=ad, type=jserror, type=.... 到時候判斷這個可以分類
    要比後端跳轉快
    前端應用簡單... 你只需 new Image然後src你懂的...
    自訂強, 自己根據需要定製參數.


todo

目前我就想到這了, 至於怎麼很好的拿iis的日誌這還有待研究, 還有就是 怎麼很好的 分時間段來畫圖或者讀... 當然可能在地鐵的某個角落我就能想到解決方案!

ok, 到此為止, 困了, 下次再試著分析 "百度廣告" 的串連方式:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.