Splunk 快速指南



Splunk - 概述

Splunk 是一款軟體,它可以處理機器資料和其他形式的大資料並從中提取洞察。這些機器資料是由執行 Web 伺服器的 CPU、物聯網裝置、移動應用程式日誌等生成的。這些資料無需提供給終端使用者,也沒有任何業務意義。但是,它們對於理解、監控和最佳化機器效能至關重要。

Splunk 可以讀取非結構化、半結構化或少量結構化資料。讀取資料後,它允許搜尋、標記、建立這些資料的報表和儀表盤。隨著大資料時代的到來,Splunk 現在能夠從各種來源(可能是也可能不是機器資料)攝取大資料,並在其上執行分析。

因此,從一個簡單的日誌分析工具開始,Splunk 已經發展成為一個通用的非結構化機器資料和各種形式的大資料分析工具。

產品類別

Splunk 提供以下三種不同的產品類別:

  • Splunk Enterprise - 它被擁有大型 IT 基礎設施和 IT 驅動型業務的公司使用。它有助於收集和分析來自網站、應用程式、裝置和感測器等的資料。

  • Splunk Cloud - 它是雲託管平臺,具有與企業版相同的特性。它可以從 Splunk 本身或透過 AWS 雲平臺獲得。

  • Splunk Light - 它允許在一個位置即時搜尋、報告和告警所有日誌資料。與其他兩個版本相比,它的功能和特性有限。

Splunk 特性

在本節中,我們將討論企業版的關鍵特性:

資料攝取

Splunk 可以攝取各種資料格式,例如 JSON、XML 和非結構化機器資料(如 Web 和應用程式日誌)。非結構化資料可以根據使用者的需要建模成資料結構。

資料索引

Splunk 對攝取的資料進行索引,以便更快地根據不同的條件進行搜尋和查詢。

資料搜尋

Splunk 中的搜尋涉及使用索引資料來建立指標、預測未來趨勢和識別資料中的模式。

使用告警

Splunk 告警可用於在分析的資料中發現特定條件時觸發電子郵件或 RSS 提要。

儀表盤

Splunk 儀表盤可以以圖表、報表和資料透視表等形式顯示搜尋結果。

資料模型

索引資料可以建模為一個或多個數據集,這些資料集基於專業的領域知識。這使得終端使用者更容易瀏覽業務案例,而無需學習 Splunk 使用的搜尋處理語言的技術細節。

Splunk - 環境

在本教程中,我們將安裝企業版。此版本提供 60 天的免費試用,所有功能均已啟用。您可以使用以下連結下載安裝程式,該連結適用於 Windows 和 Linux 平臺。

https://www.splunk.com/en_us/download/splunk-enterprise.html.

Linux 版本

Linux 版本可從上述下載連結下載。我們選擇 .deb 包型別,因為安裝將在 Ubuntu 平臺上進行。

我們將逐步學習這個過程:

步驟 1

下載 .deb 包,如下圖所示:

Linux Install1

步驟 2

轉到下載目錄,並使用上面下載的包安裝 Splunk。

Linux Install2

步驟 3

接下來,您可以使用帶有接受許可證引數的以下命令啟動 Splunk。它會要求您提供管理員使用者名稱和密碼,您應該提供並記住它們。

Linux Install3

步驟 4

Splunk 伺服器啟動並顯示可以訪問 Splunk 介面的 URL。

Linux Install4

步驟 5

現在,您可以訪問 Splunk URL 並輸入在步驟 3 中建立的管理員使用者 ID 和密碼。

Linux Install5

Windows 版本

Windows 版本以 msi 安裝程式的形式提供,如下圖所示:

Install1

雙擊 msi 安裝程式即可直接安裝 Windows 版本。為確保成功安裝,必須在以下兩個重要步驟中做出正確的選擇。

步驟 1

由於我們將其安裝在本地系統上,請選擇以下所示的本地系統選項:

Install2

步驟 2

輸入管理員密碼並記住它,因為它將在未來的配置中使用。

Install3

步驟 3

在最後一步,我們看到 Splunk 已成功安裝,並且可以從 Web 瀏覽器啟動。

Install4

步驟 4

接下來,開啟瀏覽器並輸入提供的 url,https://:8000,並使用管理員使用者 ID 和密碼登入 Splunk。

install5

Splunk - 介面

Splunk Web 介面包含搜尋、報告和分析已攝取資料所需的所有工具。相同的 Web 介面提供管理使用者及其角色的功能。它還提供資料攝取和 Splunk 中提供的內建應用程式的連結。

