麻豆做爰免费观看-日本熟妇一区二区三区-欧美午夜精品一区二区-xxxxx国产-精品欧美日韩-五月天黄色小说-亚洲熟妇一区-jizz国产视频-国产91九色-www好男人-国产精品久久久免费-九九热精彩视频-www..com国产-午夜簧片-欧美一区中文字幕-在线观看亚洲一区二区-一级少妇精品久久久久久久-www.欧美国产-日韩欧美综合视频-成人性视频免费网站

027-81331413

如何進行網站日志分析

發布時間:2020-11-24 瀏覽:2284

  日志在計算機系統中是一個非常廣泛的概念,任何程序都有可能輸出日志:操作系統內核、各種應用服務器等等。日志的內容、規模和用途也各不相同,很難一概而論。

  本文討論的日志處理方法中的日志,僅指Web日志。其實并沒有精確的定義,可能包括但不限于各種前端Web服務器——apache、lighttpd、tomcat等產生的用戶訪問日志,以及各種Web應用程序自己輸出的日志。

  在Web日志中,每條日志通常代表著用戶的一次訪問行為,例如下面就是一條典型的apache日志:

  211.87.152.44 – - [18/Mar/2005:12:21:42 +0800] “GET / HTTP/1.1″ 200 899 “http://www.baidu.com/” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon)”

  從上面這條日志中,我們可以得到很多有用的信息,例如訪問者的IP、訪問的時間、訪問的目標網頁、來源的地址以及訪問者所使用的客戶端的UserAgent信息等。如果需要更多的信息,則要用其它手段去獲取:例如想得到用戶屏幕的分辨率,一般需要使用js代碼單獨發送請求;而如果想得到諸如用戶訪問的具體新聞標題等信息,則可能需要Web應用程序在自己的代碼里輸出。

  為什么要分析日志

  毫無疑問,Web日志中包含了大量人們——主要是產品分析人員會感興趣的信息,最簡單的,我們可以從中獲取網站每類頁面的PV值(PageView,頁面訪問量)、獨立IP數(即去重之后的IP數量)等;稍微復雜一些的,可以計算得出用戶所檢索的關鍵詞排行榜、用戶停留時間最高的頁面等;更復雜的,構建廣告點擊模型、分析用戶行為特征等等。

  既然這些數據是如此的有用,那么當然已經有無數現成的工具可以幫助我們來分析它們,例如awstats、Webalizer,都是專門用于統計分析Web服務器日志的免費程序。

  另外還有一類產品,它們不分析直接日志,而是通過讓用戶在頁面中嵌入js代碼的方式來直接進行數據統計,或者說我們可以認為它是直接讓日志輸出到了它們的服務器。典型的代表產品——大名鼎鼎的Google Analytics,另外還有國內的cnzz、百度統計等。

  很多人可能會說,既然如此,我們為什么還需要自己來分析日志,有必要嗎?當然有。我們的用戶(產品分析人員)需求是無窮盡的,上面說的這幾類工具雖然很好很強大,但顯然沒辦法滿足全部的需求。

  無論是本地分析的工具,還是在線的分析服務,它們雖然提很豐富的的統計分析功能,可以做一定程度的配置,但是依然很有限的。要進行稍復雜點的分析,或者要做基于日志的數據挖掘,依然需要自己來完成。

  另外絕大多數日志分析工具都是只能用于單機的,數據量稍大就沒轍了。同時那些提供在線分析的服務對于單個站點通常也都有最大流量的限制——這是很容易理解的,他們也需要考慮服務器的負載。

  所以,很多時候還是得靠自己。

  怎么進行日志分析

  這并不是一個簡單的問題。即使我們把“日志”限定為Web日志,依然包含了成千上萬種可能的格式和數據,而是“分析”更是難以定義,也許是簡單的統計值的計算,也許是復雜的數據挖掘算法。

  下面并不打算討論這些復雜的問題,而只是籠統的討論如何構建進行日志分析工作的基礎。有了這些基礎會讓基于日志的簡單統計分析變得很簡單,并讓復雜的分析挖掘等變得可行。

  少量數據的情況

  先考慮最簡單的情況,在數據規模比較小的時候,也許是幾十MB、幾百MB或者幾十GB,總之就是在單機處理尚能忍受的時候。一切都很好辦,現成的各種Unix/Linux工具——awk、grep、sort、join等都是日志分析的利器,如果僅僅是想知道某個頁面的PV,一個wc+grep就能搞定。如果有稍復雜的邏輯,那就使用各種腳本語言,尤其是perl,配合偉大的正則表達式,基本就可以解決所有的問題。

  例如,我們想從上面提到的apache日志中得到訪問量最高前100個IP,實現很簡單:

  cat logfile | awk ‘{a[$1]++} END {for(b in a) print b”\t”a[b]}’|sort -k2 -r|head -n 100

  不過當我們需要頻繁去分析日志的時候,上面的做法在一段時間之后可能就會讓我們頭疼如何進行各種日志文件、用于分析的腳本文件、crontab文件等等的維護,并且可能會存在大量重復的代碼來做數據格式的解析和清洗,這個時候也許就需要更合適的東西,比如——數據庫。

  當然,要使用數據庫來進行日志分析還是需要一些代價的,最主要的就是如何將各種異構的日志文件導入的數據庫中——這個過程通常稱為ETL(Extraction-Transformation-Loading)。幸好依然有各種現成的開源、免費的工具來幫助我們做這件事情,并且在日志種類不太多的時候,自己寫幾個簡單的腳本來完成這項工作也并不困難。例如可以將上面的日志去掉不必要的字段,然后導入如下的數據庫中:

  現在需要考慮一下用什么數據庫來存儲這些數據。MySQL是一個很經典的開源數據庫,它的傳統引擎(MyISAM或者InnoDB,行存儲)也許并不非常的適合日志數據的存儲,但是在小數據量的時候還是很夠用的。而且,在這方面現在已經有了更好的選擇,例如開源且免費的Infobright、Infinidb,都是專門為數據倉庫應用而進行了優化的數據引擎,采用列存儲,有良好的數據壓縮,處理幾百GB的數據基本上不是問題。

  使用數據庫的好處之一就是,偉大的SQL可以幫我們很簡單的完成絕大部分的統計分析工作——PV只需要SELECT+COUNT,計算搜索詞排行只需要SELECT+COUNT+GROUP+ORDER+LIMIT。此外,數據庫本身的結構化存儲模式也讓日志數據的管理變的更簡單,減少運維代價。

  同樣還是上面的那個例子,簡單的一個SQL就可以搞定:

  SELECT * FROM (SELECT ip, COUNT(*) AS ip_count FROM apache_log GROUP BY ip) a ORDER BY ip_count DESC LIMIT 100

  至于性能問題,數據庫的索引和各種優化機制通常會讓我們的統計分析工作變得更快,并且上面提到的Infobright和Infinidb都專門為類似SUM、COUNt之類的聚集應用做了優化。當然也不是絕對的會快,例如在數據庫中進行LIKE操作,通常會比grep一個文件還要慢很多。

  更進一步的,使用基于數據庫的存儲,可以很容易的進行OLAP(聯機分析處理)應用,從日志中挖掘價值會變的更加簡單。

  更多的數據怎么辦

  一個好的數據庫似乎會讓事情變的很簡單,但是別忘了前面提到的都是單機數據庫。一臺單機在存儲容量、并發性上毫無疑問都是有很大限制的。而日志數據的特點之一就是隨時間持續增長,并且由于很多分析過程往往需要歷史數據。短時間內的增長也許可以通過分庫、分表或者數據壓縮等來解決,不過很顯然并不是長久之計。

  想要徹底解決數據規模增長帶來的問題,很自然的會想到使用分布式技術,結合上面的結論,也許使用某個分布式數據庫是一個好選擇,那么對最終用戶就可以完全透明了。這個的確是很理想的情況,不過現實往往是殘酷的。

  首先,實現比較完美的分布式數據庫(受限于CAP原則)是一個非常復雜的問題,因此在這里并不像單機數據庫那樣,有那么多開源的好東西可以用,甚至于商用的也并不是太多。當然,也并非絕對,如果有錢,還是可以考慮一下Oracle RAC、Greenplum之類東西。

  其次,絕大多數分布式數據庫都是NoSQL的,所以想繼續用上SQL的那些優點基本上是沒指望,取而代之的都是一些簡單、難以使用的接口。單從這點看來,使用這些數據庫的價值已經降低很多了。

  所以,還是先現實一點,先退一步考慮如何解決的超大規模的日志的分析問題,而不是想如何讓它變的像在小數據規模時那樣簡單。單單想做到這點,目前看來并不是太難,并且依然有免費的午餐可以吃。

  Hadoop是偉大的Apache基金會下面的一套分布式系統,包括分布式文件系統(HDFS)、MapReduce計算框架、HBase等很多組件——這些基本都是Google的GFS/MapReduce/BigTable的克隆產品。

  Hadoop經過數年的發展,目前已經很成熟了,尤其是其中的HDFS和MapReduce計算框架組件。數百臺機器的集群已經被證明可以使用,可以承擔PB級別的數據。

  Hadoop項目中的HBase是一個按列存儲的NoSQL分布式數據庫,它提供的功能和接口都非常簡單,只能進行簡單的K-V查詢,因此并不直接適用于大多數日志分析應用。所以一般使用Hadoop來做日志分析,首先還是需要將日志存儲在HDFS中,然后再使用它提供的MapReduce API編寫日志分析程序。

  MapReduce是一種分布式編程模型,并不難學習,但是很顯然使用它來處理日志的代價依然遠大于單機腳本或者SQL。一個簡單的詞頻統計計算可能都需要上百代碼——SQL只需要一行,另外還有復雜的環境準備和啟動腳本。

  例如同樣還是上面的例子,實現就要復雜的多,通常需要兩輪MapReduce來完成。首先要在第一輪的mapper中計算部分ip的訪問次數之和,并以ip為key輸出:

  //遍歷輸入,并聚合結果

  foreach(record in input) {

  ip = record.ip;

  dict[ip]++;

  }

  //用emit輸出,第一個參數為key,用于reduce的分發

  foreach( in dict) {

  emit(ip, count);

  }

  然后在第一輪的reduce中就可以得到每個ip完整的計數,可以順便排個序,并且只保留前100個。

  count = 0;

  //對于每個key(ip),遍歷所有的values(count),并累加

  while(input.values.hasNext()) {

  count += input.values.next();

  }

  //插入到大小為100的堆中

  heap_insert(input.key, count);

  在reduce結束的時候輸出:

  //輸出當前reduce中count最高的100個ip

  foreach( in dict) {

  emit(ip, count);

  }

  由于reduce一般會有很多個,所以最后還需要將所有reduce的輸出進行合并、再排序,并得到最終的前100個IP以及對應的訪問量。

  所以,使用Hadoop來做日志分析很顯然不是一件簡單事情,它帶來了很多的額外的學習和運維成本,但是至少,它讓超大規模的日志分析變成了可能。

  怎樣變得更簡單

  在超大規模的數據上做任何事情都不是一件容易的事情,包括日志分析,但也并不是說分布式的日志分析就一定要去寫MapReduce代碼,總是可以去做進一步的抽象,在特定的應用下讓事情變得更簡單。

  也許有人會很自然的想到如果能用SQL來操作Hadoop上的數據該有多好。事實上,不僅僅只有你一個人會這么想,很多人都這么想,并且他們實現了這個想法,于是就有了Hive。

  Hive現在也是Hadoop項目下面的一個子項目,它可以讓我們用SQL的接口來執行MapReduce,甚至提供了JDBC和ODBC的接口。有了這個之后,Hadoop基本上被包裝成一個數據庫。當然實際上Hive的SQL最終還是被翻譯成了MapReduce代碼來執行,因此即使最簡單的SQL可能也要執行好幾十秒。幸好在通常的離線日志分析中,這個時間還是可以接受的。更重要的是,對于上面提到的例子,我們又可以用一樣的SQL來完成分析任務了。

  當然Hive并不是完全的兼容SQL語法,而且也不能做到完全的對用戶屏蔽細節。很多時候為了執行性能的優化,依然需要用戶去了解一些MapReduce的基本知識,根據自己的應用模式來設置一些參數,否則我們可能會發現一個查詢執行很慢,或者壓根執行不出來。

  另外,很顯然Hive也并不能覆蓋所有的需求,所以它依然保留插入原始MapReduce代碼的接口,以便擴展。

  更多的問題

  即使有了Hive這樣一個類似于數據庫的東西,我們依然還有很多事情需要做。例如時間久了,可能會有越來越多的需要例行執行的SQL,而這些SQL中,也許有一些是做了重復的事情;也許有一些的執行效率非常低下,一個復雜的SQL就占滿了所有的計算資源。這樣的系統會變得越來越難以維護的,直到有一天例行的SQL終于跑不完了。而最終用戶往往不會去關心這些事情,他們只關心自己提交的查詢是不是能即時得到響應,怎么樣才能盡快的拿到結果。舉個簡單的例子,如果發現在使用apache_log的所有查詢中,幾乎沒有人用其中的user_agent字段,那么我們完全可以把這個字段去除掉,或者拆分成兩張表,以減少多數查詢的IO時間,提高執行的效率。

  為了系統化的解決這些問題,我們可能需要引入例行任務的調度機制,可能需要去分析所有的SQL來發現哪些是可以合并的、哪些的性能需要優化,使用的數據表是不是需要做水平或者垂直分表等等。根據實際情況的不同,這時事情可能是人工來完成,也可能是寫程序來自動分析并調整。

  再者隨著日志類型、分析需求的不斷增長。用戶會越來越多的抱怨很難找到想要的數據在哪份日志里,或者跑的好好的查詢因為日志格式的變化而突然不能用了。另外上面提到的ETL過程也會變得復雜,簡單的轉換導入腳本很可能已經解決不了問題。這時候可能需要構建一個數據管理系統,或者干脆考慮建立一個所謂的數據倉庫。


