Splunkは強力なデータ分析プラットフォームです。
Splunkがその能力を十分に発揮するには当然ながらデータが無ければなりません。
本ブログパート1では、Universal Forwarder(ユニバーサルフォワーダー)を使用したデータ取込方法、インストール方法をご紹介しました。本パート2では取り込んだ後の設定方法をお伝えしたいと思います。
パート1
パート2
さて、Universal Forwarderがインストールできましたのでデータ送信設定をしたいと思います。 Windows版とLinux版の両方ともコマンドラインを使用します。
送信設定は以下の二種類があります。それぞれの方法を見ていきます。
ワンショット |
一度だけ送信。テスト用や再取り込みしたいデータがある場合に使用。 |
モニター |
継続的に監視しファイルの新規作成 / 更新があると即座に送信。 |
以降の手順ではデータはチュートリアルデータを使用しています。このデータは架空のゲームのオンラインストアのログデータで、どなたでもご利用頂けます。
図:チュートリアルデータ構造
※以下の$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
上記では数行のコマンドでデータ送信が行えました。 しかし、上記の場合は送信したいファイルが特定されており種類も少量でした。 Linuxサーバの様々なログやメトリクスを送信したい場合についてはどうすればよいでしょうか。 もちろん手動で追加して頂くこともできますが、この場合はAdd-onを使用すると便利です。
定義情報がまとめられたファイルです。Splunkbaseというサイトで様々な製品、サービス用のAdd-onが公開されており、大部分は無償でご使用頂けます。
なお、Appという名称のものあります。 Add-onとAppの違いは大まかには以下のように捉えて頂ければ結構です。
Add-on |
データの取り込みを行うための設定:データ送信定義、フィールド抽出定義など |
App |
データの可視化を行うための設定:レポート、ダッシュボードなど |
Add-onとAppはSplunkのそれぞれの構成要素にインストールします。 ものによって多少の違いはありますが、よくあるパターンを以下に示します。
図: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インストール後のディレクトリ
今回必要なファイルはdefault ディレクトリに入っているinputs.confです。こちらはデータ送信定義が記載されています。ただし、これは編集してはいけません。 必ずlocalディレクトリを作成しそちらにコピーします。 これによりlocalディレクトリのinputs.confの設定が優先されます。
図:localディレクトリ作成後
コピーしたinputs.confを開きます。
図:inputs.conf
このように送信対象の各種ログ、メトリクスの情報が記載されています。ファイル指定だけではなく、スクリプト実行し出力されるメトリクスも送信対象にされています。
inputs.confの詳細はこちらをご参照ください。デフォルトではdisabled = trueもしくはdisabled = 1になっているため、送信したいログをdisabled = falseまたはdisabled = 0(どちらでも結構です)に変更し、保存します。
最後にUniversal Forwarderを再起動することにより、この設定ファイルが読み込まれデータ送信が始まります。
[sudo] $SPLUNK_HOME/bin/splunk restart
なお、先に実施したコマンドラインからのモニター設定も実は同様にinputs.confに記載されています。 こちらは$SPLUNK_HOME/etc/apps/search/localにあります。このように設定ファイルで管理されているのがSplunkの特徴でもあります。
図:add monitorで追加した定義ファイルの場所
図:add monitorで追加した定義例
これでデータをSplunkに送信することができました。 あとは取り込むことができたデータをSplunkのパワフルな機能を使って分析をするだけです。 Splunk(Search Head)にUnix App、Add-onをインストールしていれば即座にダッシュボードで可視化もできます。
Splunk Fundamentals Iで無償のトレーニングをご提供しておりますので是非ご活用ください。
Splunkbaseでご関心のある製品があるか是非ご確認ください。
ここまで読んで頂きありがとうございました。 Universal Forwarderを活用してSplunkのデータ分析の幅を広げてください!
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。