張衛華


[摘 要] 傳統圖書館電子資源訪問日志工具采集周期長、處理效率低下,無法支持高校圖書館大規模電子資源的日志采集和分析需求。大數據技術為圖書電子資源的訪問日志分析提供了值得借鑒的方法和手段。本文研究了一種采用Web日志工具LogStash和Elasticsearch設計實現的高校圖書電子資源訪問日志的實時采集和快速查詢分析方法;給出了日志采集的大數據工具的選擇、索引的建立方法,以及日志分析的處理流程,文中采用Kibana工具實現日志可視化分析。
[關鍵詞] 大數據;ElasticSearch;文獻分析
[中圖分類號] TP311 [文獻標識碼] A [文章編號] 1671-0037(2017)3-82-3
Analysis of Electronic Resource Access Logs in University Libraries Based on Big Data Technology
Zhang Weihua
(School of Electrical Engineering, Zhengzhou University, Zhengzhou Henan 450001)
Abstract: Traditional library electronic resource access log tools have long acquisition cycle, low handling efficiency, can not support the needs of university library's large-scale electronic resources log acquisition and analysis. The big data technology provides a valuable method and means for the access log analysis of library electronic resources. This paper studied a real-time acquisition and quick query analysis method for the access log of electronic resource in university library using Web access log tools of LogStash and ElasticSearch design. The selection of big data tools for log acquisition, the establishment method of index, and the prodedure of log analysis were given. Kibana tool was used in the paper to achieve the log visualization analysis.
Key words: big data; ElasticSearch; document analysis
1 引言
隨著互聯網技術的普及,電子資源成為高校圖書館提供的情報服務的重要部分,高校購買了更多的電子資源,同時高校圖書館自身也儲備了日益增多的電子文獻,電子資源的應用評估逐漸成為圖書情報領域的重要研究課題。如何對高校圖書館電子資源的應用狀況進行統計、分析和評價,對于所購買的資源是否符合本單位的用戶需求成為調整電子資源建設政策、開展資源推廣等工作的重要依據[1]。同時,包括自身館藏電子文獻在內的高校圖書館電子資源的增多,教師和學生對電子資源的使用量也日益增加,而圖書館迫切地需要掌握電子資源的具體使用狀況及需求的變化趨勢,能夠智能地根據電子資源的訪問日志從不同角度分析出高校圖書館資源的應用狀況成為亟須解決的問題之一[2]。
大數據技術為我們提供了包括分布式文件系統HDFS、分布式計算集群HADOOP和分布式全文檢索ElasticSearch等多種解決大數據量的高效處理手段[3]。運用大數據技術可以有效地解決電子資源的訪問日志的存儲、檢索分析。從不同維度展現資源利用狀況,發現資源瓶頸,提高服務質量。
2 傳統電子資源訪問日志分析
電子資源日志的分析在高校圖書館的資源利用狀況分析中占非常重要的地位,高校圖書館電子資源來源越來越復雜,日志的分析和監控就顯得尤為重要,常見的需求有:
·根據關鍵字查詢日志詳情
·監控電子資源的運行狀況
·統計分析,比如資源的訪問次數、執行時間、成功率等
·異常數據自動觸發消息通知
·基于日志的數據挖掘
EZproxy 是一個目前被國外圖書館廣泛使用的實現訪問代理的軟件。與普通代理服務器軟件的主要區別在于它是采用基于“URL 重寫”技術,用戶無須修改瀏覽器的設置就能實現代理訪問資源的功能[4]。EZproxy為圖書館對數據資源的使用進行監控和分析帶來了極大的便利。但是對于更大規模的電子資源的訪問,EZproxy暴露出一些問題,主要有:
·日志數據分散在多個系統,難以查找
·日志數據量大,查詢速度慢
·一個調用會涉及多個系統,難以在這些系統的日志中快速定位數據
·數據不夠實時
3 基于大數據技術的日志分析
大數據應用技術中,基于LogStash+ElasticSearch的日志分析被廣泛應用于Web瀏覽的日志分析[7]。它從Web訪問端抓取訪問日志,應用Web大數據技術進行存儲和索引,利用全文搜索工具ElasticSearch進行日志的分析和處理,能夠提供遠超于傳統日志分析所具有的分析和檢索功能。這種方法更適合于未來日益增長的圖書電子資源的日志分析,可以提供關于電子資源利用率、資源使用行為分析、資源利用發展趨勢分析等新的應用場景需求。圖1是LogStash+ElasticSearch構造的日志分析和監測系統的典型架構。
LogStash是一個開放源碼的日志收集工具,屬于Elastic家族的一員,它負責將收集的日志信息輸送到ElasticSearch,為ElasticSearch提供數據源[4]。
ElasticSearch是一個高擴展的、開源的、全文檢索的搜索引擎,它提供了近實時的索引、搜索、分析功能[4]。在設計和實現上它吸收了包括HADOOP在內的主流的分布式系統的很多特性[5,7]。
ElasticSearch基于開源的搜索引擎Lucene構建,它把復雜的Lucene通過RESTful API隱藏起來,提供了簡單易用的應用接口。這種基于RESTful的搜索引擎用于云計算中,能夠達到近乎實時的搜索功能,并且提供了很好的穩定性和可靠性。ElasticSearch支持通過HTTP使用JSON進行數據索引[4],提供 Kibana 可視化監控和分析界面。
4 電子資源日志分析流程
4.1 日志的獲取和匯聚
首先在讀者訪問電子資源的Web服務器上啟動日志功能,讀者的各種操作都會被作為日志記錄下來。
通過在日志所在的主機上安裝部署LogStash Shipper,用于獲取日志并且轉換成JSON格式的數據,日志數據被發送到Redis存儲服務和后續的LogStash Indexer進行處理,為ElasticSearch的檢索和分析做數據準備。
獲取的日志格式定義:
log_format logstash ‘$http_host
‘$remote_addr [$time_local]
‘“$request” $status $body_bytes_sent
‘“$http_referer” “$http_user_agent”
'$request_time '$upstream_response_time';
4.2 日志存儲和索引
經Shipper采集的日志數據匯聚到大數據存儲集群中,而后根據分析和統計的需要建立多種維度的索引。ElasticSearch索引的建立是日志分析的重要基礎,我們借鑒了普通Web應用的日志分析方式,多樣化的電子資源建立了日志信息存儲的索引,索引建立的依據是:
4.2.1 各種電子資源站點的概要統計。包括分析覆蓋的時間、訪問的頁面數、訪問數、會話數、訪問者信息以及平均訪問、最高訪問等。
4.2.2 內容分析。讀者訪問的最多及最少被訪問的數據庫資源、檢索路徑、最高訪問的時間。4.2.3 讀者信息分析。包括訪問者的來源、訪問者使用的瀏覽器及操作系統分析、訪問來自的頁面、IP地址以及訪問者使用的檢索方式。
4.2.4 讀者活動周期行為分析。一周7天的訪問行為、24小時的訪問行為、每周的最多的訪問日、訪問時段等。
4.2.5 資源數據庫訪問分析。針對各個資源數據庫訪問分析資源利用情況,分學科統計出各個數據庫的訪問情況,并進行分析。
4.2.6 全文數據庫擴展分析。針對聯機或光盤數據庫的下載等內容的訪問分析。
4.2.7 發現用戶訪問模式。通過分析和探究資源數據庫日志記錄中的規律,可以識別讀者的需求趨勢,提高對讀者的服務質量,并改進圖書館服務器系統的性能。
4.2.8 主要訪問錯誤分析。主要訪問錯誤分析包括服務端錯誤、聯機資源錯誤等。
4.3 檢索和分析引擎
ElasticSearch具有強大的搜索和分析功能,它提供了強大的搜索功能,可以實現類似百度、谷歌等搜索。可以搜索日志或者交易數據,用來分析商業趨勢、搜集日志、分析系統瓶頸或者發展趨勢。在百萬級的大數據中輕松地定位關鍵信息。
本文采用了三臺計算機作為日志分析群集建立了一個實驗環境。在每臺機器上安裝ElasticSearch服務和LogStash。通過設置三臺機器的集群節點參數,實現性能和可靠性的保障。
由于ElasticSearch自帶的中文分詞功能并不理想,當需要進行文獻全文檢索的條件分析時,不準確的分詞和詞庫會導致對日志中用戶對文獻數據庫檢索的條件和內容分析不夠準確。我們采用了IK分詞插件用于中文檢索的分詞器,改善了索引的性能。
對于不同的資源數據庫,通過日志記錄的訪問URL的解析可以分析出訪問者使用的檢索方式、檢索條件;通過對檢索條件的內容分析,可以解析出讀者的檢索意圖和對應的學科專業領域。通過$request的請求內容的解析還可以解析出讀者對文獻的編目和全文的使用情況。
我們為ElasticSearch配置為15個片2個副本,由于日志分析屬于內部使用功能,訪問量并不大,所以沒太大必要使用過多的副本存儲,設置LogStash索引名為系統自動生成的,每天一個日志類別,可使按時間的檢索更加簡單。
4.4 日志分析的人機交互
Kibana是一個功能強大的ElasticSearch數據顯示客戶端,Kibana可以對日志進行高效的搜索、可視化、分析等各種操作。Kibana提供了多種圖表的展現方式,使得日志的分析結果更加形象地展現給分析者。
5 總結
利用開源工具 LogStash和 Elasticsearch 設計實現了分布式集群日志采集和分析平臺,應用Kibana可以方便地進行日志不同角度的分析和展現;滿足了多種電子資源海量日志的實時采集和快速分析需求,可以為日常服務檢測、快速排查故障維持系統正常運行,提供了可行性工具。同時具備實施部署方便的特點。
本文只使用了LogStash和 Elasticsearch對高校圖書電子資源的日志分析方法做了初步的探討,建立的搜索模型和索引選取比較簡單。后續還有許多實際的需求無法滿足。在本文所選擇的平臺上還可以做很多有針對性的專題分析。另外,隨著大數據和人工智能技術的成熟,ElasticSearch的機器學習功能的利用還可以建立智能化的訪問日志分析系統。
參考文獻:
[1] 羅文森.常用中文電子資源訪問日志功能分析及研究[J].情報理論與實踐,2011(2).
[2] 嚴潮斌.加州大學圖書館多平臺云遷移策略研究[J]. 圖書情報工作,2013(11).
[3] 陳祖琴.圖書館視角下的大數據資源共建共享[J].情報雜志,2015(4).
[4] 周映.ELK日志分析平臺在電子商務系統監控服務中的應用[J].信息技術與標準化,2016(7).
[5] 饒琛琳.ELKstack權威指南[M].北京:機械工業出版社,2015.
[6] 陳俊杰.應用Elasticsearch重構圖書館站內搜索引擎 情報探索[J].2014(11).
[7] Elasticsearch聯機文檔[EB/OL].https://www.elastic.co/guide/index.html.2017-2-5.