下圖顯示了使用管理員憑據登入 Splunk 後出現的初始螢幕。

Interface1

管理員連結

管理員下拉選單提供設定和編輯管理員詳細資訊的選項。我們可以使用以下螢幕重置管理員電子郵件 ID 和密碼:

Interface2

此外,從管理員連結,我們還可以導航到首選項選項,在這裡我們可以設定時區和登入後將開啟目標頁面的主應用程式。目前,它開啟的是如下所示的主頁:

Interface3

設定連結

這是一個連結,顯示 Splunk 中可用的所有核心功能。例如,您可以透過選擇查詢連結來新增查詢檔案和查詢定義。

我們將在後續章節中討論這些連結的重要設定。

Interface4

搜尋和報表連結

搜尋和報表連結將我們帶到可以找到可用於搜尋報表和為這些搜尋建立的告警的資料集的功能。這在下圖中清晰地顯示:

Interface5

Splunk - 資料攝取

Splunk 中的資料攝取是透過新增資料功能進行的,該功能是搜尋和報表應用程式的一部分。登入後,Splunk 介面主螢幕顯示新增資料圖示,如下所示。

Ingestion1

單擊此按鈕後,我們將看到一個螢幕,用於選擇計劃推送到 Splunk 進行分析的資料的源和格式。

收集資料

我們可以從 Splunk 官方網站獲取分析資料。儲存此檔案並將其解壓縮到您的本地驅動器中。開啟資料夾後,您可以找到三個具有不同格式的檔案。它們是由某些 Web 應用程式生成的日誌資料。我們還可以收集 Splunk 提供的另一組資料,這些資料可從 Splunk 官方網頁獲得。

我們將使用這兩組資料來了解 Splunk 各個功能的工作原理。

上傳資料

接下來,我們從我們在上一段中提到的本地系統中儲存的mailsv資料夾中選擇secure.log檔案。選擇檔案後,我們使用右上角的綠色“下一步”按鈕進入下一步。

Ingestion2

選擇資料來源型別

Splunk 具有一個內建功能,可以檢測正在攝取的資料型別。它還允許使用者選擇與 Splunk 選擇的資料型別不同的資料型別。單擊資料來源型別下拉選單,我們可以看到 Splunk 可以攝取並啟用搜索的各種資料型別。

在下面給出的當前示例中,我們選擇預設資料來源型別。

Ingestion3

輸入設定

在此資料攝取步驟中,我們配置正在攝取資料的宿主名稱。以下是宿主名稱的選擇項:

常量值

它是源資料所在的完整宿主名稱。

路徑上的正則表示式

當您想要使用正則表示式提取宿主名稱時。然後在“正則表示式”欄位中輸入要提取的宿主名稱的正則表示式。

路徑中的段

當您想要從資料來源路徑中的段提取宿主名稱時,在“段號”欄位中輸入段號。例如,如果源的路徑為 /var/log/,並且您希望第三個段(宿主伺服器名稱)作為宿主值,請輸入“3”。

接下來,我們選擇要為輸入資料建立的索引型別以進行搜尋。我們選擇預設索引策略。摘要索引僅透過聚合建立資料的摘要並在其上建立索引,而歷史索引用於儲存搜尋歷史記錄。這在下圖中清楚地顯示:

Ingestion4

檢視設定

單擊“下一步”按鈕後,我們會看到我們選擇的設定摘要。我們對其進行審查,然後選擇“下一步”以完成資料的上傳。

Ingestion5

載入完成後,將出現以下螢幕,顯示資料已成功攝取以及我們可以對資料執行的其他操作。

Ingestion6

Splunk - 資料來源型別

所有傳入 Splunk 的資料首先由其內建的資料處理單元進行判斷,並分類為某些資料型別和類別。例如,如果它是來自 Apache Web 伺服器的日誌,Splunk 能夠識別它並從讀取的資料中建立相應的欄位。

Splunk 中此功能稱為資料來源型別檢測,它使用其稱為“預訓練”資料來源型別的內建資料來源型別來實現此目的。

這簡化了分析過程,因為使用者無需手動對資料進行分類併為傳入資料的欄位分配任何資料型別。

支援的資料來源型別

Splunk 支援的源型別可以透過新增資料功能上傳檔案,然後選擇源型別下拉選單檢視。在下圖中,我們上傳了一個 CSV 檔案,然後檢查了所有可用的選項。

