Splunk-クイックガイド

Splunkは、マシンデータやその他の形式のビッグデータを処理して洞察を引き出すソフトウェアです。このマシンデータは、Webサーバーを実行しているCPU、IOTデバイス、モバイルアプリからのログなどによって生成されます。このデータをエンドユーザーに提供する必要はなく、ビジネス上の意味もありません。ただし、マシンのパフォーマンスを理解、監視、最適化することは非常に重要です。

Splunkは、この非構造化データ、半構造化データ、またはめったに構造化されていないデータを読み取ることができます。データを読み取った後、これらのデータの検索、タグ付け、レポートおよびダッシュボードの作成が可能になります。ビッグデータの出現により、Splunkはさまざまなソースからビッグデータを取り込み、マシンデータである場合とそうでない場合があり、ビッグデータの分析を実行できるようになりました。

そのため、ログ分析用のシンプルなツールから、Splunkは、非構造化マシンデータやさまざまな形式のビッグデータの一般的な分析ツールになるまでに長い道のりを歩んできました。

製品カテゴリ

Splunkは、次の3つの異なる製品カテゴリで利用できます-

  • Splunk Enterprise−大規模なITインフラストラクチャとIT主導のビジネスを持つ企業によって使用されます。Webサイト、アプリケーション、デバイス、センサーなどからデータを収集して分析するのに役立ちます。

  • Splunk Cloud−エンタープライズバージョンと同じ機能を備えたクラウドホスト型プラットフォームです。Splunk自体から、またはAWSクラウドプラットフォームを介して利用できます。

  • Splunk Light−すべてのログデータを1か所からリアルタイムで検索、レポート、アラートすることができます。他の2つのバージョンと比較して、機能と機能が制限されています。

Splunkの機能

このセクションでは、エンタープライズエディションの重要な機能について説明します。

データの取り込み

Splunkは、JSON、XMLなどのさまざまなデータ形式や、Webログやアプリケーションログなどの非構造化マシンデータを取り込むことができます。非構造化データは、ユーザーの必要に応じてデータ構造にモデル化できます。

データの索引付け

取り込んだデータは、さまざまな条件での検索とクエリを高速化するためにSplunkによってインデックスが付けられます。

データ検索

Splunkでの検索には、指標の作成、将来の傾向の予測、データのパターンの特定を目的として、インデックス付きデータを使用することが含まれます。

アラートの使用

Splunkアラートは、分析対象のデータに特定の基準が見つかったときに、電子メールまたはRSSフィードをトリガーするために使用できます。

ダッシュボード

Splunkダッシュボードは、検索結果をチャート、レポート、ピボットなどの形式で表示できます。

データ・モデル

インデックス付けされたデータは、専門的なドメイン知識に基づいた1つ以上のデータセットにモデル化できます。これにより、Splunkで使用される検索処理言語の技術を習得しなくても、ビジネスケースを分析するエンドユーザーによるナビゲーションが容易になります。

このチュートリアルでは、エンタープライズバージョンのインストールを目指します。このバージョンは、すべての機能を有効にして、60日間無料で評価できます。WindowsとLinuxプラットフォームの両方で利用できる以下のリンクを使用してセットアップをダウンロードできます。

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

Linuxバージョン

Linuxバージョンは、上記のダウンロードリンクからダウンロードされます。インストールはUbuntuプラットフォームで行われるため、.debパッケージタイプを選択します。

これを段階的なアプローチで学習します-

ステップ1

以下のスクリーンショットに示すように、.debパッケージをダウンロードします-

ステップ2

ダウンロードディレクトリに移動し、上記のダウンロードパッケージを使用してSplunkをインストールします。

ステップ3

次に、acceptlicense引数を指定して次のコマンドを使用してSplunkを起動できます。管理者のユーザー名とパスワードを要求されます。これらを入力して覚えておく必要があります。

ステップ4

Splunkサーバーが起動し、SplunkインターフェースにアクセスできるURLを通知します。

ステップ5

これで、Splunk URLにアクセスして、手順3で作成した管理者ユーザーIDとパスワードを入力できます。

Windows版

以下の画像に示すように、Windowsバージョンはmsiインストーラーとして利用できます-

msiインストーラーをダブルクリックすると、Windowsバージョンが簡単なプロセスでインストールされます。インストールを成功させるために正しい選択をしなければならない2つの重要なステップは次のとおりです。

ステップ1

ローカルシステムにインストールするため、以下のようにローカルシステムオプションを選択します-

ステップ2

管理者のパスワードを入力し、将来の構成で使用されるため、覚えておいてください。

ステップ3

最後のステップで、Splunkが正常にインストールされ、Webブラウザーから起動できることがわかります。

ステップ4

