taibeihacker
Moderator
0x00 初识splunk
一、公司:
美國Splunk公司,成立於2004年,2012年納斯達克上市,第一家大數據上市公司,榮獲眾多獎項和殊榮。 總部位於美國舊金山,倫敦為國際總部,香港設有亞太支持中心,上海設有海外第一個研發中心。目前國內最大的客戶許可是800GB/天。 產品:Splunk Enterprise【企業版】、Splunk Free【免費版】、Splunk Cloud、Splunk Hunk【大數據分析平台】、Splunk Apps【基於企業版的插件】等。二、产品:
Splunk Enterprise,企業版,B/S架構,按許可收費,即每天索引的數據量。(購買20GB的許可,則默認每天可索引20G數據量;一次購買永久使用;如果使用試用版,試用期結束之後會切換到免費版)
Splunk Free,免費版,每天最大數據索引量500MB,可使用絕大多數企業版功能。
(免費版沒有例如:身份驗證、分佈式搜索、集群等功能)
Splunk Universal Forwarder,通用轉發器,是Splunk提供的數據採集組件,免費,部署在數據源端,無UI界面,非常輕量,佔用資源小。
(轉發器無許可證,是免費的;企業版專用的;所以部署在數據源,例如:部署在你的WEB服務器上,監控你的WEB日誌,實時監控,產生一條日誌則轉發一條,進行增量轉發;一般配置修改配置文件或者使用CLI命令。佔用資源小)
三、Splunk是什么
面向機器數據的全文搜索引擎;(使用搜索引擎的方式處理數據;支持海量級數據處理)
準實時的日誌處理平台;
基於時間序列的索引器;
大數據分析平台;
一體化的平台:數據採集-存儲-分析-可視化;
通用的搜索引擎,不限數據源,不限數據格式;
提供榮獲專利的專用搜索語言SPL(Search Processing Language),語法上類似SQL語言
Splunk Apps 提供更多功能
(針對操作系統、思科網絡設備,splunk都提供了專用的APP,接入數據源都可以看到直觀的儀盤表。)
四、机器数据是什么
機器數據是指:設備和軟件產生的日誌數據、性能數據、網絡數據包。這些數據都是一些非結構化的數據,我們可以統一將這些數據統一採集到splunk之後,splunk可以對這些數據進行索引、調查、監控、可視化等。
五、Splunk组件
索引器:索引器是用於為數據創建索引的Splunk Enterprise 實例。索引器將原始數據轉換為事件並將事件存儲至索引(Index)中。索引器還搜索索引數據,以響應搜索請求。搜索頭:在分佈式搜索環境中,搜索頭是處理搜索管理功能、指引搜索請求至一組搜索節點,然後將結果合併返回至用戶的Splunk Enterprise 實例。如果該實例僅搜索不索引,通常被稱為專用搜索頭。
搜索節點:在分佈式搜索環境中,搜索節點是建立索引並完成源自搜索頭搜索請求的Splunk
Enterprise實例。
轉發器:轉發器是將數據轉發至另一個Splunk Enterprise 實例(索引器或另一個轉發器)或至第三方系統的Splunk Enterprise 實例。
接收器:接收器是經配置從轉發器接收數據的Splunk Enterprise 實例。接收器為索引器或另一個轉發器。
應用:應用是配置、知識對象和客戶設計的視圖和儀表板的集合,擴展Splunk
Enterprise 環境以適應Unix 或Windows 系統管理員、網絡安全專家、網站經理、業務分析師等組織團隊的特定需求。單個Splunk Enterprise 安裝可以同時運行多個應用。
六、Splunk分布式架构

