- 日志分析工具splunk如何使用?
- 日志格式信息不全,如何配置日志打印出全面信息?
- 有大量爬蟲訪問,并非真實(shí)流量,如何去掉這" />
時間:2023-03-14 06:40:01 | 來源:電子商務(wù)
時間:2023-03-14 06:40:01 來源:電子商務(wù)
分析網(wǎng)站日志可以幫助我們了解用戶地域信息,統(tǒng)計用戶行為,發(fā)現(xiàn)網(wǎng)站缺陷。操作會面臨幾個問題[root@localhost splunk]# wget -O splunk-8.0.5-xxx-Linux-x86_64.tgz 'https://www.splunk.com/bin/splunk/DownloadActivityServlet?architecture=x86_64&platform=linux&version=8.0.5&product=splunk&filename=splunk-8.0.5-xxx-Linux-x86_64.tgz&wget=true'
解壓壓縮包,到bin目錄下執(zhí)行 ./splunk start
看見協(xié)議條款按q,是否同意協(xié)議位置輸入y Do you agree with this license? [y/n]: y
用戶名輸入 adminThe Splunk web interface is at http://192.168.56.106:8000
表示啟動成功。相比于開源工具(ELK,graylog)確實(shí)省心太多了。確保Linux防火墻是關(guān)閉狀態(tài),然后瀏覽器輸入前面8000地址打開登錄。首次會有引導(dǎo)教程指導(dǎo)如何上傳文件。日常如果想上傳文件,直接點(diǎn)擊左上角splunk->enterprise進(jìn)入主界面,然后選擇添加數(shù)據(jù),source="access2020-09-11.log" host="basicserver" sourcetype="access_combined"
source表示數(shù)據(jù)來源文件名,host是splunk所在的主機(jī)名稱,sourcetype是導(dǎo)入時配置的。這些都可以變換,我想統(tǒng)計10號的數(shù)據(jù),將access2020-09-10.log作為source就達(dá)到了效果。如果想查看basicserver里的所有數(shù)據(jù)不分日期,把source條件去掉,只保留host和sourcetype兩個條件。搜索框最少要有一個條件。host="basicserver" | top clientip limit=200
host="basicserver" | iplocation clientip
執(zhí)行后左側(cè)下方“感興趣的字段”會比剛才多出City Country Region字段,這些和客戶端ip的地理位置是對應(yīng)的。 - 訪問頻率最高的十個城市host="basicserver" | iplocation clientip | top City limit=10
host="basicserver" | iplocation clientip | geostats count
host="basicserver" | stats dc(clientip)
host="basicserver" | sort _time
默認(rèn)按照倒序,最新的日志排在最前面 - 訪問次數(shù)最少的ip host="basicserver" | rare clientip
host="basicserver" | top uri limit=20
host=basicserver clientip!="158.111.2.*" clientip!="192.190.2.*"
補(bǔ)充一句,搜索框可以輸入很多條件,條件增多搜索框會隨著變大,不要擔(dān)心條件多裝不下。source="access2020-09-11.log" | top clientip limit=20
執(zhí)行完會在統(tǒng)計信息下方列出前20個ip,點(diǎn)擊可視化,選擇柱狀圖。 LogFormat "%h %l %u %t /"%r/" %>s %b /"%{Referer}i/" /"%{User-Agent}i/"" combinedLogFormat "%h %l %u %t /"%r/" %>s %b" common
如果common日志滿足不了分析要求,可以把格式改成common格式。方法是修改apache/conf下的httpd.conf文件,把里面CustomLog末尾配置為combinedCustomLog "|/opt/apache/bin/rotatelogs /opt/apache/logs/access%Y-%m-%d.log 86400" combined
LogFormat "%h %{X-FORWARDED-FOR}i %l %u %t /"%r/" %>s %b /"%{Referer}i/" /"%{User-Agent}i/"" combinedLogFormat "%h %{X-FORWARDED-FOR}i %l %u %t /"%r/" %>s %b" common
假設(shè)網(wǎng)站有CDN加速(其它情況同理分析),按上面格式,每條日志首先打印的是CDN加速服務(wù)器ip,然后是XFF的ip(也就是用戶真實(shí)ip)。如果用戶沒有經(jīng)過CDN直接訪問,那么XFF就是一條橫線"-"。 下圖是用戶直連網(wǎng)站的情況,clientip就是用戶真是IP。[xff]REGEX = /d{1,3}(/./d{1,3}){2,3}
修改[access-extractions]段,在clientip后增加([[nspaces:xff]]/s++)?,用來匹配XFF[access-extractions]REGEX = ^[[nspaces:clientip]]/s++([[nspaces:xff]]/s++)?[[nspaces:ident]]/s++[[nspaces:user]]/s++[[sbstring:req_time]]/s++[[access-request]]/s++[[nspaces:status]]/s++[[nspaces:bytes]](?:/s++"(?<referer>[[bc_domain:referer_]]?+[^"]*+)"(?:/s++[[qstring:useragent]](?:/s++[[qstring:cookie]])?+)?+)?[[all:other]]
[xff]段的位置不重要,寫在哪里都行。配置完成,重啟splunk,上傳帶有XFF的日志,左側(cè)會看見“感興趣的字段”出現(xiàn)了xffUser-agent: BaiduspiderDisallow: /
如果要任何爬蟲都不能爬任何數(shù)據(jù),就寫成 User-agent: *Disallow: /
復(fù)雜的規(guī)則如指定引擎可以爬取某些目錄,某些目錄不可以爬,robots協(xié)議也是支持的。 robots協(xié)議是“君子協(xié)定”,它并沒有通過技術(shù)手段限制爬蟲,要靠爬蟲的自覺遵守。 按我經(jīng)驗(yàn),百度、谷歌、360、字節(jié)、都能遵守協(xié)議,搜狗很流氓,不遵守協(xié)議。# nslookup 49.7.21.76Server: 219.141.136.10Address: 219.141.136.10#53Non-authoritative answer:76.21.7.49.in-addr.arpa name = sogouspider-49-7-21-76.crawl.sogou.com.# host 111.206.198.6969.198.206.111.in-addr.arpa domain name pointer baiduspider-111-206-198-69.crawl.baidu.com.
另外,各大搜索引擎的站長平臺會教如何判斷ip是否是自己的爬蟲,百度站長平臺就有“輕松兩步,教你快速識別百度蜘蛛”,介紹了百度蜘蛛useragent的格式和判斷方法。關(guān)鍵詞:完整,實(shí)踐,分析,日志
客戶&案例
營銷資訊
關(guān)于我們
微信公眾號
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。