次に、ブラウザを開いて、指定されたURLを入力します。 http://localhost:8000、および管理者ユーザーIDとパスワードを使用してSplunkにログインします。

Splunk Webインターフェースは、取り込まれたデータを検索、レポート、分析するために必要なすべてのツールで構成されています。同じWebインターフェイスは、ユーザーとその役割を管理するための機能を提供します。また、データの取り込みとSplunkで利用可能な組み込みアプリへのリンクも提供します。

次の図は、管理者の資格情報を使用してSplunkにログインした後の初期画面を示しています。

管理者リンク

[管理者]ドロップダウンには、管理者の詳細を設定および編集するオプションがあります。以下の画面を使用して、管理者の電子メールIDとパスワードをリセットできます-

さらに、管理者リンクから、設定オプションに移動して、ログイン後にランディングページを開くタイムゾーンとホームアプリケーションを設定することもできます。現在、以下のようにホームページで開きました−

設定リンク

これは、Splunkで利用可能なすべてのコア機能を示すリンクです。たとえば、ルックアップリンクを選択することにより、ルックアップファイルとルックアップ定義を追加できます。

これらのリンクの重要な設定については、次の章で説明します。

検索とレポートのリンク

検索とレポートのリンクをクリックすると、これらの検索用に作成されたレポートとアラートの検索に使用できるデータセットを見つけることができる機能に移動します。以下のスクリーンショットに明確に示されています-

Splunkでのデータの取り込みは、 Add Data検索およびレポートアプリの一部である機能。ログイン後、Splunkインターフェースのホーム画面にAdd Data 以下に示すようなアイコン。

このボタンをクリックすると、分析のためにSplunkにプッシュする予定のデータのソースとフォーマットを選択するための画面が表示されます。

データの収集

分析用のデータは、Splunkの公式ウェブサイトから入手できます。このファイルを保存して、ローカルドライブに解凍します。フォルダを開くと、形式の異なる3つのファイルが見つかります。これらは、一部のWebアプリによって生成されたログデータです。また、Splunkが提供する別のデータセットを収集することもできます。これは、Splunkの公式Webページから入手できます。

Splunkのさまざまな機能の動作を理解するために、これら両方のセットのデータを使用します。

データのアップロード

次に、ファイルを選択します。 secure.log フォルダから、 mailsv前の段落で述べたように、これはローカルシステムに保持しています。ファイルを選択したら、右上隅にある緑色の[次へ]ボタンを使用して次のステップに進みます。

ソースタイプの選択

Splunkには、取り込まれるデータのタイプを検出する機能が組み込まれています。また、Splunkが選択したものとは異なるデータ型を選択するオプションもユーザーに提供します。ソースタイプのドロップダウンをクリックすると、Splunkが取り込み、検索できるようにするさまざまなデータタイプが表示されます。

以下に示す現在の例では、デフォルトのソースタイプを選択します。

入力設定

データ取り込みのこのステップでは、データの取り込み元のホスト名を構成します。ホスト名として選択できるオプションは次のとおりです-

定数値

これは、ソースデータが存在する完全なホスト名です。

パス上の正規表現

正規表現でホスト名を抽出したい場合。次に、抽出するホストの正規表現を[正規表現]フィールドに入力します。

パス内のセグメント

データソースのパスのセグメントからホスト名を抽出する場合は、[セグメント番号]フィールドにセグメント番号を入力します。たとえば、ソースへのパスが/ var / log /であり、3番目のセグメント(ホストサーバー名)をホスト値にする場合は、「3」と入力します。

次に、検索用の入力データに作成するインデックスタイプを選択します。デフォルトのインデックス戦略を選択します。サマリーインデックスは、集計によってデータのサマリーのみを作成し、その上にインデックスを作成しますが、履歴インデックスは検索履歴を保存するためのものです。下の画像にはっきりと描かれています-

設定を確認する

次のボタンをクリックすると、選択した設定の概要が表示されます。それを確認し、[次へ]を選択してデータのアップロードを終了します。

ロードが完了すると、以下の画面が表示され、データの取り込みが成功したことと、データに対して実行できるその他の可能なアクションが示されます。

Splunkへのすべての受信データは、最初に組み込みのデータ処理ユニットによって判断され、特定のデータタイプとカテゴリに分類されます。たとえば、Apache Webサーバーからのログの場合、Splunkはそれを認識し、読み取られたデータから適切なフィールドを作成できます。

Splunkのこの機能はソースタイプ検出と呼ばれ、「事前トレーニング済み」ソースタイプと呼ばれる組み込みのソースタイプを使用してこれを実現します。

これにより、ユーザーがデータを手動で分類し、受信データのフィールドにデータ型を割り当てる必要がないため、分析が容易になります。

