天天看點

大資料時代的全能日志分析專家--Splunk安裝與實踐

大資料時代的全能日志分析專家

--Splunk安裝與實踐

0.背  景

随着大家對網絡安全意識的提高,企業網管理人員,必須對IT基礎設定進行監控及安全事件的管理,管理資料的數量和種類非常巨大,那麼就需要有一款能否分析各種日志資料的工具,經過長期實踐,為大家推薦Splunk這麼一款全能型分析工具。

1.Splunk簡介

Splunk是一款功能強大的、記錄詳細的日志分析軟體,Splunk是基于原始日志資料(Raw data)内容建立索引,儲存索引的同時也儲存原始日志内容,在大資料時代,種類繁多的日志如何能快速分析找到你需要的内容呢,你需要一個更加友善智能的工具,那就是Splunk。它能處理正常的日志格式,比如Apache、Squid、系統日志、郵件日志等這些對所有日志先進行索引,然後可以交叉查詢,支援複雜的查詢語句,最後通過直覺的方式表現出來。它與其他開源日志分析工具不同的是,操作界面支援全中文,而且對于中文版作業系統的日志收集非常不錯,目前它的商業版本價格的确不便宜(國内天旦、精誠華廈微科都在代理這款産品,商務可聯系他們)。下面我們先看看怎麼安裝和基本使用吧。

2. Splunk索引資料内容

3.Splunk安裝

首先到官方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

<a href="http://s3.51cto.com/wyfs02/M01/48/4C/wKiom1QGybqjlmDjAAQa1p5OAjM714.jpg" target="_blank"></a>

圖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 &lt;syslog server IP Address&gt;

logging trap &lt;severity&gt;

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

logging 192.168.122.1

logging trap warning

2)通過Syslog收集Linux主機的日志

在Linux主機上的配置一般為修改/etc/syslog.conf配置,添加以下兩行:

# Send syslog to Splunk server

*.&lt;severity&gt;                 @&lt;syslog server IPAddress&gt;

如:

*.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:&lt;Name&gt;]       

server = &lt;Remote Windows Host IPAddress&gt;

interval = 60

event_log_file = &lt;Event log Type&gt;

比如監控IP位址為192.168.122.10的Windows主機上Application和System的Event Log:

[WMI:AppAndSys]       

server = 192.168.122.1

event_log_file = Application, System

6.設定日志分析目錄

當首次進入Web界面後,需要重設密碼并添加資料。進入系統可以将預設語言選擇為中文,開始導入資料,如圖2所示。

<a href="http://s3.51cto.com/wyfs02/M00/48/4D/wKiom1QGygrx2ERtAAGbk4r5jVI138.jpg" target="_blank"></a>

圖2 導入資料

選擇資料源(從本地),接着選“從檔案和目錄”,選擇/var/log即可。如圖3所示。從圖中我們也可以看出Splunk預設支援的日志種類很多,包含大多數運維人員平時工作中所需要分析的日志類型。

<a href="http://s3.51cto.com/wyfs02/M02/48/4E/wKioL1QGyhuyW9HHAAIFcO2fPoY593.jpg" target="_blank"></a>

圖3 選擇本地資料源

點選應用菜單下方的search即可看到生成的日志報告(比如cron日志,mail日志。當然也可以把我們所需要記錄的日志比如php錯誤日志等都輸出到/var/log目錄下,對其進行分析)。

7 .Splunk搜尋的使用

在Splunk首頁中點選右上角的Home按鈕,再選擇添加資料,選擇伺服器本地檔案,當你選擇正确系統提示:“Use auto-detected source type:access_combined_wcookie”最後儲存配置,當系統提示索引建立後就可以檢視日志。

<a href="http://s3.51cto.com/wyfs02/M02/48/4D/wKiom1QGyiOC14z7AANgQKI1IrQ746.jpg" target="_blank"></a>

圖4 開始搜尋

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

1).比對及掃描事件記錄:在搜尋中,Splunk在檢索時将顯示兩組事件記錄:一組為比對事件記錄,另一組為已掃描事件記錄。搜尋完成後,時間軸上方的記錄顯示的是比對事件的總數。時間軸下方事件清單上方的記錄顯示使用者所選時間範圍内的時間數目。稍後可以看到,當向下分析事件時,此數目會發生變化。

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