Source Type1

源型別子類別

即使在這些類別中,我們也可以進一步點選檢視所有支援的子類別。因此,當您選擇資料庫類別時,您可以找到不同型別的資料庫及其Splunk可以識別的支援檔案。

Source Type2

預訓練源型別

下表列出了一些 Splunk 識別的重要預訓練源型別:

源型別名稱 性質
access_combined NCSA 組合格式 http web 伺服器日誌(可由 Apache 或其他 web 伺服器生成)
access_combined_wcookie NCSA 組合格式 http web 伺服器日誌(可由 Apache 或其他 web 伺服器生成),在末尾添加了 cookie 欄位
apache_error 標準 Apache web 伺服器錯誤日誌
linux_messages_syslog 標準 Linux syslog(大多數平臺上的 /var/log/messages)
log4j 任何使用 log4j 的 J2EE 伺服器生成的 Log4j 標準輸出
mysqld_error 標準 MySQL 錯誤日誌

Splunk - 基本搜尋

Splunk 具有強大的搜尋功能,使您可以搜尋所有已攝取的資料集。此功能可透過名為搜尋和報告的應用程式訪問,登入 web 介面後可在左側邊欄中看到。

Basic Search1

點選搜尋和報告應用程式後,會出現一個搜尋框,我們可以在其中開始搜尋之前章節中上傳的日誌資料。

我們按照如下所示的格式鍵入主機名,然後單擊最右角的搜尋圖示。這將給出突出顯示搜尋詞的結果。

Basic Search2

組合搜尋詞

我們可以將用於搜尋的詞語組合起來,方法是將它們一個接一個地寫出來,但將使用者搜尋字串放在雙引號中。

Basic Search3

使用萬用字元

我們可以在搜尋選項中使用萬用字元,並結合使用AND/OR運算子。在下述搜尋中,我們得到的結果是日誌檔案中包含包含 fail、failed、failure 等詞語,以及同一行中包含 password 詞語的結果。

Basic Search4

細化搜尋結果

我們可以透過選擇一個字串並將其新增到搜尋中來進一步細化搜尋結果。在下面的示例中,我們單擊字串3351並選擇新增到搜尋選項。

3351新增到搜尋詞後,我們將得到以下結果,其中僅顯示日誌中包含 3351 的那些行。還要注意搜尋結果的時間線是如何隨著我們細化搜尋而變化的。

Basic Search

Splunk - 欄位搜尋

當 Splunk 讀取上傳的機器資料時,它會解釋資料並將其劃分為許多欄位,這些欄位表示關於整個資料記錄的單個邏輯事實。

例如,單個資訊記錄可能包含伺服器名稱、事件時間戳、正在記錄的事件型別(登入嘗試或 http 響應等)。即使對於非結構化資料,Splunk 也會嘗試將欄位劃分為鍵值對,或根據它們的資料型別(數字和字串等)進行分離。

繼續使用上一章中上傳的資料,我們可以透過單擊顯示欄位連結檢視secure.log檔案的欄位,這將開啟以下螢幕。我們可以注意到 Splunk 從此日誌檔案中生成的欄位。

Field Search

選擇欄位

我們可以透過從所有欄位列表中選擇或取消選擇欄位來選擇要顯示的欄位。單擊所有欄位將開啟一個視窗,顯示所有欄位的列表。其中一些欄位帶有複選標記,表明它們已被選中。我們可以使用複選框來選擇要顯示的欄位。

除了欄位名稱外,它還顯示欄位的不同值的個數、其資料型別以及此欄位出現在多少百分比的事件中。

Field Search

欄位摘要

透過單擊欄位名稱,可以獲得每個選中欄位的非常詳細的統計資訊。它顯示欄位的所有不同值、其計數和百分比。

Field Search

在搜尋中使用欄位

欄位名稱也可以與搜尋的特定值一起插入搜尋框中。在下面的示例中,我們的目標是查詢主機名為mailsecure_log的 10 月 15 日的所有記錄。我們將獲得此特定日期的結果。

Field Search

Splunk - 時間範圍搜尋

Splunk web 介面顯示時間線,指示事件在一段時間內的分佈。您可以從中選擇特定時間範圍的預設時間間隔,也可以根據您的需要自定義時間範圍。

下圖顯示了各種預設時間線選項。選擇任何這些選項只會獲取特定時間段的資料,您還可以使用可用的自定義時間線選項進一步分析這些資料。

Time Range Search1