サポートされているソースタイプ

Splunkでサポートされているソースタイプは、ファイルをアップロードすることで確認できます。 Add Data機能をクリックし、ソースタイプのドロップダウンを選択します。以下の画像では、CSVファイルをアップロードしてから、使用可能なすべてのオプションを確認しています。

ソースタイプサブカテゴリ

これらのカテゴリでも、さらにクリックすると、サポートされているすべてのサブカテゴリが表示されます。したがって、データベースカテゴリを選択すると、Splunkが認識できるさまざまなタイプのデータベースとそれらがサポートするファイルを見つけることができます。

事前トレーニング済みのソースタイプ

以下の表は、Splunkが認識する重要な事前トレーニング済みソースタイプの一部を示しています。

ソースタイプ名 自然
access_combined NCSA結合形式のhttpWebサーバーログ(Apacheまたは他のWebサーバーで生成できます)
access_combined_wcookie NCSA結合形式のhttpWebサーバーログ(Apacheまたは他のWebサーバーで生成可能)。最後にCookieフィールドが追加されます。
apache_error 標準のApacheWebサーバーエラーログ
linux_messages_syslog 標準のLinuxsyslog(ほとんどのプラットフォームで/ var / log / messages)
log4j log4jを使用してJ2EEサーバーによって生成されたLog4j標準出力
mysqld_error 標準のmysqlエラーログ

Splunkには、取り込んだデータセット全体を検索できる堅牢な検索機能があります。この機能には、次の名前のアプリからアクセスしますSearch & Reporting これは、Webインターフェイスにログインした後の左側のサイドバーに表示されます。

クリックすると search & Reporting アプリでは、前の章でアップロードしたログデータで検索を開始できる検索ボックスが表示されます。

以下に示す形式でホスト名を入力し、右端にある検索アイコンをクリックします。これにより、検索語を強調した結果が得られます。

検索用語の組み合わせ

検索に使用される用語は、次々に記述し、ユーザーの検索文字列を二重引用符で囲むことで組み合わせることができます。

ワイルドカードの使用

検索オプションでワイルドカードを使用できます。 AND/OR演算子。以下の検索では、ログファイルにfail、failed、failureなどを含む用語と、同じ行にパスワードという用語が含まれている結果が得られます。

検索結果を絞り込む

文字列を選択して検索に追加することで、検索結果をさらに絞り込むことができます。以下の例では、文字列をクリックします3351 オプションを選択します Add to Search

3351検索語にが追加されると、以下の結果が得られます。これは、ログから3351を含む行のみを示しています。また、検索を絞り込んだときに、検索結果のタイムラインがどのように変化したかをマークします。

Splunkは、アップロードされたマシンデータを読み取るときに、データを解釈し、データレコード全体に関する単一の論理的事実を表す多くのフィールドに分割します。

たとえば、単一の情報レコードには、サーバー名、イベントのタイムスタンプ、ログイン試行かhttp応答かを問わず、ログに記録されるイベントのタイプなどが含まれる場合があります。構造化されていないデータの場合でも、Splunkはフィールドをキー値に分割しようとします。ペアにするか、データタイプ、数値、文字列などに基づいて分離します。

前の章でアップロードされたデータを続けると、からのフィールドを見ることができます secure.log次の画面を開く[フィールドの表示]リンクをクリックしてファイルを作成します。Splunkがこのログファイルから生成したフィールドに気付くことができます。

フィールドの選択

すべてのフィールドのリストからフィールドを選択または選択解除することにより、表示するフィールドを選択できます。をクリックするall fieldsすべてのフィールドのリストを表示するウィンドウを開きます。これらのフィールドの一部には、すでに選択されていることを示すチェックマークが付いています。チェックボックスを使用して、表示するフィールドを選択できます。

フィールドの名前に加えて、フィールドが持つ個別の値の数、そのデータ型、およびこのフィールドが存在するイベントの割合が表示されます。

フィールドサマリー

フィールドの名前をクリックすると、選択したすべてのフィールドの非常に詳細な統計が表示されます。フィールドのすべての個別の値、それらの数、およびそれらのパーセンテージが表示されます。

検索でのフィールドの使用

フィールド名は、検索の特定の値とともに検索ボックスに挿入することもできます。以下の例では、10月15日の日付のすべてのレコードを、という名前のホストについて検索することを目的としています。mailsecure_log。この特定の日付の結果を取得します。

Splunk Webインターフェースは、一定期間にわたるイベントの分布を示すタイムラインを表示します。特定の時間範囲を選択できる事前設定された時間間隔があります。または、必要に応じて時間範囲をカスタマイズできます。