3).字段菜單:前面說過将資料編入索引時,Splunk可自動按名稱和值的格式識别并生成資料資訊,我們把這稱作是字段。當您進行搜尋時,Splunk将把其從字段菜單上識别的所有字段列在搜尋結果旁邊。您可以選擇其他字段來顯示您搜尋的事件。所選字段都已被設定為搜尋結果可見格式。将預設顯示主機、源及源類型。其它字段是Splunk從您的搜尋結果中抽取的。

4).事件檢視器:事件檢視器将顯示Splunk搜尋到的與您的搜尋比對的事件。事件檢視器位于時間軸下方。事件預設顯示為清單,您也可以選用表格檢視。選擇按表格形式檢視事件時,表格隻顯示已選字段。

8.Splunk搜尋執行個體解析

我們先構造一個場景,假如有人投訴網站,說在送出表單時總是提示有某個IP位址錯誤, 10.2.1.44,這時我們該如何利用搜尋功能來查找問題呢?

我們可以輸入如下内容:sourcetype=access_combined_wcookie10.2.1.44

當然,如果你不知道資料源,那麼你也可以直接輸入IP位址,這樣比對的條目會非常多,如果能精确找到資料源就很容易找到問題。

<a href="http://s3.51cto.com/wyfs02/M00/48/4D/wKiom1QGyjLAH11ZAALr2TxuO08855.jpg" target="_blank"></a>

圖5  使用搜尋功能

access_combined_wcookie代表資料源,要根據你送出的日志而定。注意,當您在搜尋欄中輸入的同時,将彈出Splunk“搜尋助手”這個很重要,可以幫助你解決搜尋中的很多問題。就如同MS Office中的幫助一樣好用。為了縮小範圍我們做如下操作,我們還應該在搜尋欄中鍵入purchase:

sourcetype=access_combined_wcookie10.2.1.44 purchase

<a href="http://s3.51cto.com/wyfs02/M01/48/4E/wKioL1QGykKgUfPUAAN9EciBMPs985.jpg" target="_blank"></a>

圖6 縮小搜尋範圍

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

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

Apache伺服器日志中發現大部分事件的狀态碼為“200”,它代表“成功”。現在有人投訴網站出現了問題,那麼就要找出不是200的日志。我們使用布爾運算方法。

<a href="http://s3.51cto.com/wyfs02/M00/48/4E/wKioL1QGyk6hxKl1AAONWBNLLMY018.jpg" target="_blank"></a>

圖7 使用布爾運算符查找

這時比對條數驟減到31條。這時發現了HTTP伺服器(503)錯誤,用這個方法可以快速排除無關事件。使用布爾運算符可進行搜尋的資訊更多,Splunk支援的布爾運算符有與、或和非是以第四步的搜尋和下述語句相同:

sourcetype=access_* AND 10.2.1.44 ANDpurchase NOT 200

10.使用時間軸功能

<a href="http://s3.51cto.com/wyfs02/M00/48/4F/wKioL1QGyl_TPmIpAATZ-e71AXE614.jpg" target="_blank"></a>

圖8 使用時間軸

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(事件檢視器)程式打開事件檢視器,在左側視窗中選擇“系統”,從右側系統事件中查找事件ID為6005、6006的事件(事件ID号為6005的事件表示事件日志服務已啟動,即開機事件ID:6006表示關機),它們對應的時間就分别是開機時間和關機時間。

12.看視訊學用Splunk分析日志

技巧:

在試用版的Splunk中有500MB日志的限制(個人還無法突破限制),如果你直接将主機架設在生産環境,很快就到達上限,也許你一着急,就把他解除安裝了,進而錯失真麼一款優秀的工具,建議開始測試時,找幾個典型測試裝置在實驗室進行功能測試,經過自評價後,有必要在聯系商務人員,他們可以免費為您企業進行安裝調試。

另外,如果你懶得注冊賬戶,想直接下載下傳Splunk 4.1.7請點選這裡:

2016年 更新版 下載下傳

 本文轉自 李晨光 51CTO部落格,原文連結:http://blog.51cto.com/chenguang/1548355,如需轉載請自行聯系原作者