例如,選擇上個月選項只會給我們上個月的結果,如下面的時間線圖表所示。

Time Range Search2

選擇時間子集

透過單擊並拖動時間線上的條形圖,我們可以選擇已存在結果的子集。這不會導致查詢重新執行。它只會從現有結果集中過濾掉記錄。

下圖顯示了從結果集中選擇子集:

Time Range Search3

最早和最晚

earliest 和 latest 這兩個命令可以在搜尋欄中使用,以指示您從中過濾結果的時間範圍。這類似於選擇時間子集,但它是透過命令而不是單擊特定時間線條的選項來實現的。因此,它提供了對您可以選擇用於分析的資料範圍的更精細的控制。

Time Range Search4

在上圖中,我們給出了從過去 7 天到過去 15 天的時間範圍。因此,將顯示這兩天之間的資料。

附近事件

我們還可以透過提及我們希望過濾事件的接近程度來查詢特定時間的附近事件。我們可以選擇間隔的比例,例如秒、分鐘、天和周等。

Splunk - 共享匯出

執行搜尋查詢時,結果將作為作業儲存在 Splunk 伺服器中。雖然此作業是由一個特定使用者建立的,但它可以與其他使用者共享,以便他們可以使用此結果集,而無需再次構建查詢。結果還可以匯出並儲存為檔案,這些檔案可以與不使用 Splunk 的使用者共享。

共享搜尋結果

查詢成功執行後,我們可以在網頁的中間右側看到一個小的向上箭頭。單擊此圖示將提供一個 URL,可以透過該 URL 訪問查詢和結果。需要向將使用此連結的使用者授予許可權。許可權是透過 Splunk 管理介面授予的。

Share Export1

查詢儲存的結果

儲存供所有具有相應許可權的使用者使用的作業可以透過檢視 Splunk 介面右上角活動選單下的作業連結來找到。在下圖中,我們單擊名為作業的突出顯示連結以查詢儲存的作業。

Share Export3

單擊上述連結後,我們將獲得所有儲存作業的列表,如下所示。需要注意的是,有一個過期日期,在此日期之後,儲存的作業將自動從 Splunk 中刪除。您可以透過選擇作業並單擊“編輯所選”,然後選擇“延長過期時間”來調整此日期。

Share Export4

匯出搜尋結果

我們還可以將搜尋結果匯出到檔案中。可用於匯出的三種不同格式是:CSV、XML 和 JSON。選擇格式後單擊“匯出”按鈕將從本地瀏覽器下載檔案到本地系統。這在下圖中進行了說明:

Share Export2

Splunk - 搜尋語言

Splunk 搜尋處理語言 (SPL) 是一種包含許多命令、函式、引數等的語言,用於從資料集中獲取所需結果。例如,當您獲得搜尋詞的結果集時,您可能希望進一步從結果集中過濾一些更具體的詞語。為此,需要將一些附加命令新增到現有命令中。這可以透過學習 SPL 的用法來實現。

SPL 的元件

SPL 具有以下元件。

  • 搜尋詞 - 這些是您要查詢的關鍵字或短語。

  • 命令 - 您要對結果集執行的操作,例如格式化結果或計數結果。

  • 函式 - 您將對結果應用哪些計算。例如 Sum、Average 等。

  • 子句 - 如何對結果集中的欄位進行分組或重新命名。

讓我們在下節中藉助影像討論所有元件:

搜尋詞

這些是您在搜尋欄中提到的詞語,用於從滿足搜尋條件的資料集中獲取特定記錄。在下面的示例中,我們正在搜尋包含兩個突出顯示的詞語的記錄。

Spl_1

命令

您可以使用 SPL 提供的許多內建命令來簡化分析結果集中資料的過程。在下面的示例中,我們使用 head 命令從搜尋操作中過濾掉前 3 個結果。

Spl_2

函式

除了命令之外,Splunk 還提供許多內建函式,這些函式可以從正在分析的欄位中獲取輸入,並在對該欄位應用計算後給出輸出。在下面的示例中,我們使用Stats avg()函式計算作為輸入的數字欄位的平均值。

Spl_3

子句

當我們想要按某些特定欄位對結果進行分組,或者想要重新命名輸出中的欄位時,我們分別使用group by子句和 as 子句。在下面的示例中,我們獲取web_application日誌中每個檔案平均位元組大小。如您所見,結果顯示每個檔案的名稱以及每個檔案的平均位元組數。

Spl_4
廣告
© . All rights reserved.