Splunk学习与实践
?
一、? Splunk公司與產(chǎn)品
美國(guó)Splunk公司,成立于2004年,2012年納斯達(dá)克上市,第一家大數(shù)據(jù)上市公司,榮獲眾多獎(jiǎng)項(xiàng)和殊榮。總部位于美國(guó)舊金山,倫敦為國(guó)際總部,香港設(shè)有亞太支持中心,上海設(shè)有海外第一個(gè)研發(fā)中心。
產(chǎn)品:Splunk Enterprise【企業(yè)版】、Splunk Free【免費(fèi)版】、Splunk Cloud、Splunk Hunk【大數(shù)據(jù)分析平臺(tái)】、Splunk Apps【基于企業(yè)版的插件】等。企業(yè)版按索引的數(shù)據(jù)量收費(fèi),免費(fèi)版每天最大數(shù)據(jù)索引量500MB,可使用絕大多數(shù)企業(yè)版功能。
二、? Splunk能夠做什么
讓所有人均可訪問(wèn)機(jī)器數(shù)據(jù)、讓機(jī)器數(shù)據(jù)對(duì)所有人有用并具有價(jià)值!Splunk是機(jī)器數(shù)據(jù)的引擎,使用Splunk可收集、索引和利用所有應(yīng)用程序、服務(wù)器和設(shè)備生成的快速移動(dòng)型計(jì)算機(jī)數(shù)據(jù)。使用Splunk處理計(jì)算機(jī)數(shù)據(jù),可讓您在幾分鐘內(nèi)解決問(wèn)題和調(diào)查安全事件;使用Splunk可以監(jiān)視您的端對(duì)端基礎(chǔ)結(jié)構(gòu),避免服務(wù)性能降低或中斷;以較低成本滿足合規(guī)性要求;關(guān)聯(lián)并分析跨越多個(gè)系統(tǒng)的復(fù)雜事件,獲取新層次的運(yùn)營(yíng)可見(jiàn)性以及 IT 和業(yè)務(wù)智能。
每個(gè)環(huán)境都有獨(dú)特的機(jī)器數(shù)據(jù)空間,以下是一些示例:
| 數(shù)據(jù)類型 | 位置 | 可以做什么 |
| 應(yīng)用日志 | 本地日志文件、log4j、log4net、Weblogic、WebSphere、JBoss、.NET、PHP | 用戶活動(dòng)、欺詐檢測(cè)、應(yīng)用性能 |
| 業(yè)務(wù)流程日志 | 業(yè)務(wù)流程管理日志 | 跨渠道客戶活動(dòng)、購(gòu)買、帳戶變更以及問(wèn)題報(bào)表 |
| 呼叫詳細(xì)信息記錄 | 呼叫詳細(xì)信息記錄 (CDR)、計(jì)費(fèi)數(shù)據(jù)記錄、事件數(shù)據(jù)記錄均由電信和網(wǎng)絡(luò)交換機(jī)所記錄。 | 計(jì)費(fèi)、收入保證、客戶保證、合作伙伴結(jié)算,營(yíng)銷智能 |
| 點(diǎn)擊流數(shù)據(jù) | Web 服務(wù)器、路由器、代理服務(wù)器和廣告服務(wù)器 | 可用性分析、數(shù)字市場(chǎng)營(yíng)銷和一般調(diào)查 |
| 配置文件 | 系統(tǒng)配置文件 | 如何設(shè)置基礎(chǔ)設(shè)施、調(diào)試故障、后門(mén)攻擊、"定時(shí)炸彈"病毒 |
| 數(shù)據(jù)庫(kù)審計(jì)日志 | 數(shù)據(jù)庫(kù)日志文件、審計(jì)表 | 如何根據(jù)時(shí)間修改數(shù)據(jù)庫(kù)數(shù)據(jù)以及如何確定修改人 |
| 文件系統(tǒng)審計(jì)日志 | 敏感數(shù)據(jù)存儲(chǔ)在共享文件系統(tǒng)中 | 監(jiān)測(cè)并審計(jì)敏感數(shù)據(jù)讀取權(quán)限 |
| 管理并記錄 API | 通過(guò) OPSEC Log Export API (OPSEC LEA) 和其他 VMware 和 Citrix 供應(yīng)商特定 API 的 Checkpoint 防火墻 | 管理數(shù)據(jù)和日志事件 |
| 消息隊(duì)列 | JMS、RabbitMQ 和 AquaLogic | 調(diào)試復(fù)雜應(yīng)用中的問(wèn)題,并作為記錄應(yīng)用架構(gòu)基礎(chǔ) |
| 操作系統(tǒng)度量、狀態(tài)和診斷命令 | 通過(guò)命令行實(shí)用程序(例如 Unix 和 Linux 上的 ps 與 iostat 以及 Windows 上的性能監(jiān)視器)顯示的 CPU、內(nèi)存利用率和狀態(tài)信息 | 故障排除、分析趨勢(shì)以發(fā)現(xiàn)潛在問(wèn)題并調(diào)查安全事件 |
| 數(shù)據(jù)包/流量數(shù)據(jù) | tcpdump 和 tcpflow 可生成 pcap 或流量數(shù)據(jù)以及其他有用的數(shù)據(jù)包級(jí)和會(huì)話級(jí)信息 | 性能降級(jí)、超時(shí)、瓶頸或可疑活動(dòng)可表明網(wǎng)絡(luò)被入侵或者受到遠(yuǎn)程攻擊 |
| SCADA 數(shù)據(jù) | 監(jiān)視控制與數(shù)據(jù)采集 (SCADA) | 識(shí)別 SCADA 基礎(chǔ)結(jié)構(gòu)中的趨勢(shì)、模式和異常情況,并用于實(shí)現(xiàn)客戶價(jià)值 |
| 傳感器數(shù)據(jù) | 傳感器設(shè)備可以根據(jù)監(jiān)測(cè)環(huán)境條件生成數(shù)據(jù),例如氣溫、聲音、壓力、功率以及水位 | 水位監(jiān)測(cè)、機(jī)器健康狀態(tài)監(jiān)測(cè)和智能家居監(jiān)測(cè) |
| Syslog | 路由器、交換機(jī)和網(wǎng)絡(luò)設(shè)備上的 Syslog | 故障排除、分析、安全審計(jì) |
| Web 訪問(wèn)日志 | Web 訪問(wèn)日志會(huì)報(bào)告 Web 服務(wù)器處理的每個(gè)請(qǐng)求 | Web 市場(chǎng)營(yíng)銷分析報(bào)表 |
| Web 代理日志 | Web 代理記錄用戶通過(guò)代理發(fā)出的每個(gè) Web 請(qǐng)求 | 監(jiān)測(cè)并調(diào)查服務(wù)條款以及數(shù)據(jù)泄露事件 |
| Windows 事件 | Windows 應(yīng)用、安全和系統(tǒng)事件日志 | 使用業(yè)務(wù)關(guān)鍵應(yīng)用、安全信息和使用模式檢測(cè)問(wèn)題。 |
| 線上數(shù)據(jù) | DNS 查找和記錄,協(xié)議級(jí)信息,包括標(biāo)頭、內(nèi)容以及流記錄 | 主動(dòng)監(jiān)測(cè)應(yīng)用性能和可用性、最終客戶體驗(yàn)、事件調(diào)查、網(wǎng)絡(luò)、威脅檢測(cè)、監(jiān)控和合規(guī)性 |
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
三、? Splunk架構(gòu)與組件
?
?
架構(gòu)最下層:Splunk通過(guò)監(jiān)控文件和目錄、監(jiān)控網(wǎng)絡(luò)端口、運(yùn)行腳本的方式獲取數(shù)據(jù)。
Data Routing Cloningand and Load Balancing:數(shù)據(jù)復(fù)制與負(fù)載均衡,
Index:顧名思義,它跟索引有關(guān),實(shí)際上他不僅僅負(fù)責(zé)為數(shù)據(jù)建立索引,還負(fù)責(zé)響應(yīng)查找索引數(shù)據(jù)的用戶請(qǐng)求,還有讀取數(shù)據(jù)和負(fù)責(zé)查找管理工作。雖然indexer可以在查找它本身的數(shù)據(jù),但是,在多indexer的集群中,可以通過(guò)叫“search head”的組件來(lái)整合多個(gè)indexer,對(duì)外提供統(tǒng)一的查詢管理和服務(wù)。
Search:專用的搜索語(yǔ)言,原始事件搜索、報(bào)表生成搜索,并可在搜索中自動(dòng)學(xué)習(xí)“知識(shí)”,用戶也可以自定義知識(shí),從而使搜索越來(lái)越智能。
最上面兩層:各類報(bào)表、告警,以命令行窗口,web圖形界面接口和其他接口。
Splunk的幾個(gè)重要組件:
索引器:索引器是用于為數(shù)據(jù)創(chuàng)建索引的Splunk Enterprise 實(shí)例。索引器將原始數(shù)據(jù)轉(zhuǎn)換為事件并將事件存儲(chǔ)至索引(Index)中。索引器還搜索索引數(shù)據(jù),以響應(yīng)搜索請(qǐng)求。
搜索頭:在分布式搜索環(huán)境中,搜索頭是處理搜索管理功能、指引搜索請(qǐng)求至一組搜索節(jié)點(diǎn),然后將結(jié)果合并返回至用戶的Splunk Enterprise 實(shí)例。如果該實(shí)例僅搜索不索引,通常被稱為專用搜索頭。
搜索節(jié)點(diǎn):在分布式搜索環(huán)境中,搜索節(jié)點(diǎn)是建立索引并完成源自搜索頭搜索請(qǐng)求的Splunk Enterprise實(shí)例。
轉(zhuǎn)發(fā)器:轉(zhuǎn)發(fā)器是將數(shù)據(jù)轉(zhuǎn)發(fā)至另一個(gè)Splunk Enterprise 實(shí)例(索引器或另一個(gè)轉(zhuǎn)發(fā)器)或至第三方系統(tǒng)的Splunk Enterprise 實(shí)例。
接收器:接收器是經(jīng)配置從轉(zhuǎn)發(fā)器接收數(shù)據(jù)的Splunk Enterprise 實(shí)例。接收器為索引器或另一個(gè)轉(zhuǎn)發(fā)器。
應(yīng)用:應(yīng)用是配置、知識(shí)對(duì)象和客戶設(shè)計(jì)的視圖和儀表板的集合,擴(kuò)展Splunk Enterprise 環(huán)境以適應(yīng)Unix 或Windows 系統(tǒng)管理員、網(wǎng)絡(luò)安全專家、網(wǎng)站經(jīng)理、業(yè)務(wù)分析師等組織團(tuán)隊(duì)的特定需求。單個(gè)Splunk Enterprise 安裝可以同時(shí)運(yùn)行多個(gè)應(yīng)用。
四、? Splunk分布式部署
?
?
如果系統(tǒng)平臺(tái)比較大,產(chǎn)生的數(shù)據(jù)量比較大,那么可以不斷擴(kuò)展splunk集群,splunk具備這種擴(kuò)展能力。用戶可以部署任意多個(gè)forwarder,用來(lái)轉(zhuǎn)發(fā)剛剛產(chǎn)生的原始數(shù)據(jù)。Indexer也可以部署成為一個(gè)集群,統(tǒng)一下層提供接收原始數(shù)據(jù)、建立索引的服務(wù),對(duì)上層提供搜索的服務(wù)。用戶還可以部署多臺(tái)用于搜索的Search Header。所以,用戶可以根據(jù)自己平臺(tái)的實(shí)際工作量來(lái)部署自己的splunck集群大小。
五、? Splunk的安裝
Splunk支持在各類操作系統(tǒng)上安裝,下面以Linux系統(tǒng)安裝為例:
1、上傳splunk安裝包splunk-6.4.2-00f5bb3fa822-Linux-x86_64.tgz至/opt目錄。
2、解壓安裝壓縮包
/tar –zxvf splunk-6.4.2-00f5bb3fa822-Linux-x86_64.tgz? //解壓,解壓異常請(qǐng)注意文件上傳是否正確。
3、進(jìn)入splunk命令文件夾(bin)
cd? /opt/splunk/bin?? //進(jìn)入splunk? bin目錄
?
4、檢查splunk狀態(tài)
./splunk status? //檢查splunk狀態(tài)是否正常,第一次會(huì)彈出license告知,按提示點(diǎn)擊確定
?
?
5、啟動(dòng)splunk
./splunk?? start?? //啟動(dòng)splunk
?
?
./splunk?? status? //檢查啟動(dòng)狀態(tài)
?
?
6、Splunk默認(rèn)web登陸端口是8000,在瀏覽器中http://ip:8000,可第一次登陸,如果無(wú)法登陸請(qǐng)檢查本機(jī)防火墻。
默認(rèn)用戶名:admin,密碼:changeme,第一次登陸成功后要求重置密碼。
?
?
7、設(shè)置splunk開(kāi)機(jī)啟動(dòng)
./splunk? enable? boot-start
?
?
8、查看splunk進(jìn)程信息
ps –f | grep splunk
?
?
六、? Splunk卸載
1、進(jìn)入splunk文件夾
cd /opt/splunk/bin??
2、檢查splunk狀態(tài)
./splunk? status
3、關(guān)閉splunk服務(wù)
/splunk ?stop
?
?
4、刪除splunk安裝目錄
rm –rf ?/opt/splunk
七、? Splunk基本配置
所有的設(shè)置基本上都可以通過(guò)Web頁(yè)面和splunk CLI命令兩種方式。
1、Web頁(yè)面:
?
?
可修改splunk主機(jī)名、管理端口、web登陸端口,修改后需重啟splunk生效。
?
?
2、CLI命令
./splunk start??? //啟動(dòng)
./splunk stop?? //關(guān)閉
./splunk restart? //重啟
./splunk status?? //查看狀態(tài)
./splunk version?? //查看版本
? ./splunk show splunkd-port? //查看管理端口
?
?
? ./splunk show web-port?? //查看web登陸管理端口
./splunk set web-port 80? //修改web登陸管理端口為80
?
./splunk set servername ????//新的服務(wù)器名稱 //設(shè)置服務(wù)器名稱
./splunk set default-hostname ??新的主機(jī)名稱 //設(shè)置默認(rèn)主機(jī)名稱
./splunk enable web-ssl ?????//啟用SSL
./splunk disable web-ssl ????//關(guān)閉SSL
./splunk edit user admin –password ‘newpassword’ –authadmin:oldpassword??? ?//修改用戶密碼
./splunk add user ??//新增用戶
?
?
./splunk add user 新的用戶名 -password ‘新用戶密碼’ -full-name ‘設(shè)置它的全名’ –role User(這個(gè)是角色)
?
?
./splunk list user??? //列出用戶
?
?
./splunk remove user??? ?//刪除用戶
?
?
八、? 簡(jiǎn)單應(yīng)用實(shí)例——手工添加數(shù)據(jù)
1、點(diǎn)擊Splunk首頁(yè)——添加數(shù)據(jù)——上載
?
?
?
2、選擇要上傳的文件,按提示點(diǎn)擊確定
3、上傳完成后,splunk會(huì)自動(dòng)生成字段,也可以按需要根據(jù)“正則表達(dá)式”或“分隔符”自己提取字段
?
?
4、可以根據(jù)需要進(jìn)行各類搜索、計(jì)算,如何搜索需要學(xué)習(xí)splunk的SPL搜索語(yǔ)言,推薦閱讀《Splunk實(shí)踐指南_》
?
九、? 簡(jiǎn)單應(yīng)用實(shí)例——監(jiān)控splunk本地的數(shù)據(jù)
1、點(diǎn)擊splunk首頁(yè)——添加數(shù)據(jù)——監(jiān)視——文件和目錄
?
?
?
2、選擇“瀏覽”,添加需要監(jiān)控的本地目錄,索引、目錄都可以先選擇默認(rèn),在稍后在做具體解釋。
?
?
3、添加完成后,實(shí)時(shí)監(jiān)視文件變化,也可以進(jìn)行搜索了。
?
?
?
十、? 簡(jiǎn)單應(yīng)用實(shí)例——監(jiān)控遠(yuǎn)程服務(wù)器數(shù)據(jù)
可以通過(guò)syslog或splunk通用轉(zhuǎn)發(fā)器,把遠(yuǎn)程服務(wù)器的數(shù)據(jù)傳到splunk服務(wù)器進(jìn)行監(jiān)視,下面重點(diǎn)介紹splunk通用轉(zhuǎn)發(fā)器的使用。
(一)、splunkforwarder安裝與配置
1、在需要收集日志的服務(wù)器上安裝splunkforwarder
?
?
2、切換至splunkforwarder的可執(zhí)行目錄(bin),啟用轉(zhuǎn)發(fā)器
./splunk start? //根據(jù)提醒點(diǎn)確定
3、查看通用轉(zhuǎn)發(fā)器的端口(默認(rèn)用戶名:admin、密碼:changeme)
./splunk show splunkd-port
?
?
4、修改通用轉(zhuǎn)發(fā)器的密碼
/splunk edit user admin -password ‘新密碼’ -role admin -auth admin:changeme
?
?
(二)、下面我們將遠(yuǎn)程服務(wù)器的?/var/log/audit/發(fā)給splunk
1、先到splunk上為這個(gè)實(shí)例創(chuàng)建一個(gè)索引,使用默認(rèn)索引也可以,但建議為主要應(yīng)用創(chuàng)建各自的索引
通過(guò)命令創(chuàng)建索引(也可以通過(guò)web頁(yè)面創(chuàng)建)
./splunk add index linux_audit
?
?
2、在splunkforwarder服務(wù)器上添加一個(gè)監(jiān)控項(xiàng)
./splunk add monitor /var/log/audit –index linux_audit
?
?
3.添加splunk接收服務(wù)器和接口
./splunk add forward-server 192.168.40.129:9997
?
?
4.查看轉(zhuǎn)發(fā)服務(wù)器
./splunk list forward-server
?
?
5.splunk服務(wù)器上檢查開(kāi)啟監(jiān)聽(tīng)端口
./splunk enable listen 要啟用的端口號(hào) // 開(kāi)啟splunk接收的指定端口
./splunk disable listen 要禁用的端口號(hào) // 關(guān)閉splunk接收的指定端口
./splunk display listen // 顯示已啟用的splunk接收的端口
?
(三)、登陸Web頁(yè)面,查看搜索
1、index=“l(fā)inux_audit”(支持命令的自動(dòng)補(bǔ)全)
?
?
?
十一、??? 利用Splunk搭建SOC平臺(tái)
收集一切可以收集的數(shù)據(jù)(IDS、出入口流量、防病毒、端口掃描等各類信息安全軟件、工具的日志),利用Splunk進(jìn)行監(jiān)控、告警、根據(jù)需要快速搜索、生成報(bào)表,舉例如下:
1、通過(guò)Security?Onion?App for?Splunk?software,監(jiān)控出入口網(wǎng)絡(luò)流(包括IDS威脅監(jiān)控、外網(wǎng)開(kāi)放端口監(jiān)控、各協(xié)議的連接監(jiān)控……)
?
?
?
?
2、外網(wǎng)IP開(kāi)放端口掃描
Nmap掃描日志自動(dòng)上傳至Splunk,在儀表盤(pán)中制定關(guān)注的面板(如高危端口開(kāi)放展示等)。
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/Eleven-Liu/p/7193959.html
總結(jié)
以上是生活随笔為你收集整理的Splunk学习与实践的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2017年微信网名大全
- 下一篇: 如何杀死进程