如上圖所示:
1、可分為三層:第一層為數據源端:如應用服務器、服務總線、網絡設備、防火牆等。
2、如果要採集這些數據例如:應用服務器可安裝splunk的轉發器,防火牆的數據可以通過TCP\UPD端口將數據發送到Splunk的中間層,Splunk的中間層稱為splunk的索引器(接收器),數據將存儲在這一層。
3、用戶使用search
head檢索實例,search head將檢索請求發送到各個索引器中。再把結果匯集到search head中,最後呈現給用戶觀看。
4、 數據源的轉發器會將數據轉發到多個splunk的實例中,轉發器將進行自動負載均衡。
七、通用转发器
轉發器分為重量(Heavy)、輕量(Light)和通用轉發器(Universal)三種類型。最常用的是通用轉發器,其他兩類很少使用。
與完整Splunk Enterprise實例相比,通用轉發器的唯一目的是轉發數據。與完整Splunk Enterprise 實例不同的是,您無法使用通用轉發器索引或搜索數據。
為實現更高性能和更低的內存佔用,它具有幾個限制:
通用轉發器沒有搜索、索引或告警功能。
通用轉發器不解析數據。
通用轉發器不通過syslog 輸出數據。
與完整Splunk Enterprise 不同的是,通用轉發器不包含捆綁的Python 版本。
八、多种应用场景

0x01 Linux上安装Splunk
一、配置时间:
配置一致的時間建議搭建企業內NTP服務器,將所有相關設備指向該服務器
(如果各個機器的時間不一致,就會因此產生問題。所以建議搭建一台NTP服務器,讓所有設備的時間指向NTP服務器,讓所有設備統一時間)
二、安装准备
本次安裝基於CentOS 6.7, 64位建議部署在64位環境下
Splunk Enterprise:
splunk-6.4.2-00f5bb3fa822-Linux-x86_64.tgz
Splunk 通用轉發器:
splunkforwarder-6.4.2-00f5bb3fa822-Linux-x86_64.tgz
本次以root用戶安裝(可以使用非root)
三、
安裝步驟1)、wget下載tgz的壓縮包。
wget -chttps://download.splunk.com/products/splunk/releases/6.5.1/linux/splunk-6.5.1-f74036626f0c-Linux-x86_64.tgz ;
2)、解壓縮:#tar
-zxvf splunk-6.5.1-f74036626f0c-Linux-x86_64.tgz -C /opt (默認我們解壓到/opt目錄下)

3)、splunk的可執行程序都放在/opt/splunk/bin/下,啟動該程序應執行splunk,splunk命令參數如下:
#注意:以下命令我們稱之為CLI命令,如下:通用轉發器和splunk命令都可以如下執行
./splunk
start //啟動splunk
--accept-license //自動接收許可
restart //重啟splunk
status //查看splunk狀態
version //查看splunk版
開始啟動的時候記得記住加上–accept-license,這樣更便於我們安裝。

4)、splunk安裝之後開啟Splunk Web端口8000。 Splunkd端口8089端為管理端口。 安裝之後我們可以在瀏覽器中訪問splunk 8000端口的WEB界面。

注意:如果外部計算機無法訪問它。需要關閉iptables服務或將該端口加入策略中
#services iptables stop [其它類unix系統關閉防火牆]
systemctl stop firewalld.service [CentOS 7下停止防火牆]
Splunk地址如:http://192.168.199.205:8000,進入splunk默認的管理員為:admin 、密碼為changeme。第一登錄便會強制要求修改密碼
配置splunk開機啟動./splunk
enable boot-start //這樣每次開機,splunk服務都會開機啟動

#通過上述命令查看splunk狀態和版本信息./splunk status

#查看進程相關信息: ps -f | grep splunk

四、 Splunk的卸载
./splunk disable boot-start //關閉自啟動./splunk stop //停止splunk
./rm–rf/opt/splunk
//移除splunk安裝目錄
卸載要慎重,注意數據備份
五、安装Splunk 通用转发器
1)、將通用轉發器解壓到opt目錄下,Splunk轉發器的安裝方法和splunk一致,但它無UI界面。tar zxvf
splunkforwarder-6.4.2-00f5bb3fa822-Linux-x86_64.tgz -C /opt
2)、切換到Splunkforwarder的bin目錄下去啟動通用轉發器
cd /opt/splunkforwarder/bin///切換到通用轉發器的可執行程序目錄
./splunk start –accept-license //啟動通用轉發器
注意:如果splunk web和通用轉發器安裝在同一服務器,通用轉發器的管理端口也是8090,則會提示被splunk佔用,選擇yes修改轉發器管理端口,如下:

