1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Splunk: 自作のテキストログファイルを取り込んでみる

Posted at
実施環境:

Splunk Free 8.2.2

Linux
[root@testhost ~]# uname -a
Linux testhost 4.18.0-338.el8.x86_64 #1 SMP Fri Aug 27 17:32:14 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
[root@testhost ~]# echo $SHELL
/bin/bash

0. 概要

Splunk はログ解析ソフトウェアですが、当然解析するためにはログをソフトウェア内に取り込む必要があります。
今回は以下のような自作テキストログファイルを Splunk に取り込むことを考えてみます。

Splunk
[root@testhost ~]# file /var/log/test.log
/var/log/test.log: ASCII text
[root@testhost ~]# cat /var/log/test.log
2022/08/14 12:41:40 testhost root INFO Hello World.
[root@testhost ~]#

1. インデックスを作成する

まずは、取り込んだログの保存先となるインデックスを作成します。

「設定」→「インデックス」を選択します。

WS000175.JPG

インデックスの一覧画面が開くので、右上にある「新規インデックス」を押します。

WS000177.JPG

すると、新規インデックスの作成画面が開きます。

WS000178.JPG

インデックスで設定できる項目は結構多いですが、今回はインデックス名を「 test_index 」にして、あとはデフォルトのまま「保存」を押します。
インデックス一覧の画面に、以下の通り作成したインデックスが表示されます。

WS000428.JPG

2. ソースタイプを作成する

次に、ソースタイプを作成します。
これは、取り込んだログがどのような種類のものなのかを表すもので、ログデータを項目毎に分割するためのフィールド抽出文も多くの場合これに紐づけて管理します。

「設定」→「ソースタイプ」を選択します。

WS000180.JPG

ソースタイプの一覧画面が開くので、右上にある「新規ソースタイプ」を押します。

WS000181.JPG

すると、新規ソースタイプの作成画面が開きます。

WS000182.JPG

ソースタイプで設定できる項目も多いですが、今回は名前を「 test_log 」にして、あとはデフォルトのまま「保存」を押します。
ソースタイプ一覧の画面に、以下の通り作成したソースタイプが表示されます。

WS000184.JPG

3. フィールド抽出文作成

ログデータはただ取り込むだけではあまり有効に活用はできません。
ログデータに記載されている要素を適切に分割、抽出する必要があります。
そのためのフィールド抽出文を作成します。

「設定」⇒「フィールド」を選択します。

WS000185.JPG

「フィールド抽出」を選択します。

WS000186.JPG

フィールド抽出文の一覧画面が開くので、右上にある「新しいフィールドの抽出」を押します。

WS000187.JPG

すると、新規フィールド抽出文の作成画面が開きます。
今回は次の通りに指定します。

項目名
宛先 App search
名前 test_field
適用先 ソースタイプ
名前付き test_log
タイプ インライン
抽出/変換 ^(?<date>\d{4}/\d{2}/\d{2})\s(?<time>\d{2}:\d{2}:\d{2})\s(?<host_name>\w*)\s(?<user_name>\w*)\s(?<log_level>\w*)\s(?<log_message>.*)$

抽出文は正規表現で書かれ、(?<フィールド名>正規表現)の形でフィールドを抽出する箇所を指定します。
正規表現についてはここでは詳しく説明しませんので、以下のサイトを参照してください。

About Splunk regular expressions

WS000189.JPG

設定を入力後「保存」を押せば、フィールド抽出文一覧の画面に以下の通り作成したフィールド抽出文が表示されます。

WS000190.JPG

4. データ入力設定

さて、ここまででログデータを取り込む準備は整ったので、いよいよログの取り込みを行っていきます。

「設定」⇒「データ入力」を選択します。

WS000191.JPG

今回はローカルに存在するログファイルを取り込むので、「ファイルとディレクトリ」を選択します。

WS000192.JPG

データ入力設定の一覧画面が開くので、右上にある「新しいローカルファイルとディレクトリ」を押します。

WS000193.JPG

最初はファイルの選択画面となるので、今回取り込むファイルのパス/var/log/test.logを入力し、「次へ」を押します。

WS000194.JPG

次にソースタイプの設定画面となるので、先ほど作成した「 test_log 」を選択し「次へ」を押します。

WS000195.JPG

入力設定画面となるので、 App を search 、ホストを定数値の testhost 、インデックスを先ほど作成した test_index にして「確認」を押します。

WS000197.JPG

確認画面となるので、設定を確認して「実行」を押します。

WS000198.JPG

以下のように表示されればデータ入力設定は完了です。

WS000199.JPG

データ入力設定一覧の画面にも設定が表示されました。
あとは自動的に取り込みが行われます。

WS000200.JPG

5. 確認

正常にログ取り込みができたことを確認してみましょう。

「詳細モード」で以下の SPL を実行します。

Splunk
index="test_index"

実行結果を見ると、ログデータが取り込めていることがわかります。

WS000201.JPG

イベント左の「>」を押して詳細情報を開くと、正常にフィールドが抽出できていることも確認できました。

WS000202.JPG

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?