Splunkに燃料を与える:Universal Forwarderによるリアルタイムでのデータ取込方法とインストール(パート2)

Tips & Tricks 山村 悟史

Splunkは強力なデータ分析プラットフォームです。

Splunkがその能力を十分に発揮するには当然ながらデータが無ければなりません。

本ブログパート1では、Universal Forwarder(ユニバーサルフォワーダー)を使用したデータ取込方法、インストール方法をご紹介しました。本パート2では取り込んだ後の設定方法をお伝えしたいと思います。

パート1

  1. 様々なデータ取込方法
  2. Universal Forwarderとは
  3. インストール方法

パート2

  1. データ送信設定(コマンドライン)
  2. Add-onによるデータ送信
  3. Splunkを使用して分析・可視化

4. データ送信設定(コマンドライン)

さて、Universal Forwarderがインストールできましたのでデータ送信設定をしたいと思います。 Windows版とLinux版の両方ともコマンドラインを使用します。

送信設定は以下の二種類があります。それぞれの方法を見ていきます。

ワンショット
一度だけ送信。テスト用や再取り込みしたいデータがある場合に使用。
モニター
継続的に監視しファイルの新規作成 / 更新があると即座に送信。

以降の手順ではデータはチュートリアルデータを使用しています。このデータは架空のゲームのオンラインストアのログデータで、どなたでもご利用頂けます。

https://docs.splunk.com/Documentation/Splunk/latest/SearchTutorial/Systemrequirements#Download_the_tutorial_data_files

図:チュートリアルデータ構造
図:チュートリアルデータ構造

※以下の$SPLUNK_HOMEはUniversal Forwarderのインストールディレクトリに読み替えてください。デフォルトは/opt/splunkforwarderです。

ワンショット用のコマンド
[sudo] $SPLUNK_HOME/bin/splunk add oneshot <取り込みファイルパス> [-パラメータ 値]

※パラメータ値にはindexやsourcetypeなどを指定できます。
詳細はこちらのドキュメントをご参照ください。

コマンド実行後、データが送信されます。無事取り込まれているか確認してみましょう。
(パラメータを-host demo_oneshot_www1とホスト名を指定して取り込んでいます)

ワンショットの設定

次はファイルを継続監視するモニター設定方法です。

モニター用のコマンド
[sudo] $SPLUNK_HOME/bin/splunk add monitor <取り込みファイルorディレクトリパス> [-パラメータ 値]

※ディレクトリを指定した場合は、ディレクトリ配下のファイルを対象にできます。 パスはワイルドカードも使えます(任意のファイル名文字指定の「*」およびフォルダ指定の「...」)。詳細はこちらのドキュメントをご参照ください。

※パラメータ値はワンショットと同様にindexやsourcetypeなどを指定できます。 詳細はこちらのドキュメントをご参照ください。

コマンド実行後、データが送信されます。無事取り込まれているか確認してみましょう。
(パラメータを-host demo_monitor_www1とホスト名を指定して取り込んでいます)

ファイルに行が追記された場合

ファイルに行が追記された場合、自動で取り込まれることが分かります(ファイル末尾に「THIS IS NEW LINE」と一行を追加)。 ワンショットで指定した場合はファイルに更新があっても取り込まれません。

また、モニターで追加した定義は各種操作が可能です。

一覧確認
list monitor
変更
edit monitor <取り込みファイルパス or ディレクトリパス> [-パラメータ 値]
削除
remove monitor <取り込みファイルパス or ディレクトリパス>

詳細はこちら:Monitor files and directories with the CLI

5. Add-onによるデータ送信設定

上記では数行のコマンドでデータ送信が行えました。 しかし、上記の場合は送信したいファイルが特定されており種類も少量でした。 Linuxサーバの様々なログやメトリクスを送信したい場合についてはどうすればよいでしょうか。 もちろん手動で追加して頂くこともできますが、この場合はAdd-onを使用すると便利です。

定義情報がまとめられたファイルです。Splunkbaseというサイトで様々な製品、サービス用のAdd-onが公開されており、大部分は無償でご使用頂けます。

なお、Appという名称のものあります。 Add-onとAppの違いは大まかには以下のように捉えて頂ければ結構です。