以下の画面は、さまざまなプリセットタイムラインオプションを示しています。これらのオプションのいずれかを選択すると、その特定の期間のデータのみがフェッチされ、使用可能なカスタムタイムラインオプションを使用してさらに分析することもできます。

たとえば、前月のオプションを選択すると、下のタイムライングラフの広がりを見ることができるように、前月の結果のみが表示されます。

時間サブセットの選択

タイムラインのバーをクリックしてドラッグすることで、既存の結果のサブセットを選択できます。これにより、クエリが再実行されることはありません。既存の結果セットからレコードを除外するだけです。

下の画像は、結果セットからのサブセットの選択を示しています-

最古および最新

検索バーで最も早いものと最も遅いものの2つのコマンドを使用して、結果を除外する時間範囲を示すことができます。時間サブセットの選択に似ていますが、特定のタイムラインバーをクリックするオプションではなく、コマンドを使用します。そのため、分析用に選択できるデータ範囲をより細かく制御できます。

上の画像では、過去7日間から過去15日間までの時間範囲を示しています。そのため、この2日間のデータが表示されます。

近くのイベント

また、イベントを除外する距離を指定することで、特定の時間の近くのイベントを見つけることもできます。秒、分、日、週など、間隔のスケールを選択するオプションがあります。

検索クエリを実行すると、結果はジョブとしてSplunkサーバーに保存されます。このジョブは特定のユーザーによって作成されましたが、他のユーザーと共有できるため、クエリを再度作成しなくても、この結果セットの使用を開始できます。結果は、Splunkを使用しないユーザーと共有できるファイルとしてエクスポートおよび保存することもできます。

検索結果の共有

クエリが正常に実行されると、Webページの右中央に小さな上向き矢印が表示されます。このアイコンをクリックすると、クエリと結果にアクセスできるURLが表示されます。このリンクを使用するユーザーに権限を付与する必要があります。権限は、Splunk管理インターフェースを介して付与されます。

保存された結果の検索

適切な権限を持つすべてのユーザーが使用できるように保存されているジョブは、Splunkインターフェースの右上のバーにあるアクティビティメニューの下にあるジョブリンクを探すことで見つけることができます。下の画像では、jobsという名前の強調表示されたリンクをクリックして、保存されているジョブを見つけます。

上記のリンクをクリックすると、保存されているすべてのジョブのリストが次のように表示されます。彼、保存されたジョブがSplunkから自動的に削除される有効期限の投稿があることに注意する必要があります。この日付を調整するには、ジョブを選択し、[選択した編集]をクリックして、[有効期限の延長]を選択します。

検索結果のエクスポート

検索結果をファイルにエクスポートすることもできます。エクスポートに使用できる3つの異なる形式は、CSV、XML、およびJSONです。フォーマットを選択した後、[エクスポート]ボタンをクリックすると、ファイルがローカルブラウザからローカルシステムにダウンロードされます。これは下の画像で説明されています-

Splunk Search Processing Language(SPL)は、データセットから目的の結果を取得するために記述された多くのコマンド、関数、引数などを含む言語です。たとえば、検索用語の結果セットを取得するときに、結果セットからさらに具体的な用語をフィルタリングしたい場合があります。このためには、既存のコマンドにいくつかの追加コマンドを追加する必要があります。これは、SPLの使用法を学習することによって実現されます。

SPLのコンポーネント

SPLには次のコンポーネントがあります。

  • Search Terms −これらはあなたが探しているキーワードやフレーズです。

  • Commands −結果のフォーマットやカウントなど、結果セットに対して実行するアクション。

  • Functions−結果に適用する計算は何ですか。合計、平均などのように。

  • Clauses −結果セットのフィールドをグループ化または名前変更する方法。

以下のセクションの画像を使用して、すべてのコンポーネントについて説明しましょう。

検索ワード

これらは、検索条件を満たすデータセットから特定のレコードを取得するために検索バーで言及する用語です。以下の例では、強調表示された2つの用語を含むレコードを検索しています。

コマンド

SPLが提供する多くの組み込みコマンドを使用して、結果セット内のデータを分析するプロセスを簡素化できます。以下の例では、headコマンドを使用して、検索操作の上位3件の結果のみを除外します。

関数

Splunkは、コマンドに加えて、分析対象のフィールドから入力を受け取り、そのフィールドに計算を適用した後に出力を提供できる多くの組み込み関数も提供します。以下の例では、Stats avg() 入力された数値フィールドの平均値を計算する関数。

条項

特定のフィールドでグループ化された結果を取得する場合、または出力のフィールドの名前を変更する場合は、 group byそれぞれ節とas節。以下の例では、に存在する各ファイルの平均バイトサイズを取得します。web_applicationログ。ご覧のとおり、結果には各ファイルの名前と各ファイルの平均バイト数が表示されます。