久久九九国产视频 | 亚洲国产欧美在线观看 | 亚洲精品高清在线观看 | 新婚之夜玷污岳丰满少妇在线观看 | 99国产精品久久久久久久久久久 | 视频二区欧美 | 国产成人三级在线播放 | 萌白酱喷水视频 | 国产色在线观看 | 三级在线网站 | 欧美国产日韩一区二区三区 | 成年人在线视频观看 | 久久久精品99 | 亚洲一区成人 | 加勒比日韩 | 日韩福利一区二区 | 超碰免费人人 | 中文在线一区二区 | 精品一区二区三区蜜臀 | 国产伦精品一区二区三区免费迷 | 黄色精品免费 | 天天碰天天碰 | 日本欧美中文字幕 | 日韩人妻一区二区三区 | 激情av | www.在线观看麻豆 | 黄色成人免费观看 | 久久久久噜噜噜亚洲熟女综合 | 97精品自拍 | 日韩在线视频网址 | 欧美成人三级精品 | 黄色国产大片 | 正在播放老肥熟妇露脸 | 欧美成人一区二区三区高清 | 国产丰满麻豆 | 色婷婷色婷婷 | 狠狠av| 亚洲精品在线不卡 | 2019年中文字幕 | 午夜美女在线 | 91视频免费在线观看 | 正在播放国产精品 | 大j8黑人w巨大888a片 | 欧美激情在线观看 | 国内成人在线 | 色碰视频 | 国产精品久久久久久久一区二区 | 久色成人 | 亚洲精品免费播放 | 操你啦免费视频 | 成人福利av| 日韩草比| 久久久午夜精品 | 91在线精品播放 | 又黄又色的网站 | 日本一区不卡在线观看 | 波多野结衣99 | 亚洲视频一区在线观看 | 午夜黄色录像 | 91视频大全| 欧美一区视频在线 | 色呦呦中文字幕 | 欧美另类第一页 | 国产一级片免费在线观看 | 91原创视频 | jav中文字幕 | 国产无套粉嫩白浆内谢 | 999资源站 | 成人国产免费 | 在线一区二区三区视频 | 亚洲精品亚洲 | 在线观看的免费 | 成人手机在线视频 | 成人夜夜| 久久久久久久久久久久久久久久久久久 | 北条麻纪在线观看aⅴ | av免播放器 | 国产午夜精品一区二区三区 | av鲁丝一区鲁丝二区鲁丝三区 | 色婷婷av一区二区三区gif | 国产污污 | 亚州一级 | 久久综合九色综合网站 | 女同性恋毛片 | 在线观看黄色国产 | 免费av国产| 天天干狠狠操 | 亚洲一区毛片 | 欧美经典一区 | av五十路 | 欧美一级大黄 | 亚洲理伦| 奇米网久久 | 国产男人搡女人免费视频 | 三级网站免费 | 亚洲天堂不卡 | 亚洲午夜精品福利 | 亚洲免费在线播放 | 天天爱夜夜爱 | 精品国产一区二区视频 | 一区二区三区网站 | 午夜色网站 | 浪浪视频污 | 韩日视频一区 | gogo亚洲国模私拍人体 | 荡女精品导航 | 插插插综合 | 午夜色网| 五月亚洲 | 久久久久五月天 | 国产女主播在线 | 国产精品日日摸夜夜爽 | 波多野结衣 久久 | 色就是色亚洲色图 | 黄色香蕉软件 | av免费精品 | 国产精品无码天天爽视频 | 欧美亚洲日本一区 | 少妇免费看| 国产日产欧美一区二区三区 | www狠狠干 | 国产一级视频在线播放 | 久久九九久久九九 | 色中色在线视频 | 制服 丝袜 激情 欧洲 亚洲 | 96精品在线| 精品国产一区二区三区久久久 | 亚洲一区二区视频在线观看 | 无码少妇一级AV片在线观看 | 欧美成人一区二区视频 | 亚洲精品乱码久久久久久自慰 | 欧美一级一片 | 欧美一线高本道 | 日本中文字幕在线 | 国产精品宾馆在线 | 免费欧美黄色 | 精品国产一区二区三区久久久蜜月 | 久久黄色一级视频 | 极品美女销魂一区二区三区 | 麻豆av一区 | 狠狠干一区二区 | 成人激情视频在线播放 | 日日操夜夜撸 | 四虎精品一区二区 | 欧美日韩999 | 玉势 (1v1 高h) | 性生交大片免费看狂欲 | 欧洲做受高潮欧美裸体艺术 | 色综合久久久久无码专区 | 青在线视频 | 伊人久久综合影院 | 亚洲a人| 久久久无码人妻精品一区 | 毛片黄色一级 | 成年人免费观看网站 | 国产一区二区在线免费观看视频 | 91搞搞| 国产高潮呻吟久久 | av超碰| 波多野结衣中文字幕一区 | 亚洲一区二区影视 | 狠狠躁夜夜躁人人爽视频 | 亚洲一区二区三区播放 | 国产亚洲精品久久久久四川人 | 巨胸大乳www视频免费观看 | wwwxx国产| 全部孕妇毛片 | 女人张开双腿让男人捅 | 亚洲精品国产精品国自产网站按摩 | 男女日批免费视频 | 123成人网 | 日韩一级黄色大片 | 玩偶姐姐在线观看免费 | 国产在线18 | 精品国产一区二区三区久久 | 欧美精品免费在线 | 精品一区二区在线看 | 国产黄av| 淫片aaa| 久久嫩草精品久久久久 | 日韩精品一区二区在线视频 | 福利资源在线 | 国产精品毛片久久久久久久av | 成人1区2区 | 丁香啪啪综合成人亚洲 | 狠狠五月天 | 国产清纯白嫩初高中在线观看性色 | 午夜黄色| 欧美日韩精品亚洲精品 | 亚洲精品国产欧美 | 日韩欧美性视频 | 人人妻人人澡人人爽 | 男受被做哭激烈娇喘gv视频 | 激情综合网五月 | 国产欧美三级 | 九色91popny蝌蚪 | 国产精品一品二区三区的使用体验 | 好吊操免费视频 | 神马午夜888 | 天堂草在线观看 | 国产在线视频网址 | 国产裸体永久免费无遮挡 | 亚洲欧美精品aaaaaa片 | 国产精品永久在线观看 | 久草最新网址 | 成人网在线观看 | 一级视频黄色 | 免费看污片的网站 | 欧美国产高清 | 在线观看黄色大片 | 孕妇毛片| 狠操av| 美女视频黄a视频全免费观看 | 国产成人麻豆精品午夜在线 | 99国产精品一区二区三区 | 国产成人99久久亚洲综合精品 | 天天干天天操天天射 | 秋霞福利影院 | 国产麻豆剧果冻传媒白晶晶 | 毛片.com | 高清国产午夜精品久久久久久 | 黄色日b片 | 美女大黄网站 | 成年人在线视频观看 | 99国产精品久久久久久久成人 | 刘亦菲一区二区三区免费看 | 毛利兰被扒开腿做同人漫画 | 特级西西人体444www高清大胆 | 毛片大全在线观看 | 性感美女av在线 | 福利免费在线观看 | 精品国产中文字幕 | a级免费网站 | 四虎av影院| 日韩亚洲欧美精品 | 国产色呦呦 | 日本韩国欧美一区二区三区 | 国产精品自拍在线 | 亚洲a在线观看 | 在线免费观看亚洲视频 | 91丝袜呻吟高潮美腿白嫩在线观看 | 在线成人免费观看 | 日韩欧美三级 | 国产精品无码久久久久久 | 丰满人妻妇伦又伦精品国产 | 91免费网站入口 | 亚洲aaaaa特级| 五月在线 | av少妇在线 | av在线h| 国产又粗又猛又爽又黄的 | 羞羞影院体验区 | 欧美性猛交xxxx黑人猛交 | 黑人巨茎大战欧美白妇 | 清纯唯美亚洲激情 | 欧美大片免费播放器 | 摸摸大奶子| 国产又猛又黄 | 日本午夜网站 | 国产又粗又爽视频 | 欧美a v在线| 国产传媒视频在线 | 亚洲天堂av影院 | 中文字幕第五页 | 亚洲一区二区三区三州 | 在线污视频 | 欧美一级免费在线 | 国产中文一区二区三区 | 小柔的裸露日记h | 亚洲理论片在线观看 | 黄色欧美在线 | 亚洲国产精品成人久久蜜臀 | 一区二区三区人妻 | 大香焦久久 | 天天天色| 91成人免费在线视频 | 精品一区二区亚洲 | 精品毛片 | 中文字幕一区二区三区乱码在线 | 国产亚洲综合av | 国产精品夜夜 | 午夜精品久久久久久久久久久久久 | 欧美一级片在线视频 | 青娱乐在线免费观看 | 国产玖玖视频 | 筱田优全部av免费观看 | 中文一区视频 | 天天爽天天搞 | 久久国产精品无码网站 | 国产一区二区三区免费观看视频 | 69视频在线观看免费 | 一本大道久久a久久综合婷婷 | 蜜桃视频网站 | 熟妇无码乱子成人精品 | 一区二区三区在线视频播放 | 免费观看一级视频 | 香蕉视频入口 | 中文字幕第十二页 | 香蕉色综合 | 麻豆app在线观看 | 黄色国产小视频 | 91福利视频在线 | 国产午夜伦鲁鲁 | 国产在线视频网 | 中文字幕av在线 | 伊人888| 黄色片在线播放 | 欧美一a| 欧美日韩成人一区二区三区 | 你懂的网址在线 | 狠狠久| 一区二区在线免费看 | 国产无遮挡又黄又爽在线观看 | 久久人人爽人人爽人人av | av大全免费观看 | 99热久久这里只有精品 | 欧美在线观看a | 少妇闺蜜换浪荡h肉辣文 | 国产精品啊啊啊 | 久久久免费精品视频 | 一区二区三区中文视频 | 色大师av一区二区三区 | 欧洲亚洲激情 | 视频在线观看 | 中文字幕一区2区3区 | 视频国产精品 | 日韩欧美有码 | 99色婷婷 | www.99爱 | 性久久久久久久久久久久 | 一区二区不卡av | 6996电视影片免费看 | av在线网页 | 二三区视频 | 久久久性 | 婷婷深爱网 | 日本免费在线播放 | 亚洲女同一区二区 | 亚洲不卡av一区二区 | 男人天堂一区二区 | 青娱网电信一区电信二区电信三区 | 成人h动漫精品一区二区器材 | 国产精品精品视频 | 91午夜剧场 |