我們可通過CLI命令查看splunkd的端口
./splunk show splunkd-port //不過這裡得輸入splunk登錄的賬號密碼

./splunk set splunkd-port 8091 //修改splund的端口為8091,提示:重啟生效

3)、修改通用轉發器密碼
默認密碼:admin/changeme
修改密碼如下:其中role是角色,auth是驗證原密碼
./splunk edit user admin -password ‘admin’ -role admin -auth admin:changeme

0x02 Windows上安装Splunk
一、安装准备:
#搭建NPT服務器配置一致的時間
建議搭建企業內NTP服務器,將所有相關設備指向該服務器
#安裝用戶的選擇
本地系統用戶,本次採用此方式
域用戶,較複雜,請參考文檔
#安裝環境
本次安裝基於Windows 7, 64位
建議部署在64位環境下
Splunk Enterprise:
splunk-6.4.2-00f5bb3fa822-x64-release.msi
Splunk 通用轉發器:
splunkforwarder-6.4.2-00f5bb3fa822-x64-release.msi
二、
安裝步驟GUI安裝,比較簡單, 此處不演示。
Splunk默認安裝在“C:\Program
Files\Splunk”
安裝之後會註冊兩個服務,它的顯示名稱為:Splunkd Service、splunkweb (legacy purposes only)

啟動:splunk start
關閉:splunk stop
重啟:splunk restart
查看狀態:splunk status
查看版本:splunk version
通過Windows DOS命令:
net start splunkd
net stop splunkd
通過服務面板(services.msc)

#查看splunk web的端口命令為:
splunk show web-port

三、卸载splunk
依照上方的講解的停止splunkd。通過Windows控制面板的卸載程序卸載。

四、
安裝Splunk 通用轉發器GUI安裝,比較簡單,選擇:自定義(Customize Options),如下可選擇SSL證書。

#其次安裝的用戶如下:
local system :本地系統用戶
domain account :域賬號
#選擇是否收集的日誌選項(Windows
Event logs)。如:應用日誌、安全日誌、系統日誌、轉發事件日誌、安裝日誌。
#選擇是否收集Windows
的性能數據(Performance Monitor)。如:CPU、內存、磁盤、網絡狀態等
#注:收集這些日誌都是Splunk的Splunk Add-on for Microsoft Windows插件,你在NEXT下一步則可安裝它。

由於收集的這些日誌會轉發到splunk企業版中winEventlog的索引中,但是由於splunk 企業版沒有創建該索引,如果需要創建要么手動創建,要么安裝一個Splunk APP.創建索引可在:
進入Splunk Web→設置→索引→新建索引

下一步(Receiving Indexer),這裡是設置接收器,即上述勾選的系統日誌將轉發到哪個IP和端口上。由於我們的splunk企業版在本地,所以這裡寫localhost,開啟一個10001端口讓這些日誌轉發到Splunk entiprise上。

#接著在splunk
enterprise上配置接收。
進入Splunk Web→設置→轉發和接收→接收數據→新增→偵聽此端口為:10001(剛才設置的接收端口)

#使用splunk的CLI命令可以查看監聽的端口
splunk display listen

當然你也可以通過splunk CLI命令來增加監聽端口。
splunk enable listen 10002
此時你便可以查看wineventlog索引接收的數據了

此時可以系統自帶的APP (Search Reporting)使用SPL語言來搜索索引事件。

#注:Windows 下會自動解決Splunk Enterprise和通用轉發器的管理端口8090的端口衝突。
0x03 splunk安装后的配置
一、配置Splunk的服务器名称
設置-服務器設置-常規設置默認是服務器主機名
也可通過命令行修改
./splunk set servername 服務器