Add-on
データの取り込みを行うための設定:データ送信定義、フィールド抽出定義など
App
データの可視化を行うための設定:レポート、ダッシュボードなど

Add-onとAppはSplunkのそれぞれの構成要素にインストールします。 ものによって多少の違いはありますが、よくあるパターンを以下に示します。

図:Add-onおよびAppのインストール先
図:Add-onおよびAppのインストール先

Universal Forwarder(もしくはHeavy Forwarder):データ送信定義としてAdd-onをインストール

Search Head:フィールド抽出定義としてAdd-onを、可視化定義としてAppをインストール

Add-onをUniversal Forwarderをインストールしたサーバにダウンロードします。 以下のコマンドでインストールします。
[sudo] $SPLUNK_HOME/bin/splunk install app ダウンロードしたAdd-onファイルパス

すると以下のように「$SPLUNK_HOME/etc/apps/add-on名/」にインストールされます。今回のAdd-on名は「Splunk_TA_nix」です。 これはWindows、Unixともに同じ構造です。

図:Unix add-onインストール後のディレクトリ
図:Unix add-onインストール後のディレクトリ

今回必要なファイルはdefault ディレクトリに入っているinputs.confです。こちらはデータ送信定義が記載されています。ただし、これは編集してはいけません。 必ずlocalディレクトリを作成しそちらにコピーします。 これによりlocalディレクトリのinputs.confの設定が優先されます。

図:localディレクトリ作成後
図:localディレクトリ作成後

コピーしたinputs.confを開きます。

図:inputs.conf

図:inputs.conf

このように送信対象の各種ログ、メトリクスの情報が記載されています。ファイル指定だけではなく、スクリプト実行し出力されるメトリクスも送信対象にされています。

inputs.confの詳細はこちらをご参照ください。デフォルトではdisabled = trueもしくはdisabled = 1になっているため、送信したいログをdisabled = falseまたはdisabled = 0(どちらでも結構です)に変更し、保存します。

図:inputs.conf

最後にUniversal Forwarderを再起動することにより、この設定ファイルが読み込まれデータ送信が始まります。
[sudo] $SPLUNK_HOME/bin/splunk restart

なお、先に実施したコマンドラインからのモニター設定も実は同様にinputs.confに記載されています。 こちらは$SPLUNK_HOME/etc/apps/search/localにあります。このように設定ファイルで管理されているのがSplunkの特徴でもあります。

図:add monitorで追加した定義ファイルの場所
図:add monitorで追加した定義ファイルの場所

図:add monitorで追加した定義例
図:add monitorで追加した定義例

6. Splunkを使用して分析・可視化

これでデータをSplunkに送信することができました。 あとは取り込むことができたデータをSplunkのパワフルな機能を使って分析をするだけです。 Splunk(Search Head)にUnix App、Add-onをインストールしていれば即座にダッシュボードで可視化もできます。

Splunk Fundamentals Iで無償のトレーニングをご提供しておりますので是非ご活用ください。

Splunkbaseでご関心のある製品があるか是非ご確認ください。

ここまで読んで頂きありがとうございました。 Universal Forwarderを活用してSplunkのデータ分析の幅を広げてください!

関連記事

Splunk で Syslog-ng をインストール・設定
Tips
8 分程度

Splunk で Syslog-ng をインストール・設定

このページではSplunk上でsyslogメッセージをエラーなしで取得するために、Splunkでのsyslogサーバーとして、syslog-ngをインストール、設定する方法をご紹介します。設定後は快適にsyslogデータの取得ができるようになります。
Skipped & Deferred Searchを理解する(パート1)
Tips
8 分程度

Skipped & Deferred Searchを理解する(パート1)

予定されていたサーチが何らかの理由で実行されない場合、そのサーチはスキップ(skipped)または延期(deferred)されます。この記事では、この2つの状態の違いや、発生する理由を具体例をあげながら解説しています。
Skipped & Deferred Searchを理解する(パート2)
Tips
24 分程度

Skipped & Deferred Searchを理解する(パート2)

予定されていたサーチが何らかの理由で実行されない場合、そのサーチはスキップ(skipped)または延期(deferred)されます。パート2ではその主な原因やベストプラクティス、トラブルシューティングを解説しています。