大數據時代的全能日誌分析專家--Splunk安裝與實踐

大數據時代的全能日誌分析專家php

--Splunk安裝與實踐linux

0.  數據庫

隨着你們對網絡安全意識的提升,企業網管理人員,必須對IT基礎設置進行監控及安全事件的管理,管理數據的數量和種類很是巨大,那麼就須要有一款可否分析各類日誌數據的工具,通過長期實踐,爲你們推薦Splunk這麼一款全能型分析工具。windows


1Splunk簡介瀏覽器

Splunk是一款功能強大的、記錄詳細的日誌分析軟件,Splunk是基於原始日誌數據(Raw data)內容創建索引,保存索引的同時也保存原始日誌內容,在大數據時代,種類繁多的日誌如何能快速分析找到你須要的內容呢,你須要一個更加方便智能的工具,那就是Splunk。它能處理常規的日誌格式,好比ApacheSquid、系統日誌、郵件日誌等這些對全部日誌先進行索引,而後能夠交叉查詢,支持複雜的查詢語句,最後經過直觀的方式表現出來。它與其餘開源日誌分析工具不一樣的是,操做界面支持全中文,並且對於中文版操做系統的日誌收集很是不錯,目前它的商業版本價格的確不便宜(國內天旦、精誠華廈微科都在代理這款產品,商務可聯繫他們)。下面咱們先看看怎麼安裝和基本使用吧。安全

2. Splunk索引數據內容服務器

    Splunk的索引範圍涵蓋應用、服務器、網絡設備中的全部日誌、配置、信息、trap、告警、度量以及其餘系統性能數據。可靈活地從文件、網絡端口、數據庫、自定義API和接口中實時或按需訪問數據。它的索引對原始數據的完整性無影響。wKioL1QKxGrgspQKAAFpIlENIY4281.jpgcookie

3Splunk安裝網絡

首先到官方http://www.splunk.com/download註冊一個帳號下載對應的操做系統版本(截止目前最新版本爲6.1.3),安裝時記住關閉SELinux功能,另外注意一點,若是要經過WMI的方式來蒐集Windows(中文版)日誌的話,那麼Splunk建議裝在Windows操做系統(4GB以上可用空間)上。若是收集的日誌主要是各類網絡設備及Linux系統日誌建議裝在類Unix系統上。下面以Redhat Linux系統安裝Splunk爲例講解安裝過程,啓動過程如圖1所示。運維

1.安裝軟件包

#rpm �ivh splunk-4.1.7.95063-linux-2.6-x86_64.rpm

Splunk安裝路徑在/opt/splunk,這個路徑各類UNIX/Linux系統都同樣。

2.關閉Selinux

#setenforce 0

(3).啓動splunk,命令以下:

#/opt/splunk/bin/splunk start

(4).瀏覽Splunk Web接口,在瀏覽器中輸入如下地址:

http://localhost.localdomain:8000

wKiom1QGybqjlmDjAAQa1p5OAjM714.jpg

1 Linux下安裝Splunk

netstat命令檢查8000端口是否處於監聽狀態。

#netstat -ant

Proto Recv-Q Send-Q Local Address               Foreign Address             State

tcp       0      0 0.0.0.0:8000                0.0.0.0:*                   LISTEN

tcp       0      0 0.0.0.0:8089                0.0.0.0:*                   LISTEN

咱們看到以上信息輸出便可經過網址訪問。


4.設置自動運行

1).設置開機自動啓動

#ln -s /usr/local/splunk /bin/splunk/etc/rc2.d/S80splunk

2).設置到服務裏面

#ln -s /usr/local/splunk /bin/splunk/etc/init.d/splunk

 

5.系統配置

下面咱們經過配置來收集客戶端的日誌。

1經過Syslog收集Cisco網絡設備的日誌

Cisco網絡設備上的配置命令通常爲:

logging <syslog server IP Address>

logging trap <severity>

Splunk默認使用UDP 514端口來監聽syslog消息。例如:

logging 192.168.122.1

logging trap warning

2經過Syslog收集Linux主機的日誌

Linux主機上的配置通常爲修改/etc/syslog.conf配置,添加如下兩行:

# Send syslog to Splunk server

*.<severity>                 @<syslog server IPAddress>

如:

# Send syslog to Splunk server

*.debug                @192.168.122.1

3經過WMI來收集Windows主機的日誌

首先要確保運行Splunk服務(在服務管理器中顯示爲Splunkd)的賬號有權限讀取遠程Windows機器的WMI信息。在《Unix/Linux日誌分析和流量監控》一書中的第14章中還會講到利用WMI收集Windows日誌。

  而後,在Splunk服務器上作一下簡單的配置。這裏假設Splunk的安裝路徑默認爲C:\Program Files\Splunk。在C:\Program Files\Splunk\etc\system\local文件下修改inputs.conf文件,添加如下內容:

[script://$SPLUNK_HOME\bin\scripts\splunk-wmi.py]

interval = 10

source = wmi

sourcetype = wmi

disabled = 0

接着,在同一目錄中新建一個文本文件,命名爲wmi.conf,並添加如下內容:

[WMI:<Name>]       

server = <Remote Windows Host IPAddress>

interval = 60

event_log_file = <Event log Type>

disabled = 0

好比監控IP地址爲192.168.122.10Windows主機上ApplicationSystemEvent Log

[WMI:AppAndSys]       

server = 192.168.122.1

interval = 60

event_log_file = Application, System

disabled = 0

其實還能夠經過Syslog來收集Windows的日誌,這裏能夠用一個免費工具NTSyslog(下載)


6.設置日誌分析目錄

當首次進入Web界面後,須要重設密碼並添加數據。進入系統能夠將默認語言選擇爲中文,開始導入數據,如圖2所示。

wKiom1QGygrx2ERtAAGbk4r5jVI138.jpg

導入數據

選擇數據源(從本地),接着選「從文件和目錄」,選擇/var/log便可。如圖3所示。從圖中咱們也能夠看出Splunk默認支持的日誌種類不少,包含大多數運維人員平時工做中所須要分析的日誌類型。

wKioL1QGyhuyW9HHAAIFcO2fPoY593.jpg

選擇本地數據源

點擊應用菜單下方的search便可看到生成的日誌報告(好比cron日誌,mail日誌。固然也能夠把咱們所須要記錄的日誌好比php錯誤日誌等都輸出到/var/log目錄下,對其進行分析)


7 .Splunk搜索的使用

系統中的搜索工具欄是Splunk最強大的工具,爲了學習Splunk,咱們先在http://www.splunk.com/base/images/Tutorial/Sampledata.zip下載一個演示文件。咱們學習如何添加數據,首先向Splunk添加示例數據方法以下:

Splunk首頁中點擊右上角的Home按鈕,再選擇添加數據,選擇服務器本地文件,當你選擇正確系統提示:「Use auto-detected source type:access_combined_wcookie」最後保存配置,當系統提示索引創建後就能夠查看日誌。

wKiom1QGyiOC14z7AANgQKI1IrQ746.jpg

開始搜索

咱們看看儀表盤的內容,讀者應該已經熟悉搜索欄及時間範圍選擇,摘要儀表板上也有這些內容。但搜索儀表板上還包含其餘內容,好比事件記錄、時間軸、字段菜單及檢索到的事件列表或搜索結果。

1.匹配及掃描事件記錄:在搜索中,Splunk在檢索時將顯示兩組事件記錄:一組爲匹配事件記錄,另外一組爲已掃描事件記錄。搜索完成後,時間軸上方的記錄顯示的是匹配事件的總數。時間軸下方事件列表上方的記錄顯示用戶所選時間範圍內的時間數目。稍後能夠看到,當向下分析事件時,此數目會發生變化。

2.事件的時間軸:時間軸能直觀的顯示出每一時刻發生的事件。當時間軸隨着搜索結果不斷更新時,可能會注意到有條狀圖案。每一條狀圖案的高度表示時間記錄。時間軸的峯值和谷值可表示活動高峯期或服務器停機。此時,時間軸可有效用於強調時間模式或調查各事件活動的高峯期和低谷期。時間軸選項位於時間軸上方。還能夠放大或縮小圖表。

3.字段菜單:前面說過將數據編入索引時,Splunk可自動按名稱和值的格式識別並生成數據信息,咱們把這稱做是字段。當您進行搜索時,Splunk將把其從字段菜單上識別的全部字段列在搜索結果旁邊。您能夠選擇其餘字段來顯示您搜索的事件。所選字段都已被設置爲搜索結果可見格式。將默認顯示主機、源及源類型。其它字段是Splunk從您的搜索結果中抽取的。

4.事件查看器:事件查看器將顯示Splunk搜索到的與您的搜索匹配的事件。事件查看器位於時間軸下方。事件默認顯示爲列表,您也能夠選用表格查看。選擇按表格形式查看事件時,表格只顯示已選字段。


8.Splunk搜索實例解析

咱們先構造一個場景,假若有人投訴網站,說在提交表單時老是提示有某個IP地址錯誤, 10.2.1.44,這時咱們該如何利用搜索功能來查找問題呢?

咱們能夠輸入以下內容:sourcetype=access_combined_wcookie10.2.1.44

固然,若是你不知道數據源,那麼你也能夠直接輸入IP地址,這樣匹配的條目會很是多,若是能精確找到數據源就很容易找到問題。

wKiom1QGyjLAH11ZAALr2TxuO08855.jpg

5  使用搜索功能

access_combined_wcookie表明數據源,要根據你提交的日誌而定。注意,當您在搜索欄中輸入的同時,將彈出Splunk「搜索助手」這個很重要,能夠幫助你解決搜索中的不少問題。就如同MS Office中的幫助同樣好用。爲了縮小範圍咱們作以下操做,咱們還應該在搜索欄中鍵入purchase

sourcetype=access_combined_wcookie10.2.1.44 purchase

wKioL1QGykKgUfPUAAN9EciBMPs985.jpg

縮小搜索範圍

請看左上角搜到的日誌從109降到83條。注意,搜索關鍵詞時,不用區分大小寫。

9.使用布爾運算符查找日誌

Apache服務器日誌中發現大部分事件的狀態碼爲「200」,它表明「成功」。如今有人投訴網站出現了問題,那麼就要找出不是200的日誌。咱們使用布爾運算方法。

wKioL1QGyk6hxKl1AAONWBNLLMY018.jpg

使用布爾運算符查找

這時匹配條數驟減到31條。這時發現了HTTP服務器(503)錯誤,用這個方法能夠快速排除無關事件。使用布爾運算符可進行搜索的信息更多,Splunk支持的布爾運算符有與、或和非因此第四步的搜索和下述語句相同:

sourcetype=access_* AND 10.2.1.44 ANDpurchase NOT 200

當搜索中含有布爾表達式時,運算符須所有大寫。使用括號將有關表達式組合起來,以便進行更復雜的搜索。計算布爾表達式時,Splunk將從最裏面的括號開始運算,接着運算括號外面的下一個值對。當括號內的全部運算符都運行完成,Splunk將先計算或子句,而後計算和或者非子句。


10.使用時間軸功能

如今您已經確認存在問題類型,如今您想找到致使問題的緣由。從發現顧客沒法購買的那次搜索開始,繼續進行下面的步驟。時間軸上的各柱狀體,表明搜索的匹配事件發生的時間。滑動鼠標,選中其中一個柱狀體,將彈出工具提示,並顯示時間數目和該柱距的原始時間戳,1個柱狀體=1分鐘,這個單位根據你的選擇而動態變化,這樣您的搜索將僅限於您所選定的1小時內所發生的事件,如圖8所示。

wKioL1QGyl_TPmIpAATZ-e71AXE614.jpg

使用時間軸

Splunk支持使用星號(*)通配符來搜索全部或根據關鍵詞的部分進行模糊檢索事件。該搜索可告訴Splunk但願看到在這段時間內發生的全部事件。

時間軸的其餘功能:

  • 點擊選擇上述的全部時間軸,可再次顯示全部時間;

  • 點擊放大,可鎖定與您的搜索匹配的選定事件範圍;

  • 點擊縮小,可擴展時間軸,看到更多事件;

 

11.故障定位方面的應用

Splunk能經過搜索出日誌中的重要關鍵字來挖掘出網絡設備日誌中最有價值的信息。搜索關鍵字「up OR down」查看日誌中存在接口鏈接狀況,splunk將信息轉換成時間分佈圖,使咱們更快捷地查看當天或者過去幾天設備接口鏈接狀態。

搜索關鍵字「duplicate」,發現有少許存在IP地址衝突的地址,其中地址衝突所發生的時間以及衝突的源主機MAC地址均可以一目瞭然;搜索關鍵字「SYNflood」,可在防火牆日誌中查找SYN攻擊事件;搜索關鍵字「power」可快速查找重要設備是否會出現「poweroff」的狀況。

搜索關鍵字「deny」可查找核心交換機上丟棄數據包的具體狀況,根據這些狀況能夠統計一些常常出現的被丟棄數據包源頭。輸入EventCode=6005 or EventCode=6006查詢能夠掌握機器的開關機狀況,主要是提取6006的事件和6005的事件信息系統,思路是在windows 中打開eventvwr.msc(事件查看器)程序打開事件查看器,在左側窗口中選擇「系統」,從右側系統事件中查找事件ID60056006的事件(事件ID號爲6005的事件表示事件日誌服務已啓動,即開機事件ID6006表示關機),它們對應的時間就分別是開機時間和關機時間。

注意:Windows事件ID含義詳情請點擊這裏

 

12.看視頻學用Splunk分析日誌

最後輕鬆一下,你們打開這個連接(前提是你的瀏覽器支持flash)觀看Splunk視頻指南: http://www.tudou.com/programs/view/7iXM5WfXpDg/ 

 

技巧:

在試用版的Splunk中有500MB日誌的限制(我的還沒法突破限制),若是你直接將主機架設在生產環境,很快就到達上限,也許你一着急,就把他卸載了,從而錯失真麼一款優秀的工具,建議開始測試時,找幾個典型測試設備在實驗室進行功能測試,通過自評價後,有必要在聯繫商務人員,他們能夠免費爲您企業進行安裝調試。

另外,若是你懶得註冊帳戶,想直接下載Splunk 4.1.7請點擊這裏:

1) Windows 平臺 64位 下載地址

2) RedHat Linux平臺 2.6內核 64位 下載地址

3) Solaris 9/10 (64 bit) 下載地址

4)更多 Splunk學習手冊

本文出自 「李晨光原創技術博客」 博客,謝絕轉載!

相關文章
相關標籤/搜索