Splunkは強力なデータ分析プラットフォームです。
ですが、Splunkがその能力を十分に発揮するには当然ながらデータが無ければなりません。
私がSplunkの勉強をし始め、Splunk Fundamentals Iを受講してSPL(サーチ処理言語)の基礎を理解し、「よし、じゃあLinuxサーバのログでも解析するか」となった時にぶつかった壁が「どうやってリモートのサーバからログをSplunkに取り込むのか」、「どのようなログを取り込めるのか」でした。
本ブログ記事では、同じような悩みを抱える方へUniversal Forwarder(ユニバーサルフォワーダー)を使用したデータ取込方法パート1として、以下1から3についてご紹介します。4から6はパート2でご紹介しています。
パート1
- 様々なデータ取込方法
- Universal Forwarderとは
- インストール方法
パート2
- データ送信設定(コマンドライン)
- Add-onによるデータ送信
- 次のステップ
1. Splunkの様々なデータ取込方法
Splunkにはローカルデータからクラウドサービスのデータ取込まで様々なデータ取込方法が用意されてます。この中で最もよく使用されるのがUniversal Forwarderを使用したデータ取込です。
2. Universal Forwarderとは
Universal Forwarder(ユニバーサル フォワーダー)とはWindows OSもしくはUnix系OSで動作するエージェントです。
収集したいログがあるマシンにインストールすることで、ローカルファイルもしくはスクリプト実行結果をSplunkサーバに送信します。 乱暴な言い方をすれば、データをテキストファイルで出力さえできればUniversal Forwarderで送信し、Splunkの強力な分析エンジンにより解析が可能になります。
アーキテクチャを見てみましょう。図の赤枠で囲ったものがUniversal Forwarder(図中ではUniv. Forwarderと記載)です。 (同じ位置づけとしてHeavy Forwarderというものもありますが、今回は割愛いたします)
図:Universal Forwarderに関わるアーキテクチャ
このようにUniversal Forwarderは収集したデータをSplunk(データ格納用であるIndexerサーバ)に送信します。 使用する通信はデフォルトでTCP 9997番ポートで、ポート番号は変更することもできます。
また、送信データ圧縮や暗号化、送信先のロードバランシング、設定統合管理などエンタープライズ環境に対応するための様々な機能を備えています。 どのファイルを送信するかについてはコマンドラインによる設定もしくは設定ファイルで指定できます。詳しくは後ほど見ていきます。
3. Universal Forwarderのインストール方法
以降では、Splunk Enterpriseが一台のサーバにインストールされている場合(Search HeadとIndexerに分けていない場合)を想定して進めます。
なお、Splunk Cloudを使用する場合は少々設定方法が異なります。 詳細はこちらで動画にまとめておりますので、是非ご覧になってください。
インストーラ Universal ForwarderはSplunk Webからダウンロードすることができます。
図:Universal Forwarderのダウンロードページ
このようにUniversal Forwarderは、Windows、Linux、MacなどのOSに対応しております。 よく使用されるWindows、Linuxのそれぞれのインストール方法を説明したいと思います。
Windows版のインストール手順
- インストーラのダウンロード
インストール対象のサーバOS、ビットに対応するUniversal Forwarderを選択します。ページ遷移後、インストーラの自動ダウンロードが始まります。またはwget用のURLもありますので、どちらかの方法でインストーラをデータ送信したいサーバに保存します。
図:Windows版Universal Forwarderダウンロード
- インストール
ダウンロードしたインストーラを起動するとインストールが始まります。
(バージョンにより異なる場合がございます。本記事ではバージョン8.1.0を使用しています)
ライセンス条項を確認し、チェックを入れる。
- Universal Forwarderのアカウントを作成する
Deployment ServerとはUniversal Forwarderを遠隔管理するためのサーバです。今回はこちらには触れませんので、空欄のままにします。もしDeployment Serverを使用する場合は記入をお願いします。インストール後でも設定は可能です。
データ送信先のSplunkサーバのホスト名もしくはIPアドレスとポート番号を指定します。特に要件がない場合はポート番号はデフォルトの9997をご指定ください。
最後にInstallボタンをクリックし、インストールを実行します。
インストール完了です。Finishボタンを押せばインストール完了です。 残りは後述するSplunk側の受信設定をして設定完了です。
なお、Windows版の場合はサービスとして実行され、サーバ起動時にUniversal Forwarderも自動的に起動します。
Linux版のインストール手順
- インストール対象サーバのCPU、OSに対応するUniversal Forwarderを選択します。
図:Linux版Universal Forwarderの一覧
- ページ遷移後、インストーラの自動ダウンロードが始まります。またはwget用のURLも表示されていますので、どちらかの方法でインストーラをデータ送信したいサーバに保存します。
図:Linux版Universal Forwarderダウンロードページ
- インストール
以降のインストール手順はすべてCLIで行います。- ファイルを展開
それぞれのファイル形式に応じて展開します。いずれも/opt/splunkforwarderに展開されます。
tgzの場合
xvzf .tgzファイルのパス -C /opt
.rpmの場合
rpm -i .rpmファイルのパス
.debの場合
dpkg -i .debファイルのパス
詳細はこちらのドキュメントをご参照ください。 - インストール実行
※以下の$SPLUNK_HOMEはUniversal Forwarderのインストールディレクトリに読み替えてください。デフォルトは/opt/splunkforwarderです。
binに移動
cd $SPLUNK_HOME/bin
インストール開始
[sudo] ./splunk start
※ライセンスに自動同意するには
[sudo] ./splunk start --accept-license
ライセンスを確認し、YES
Do you agree with this license? [y/n]: y
Universal Forwarderのユーザ、パスワードを作成
Please enter an administrator username: ユーザ名
Password must contain at least:
* 8 total printable ASCII character(s).
Please enter a new password: パスワード
Please confirm new password: 同じパスワード
データ送信先の設定
[sudo] ./splunk add forward-server Splunkサーバのホスト名orIPアドレス:ポート番号(デフォルト9997)
例:./splunk add forward-server splunk-idx1.mycompany.com:9997
サーバ起動時に自動起動するように設定
[sudo] ./splunk enable boot-start
※上記はrootユーザとして起動されます。もし特定ユーザで起動したい場合はドキュメントを参照ください。
残りは後述するSplunk側の受信設定をして設定完了です。 - Splunk側の受信設定
次にSplunk側でUniversal Forwarderからのデータ受信設定を行います。
- ファイルを展開
Splunk EnterpriseにWeb UIでアクセス
ヘッダーの設定 > 転送と受信 をクリック
「受信の設定」の「新規追加」 をクリック
9997(またはインストール時に指定したポート番号)を入力し保存ボタンをクリック
続いて各設定方法についてはパート2をご覧ください。
- 分析方法について学習したい場合
Splunk Fundamentals Iで無償のトレーニングをご提供しておりますので是非ご活用ください。
- どんなログを取り込めるか知りたい場合
Splunkbaseでご関心のある製品があるか是非ご確認ください。
ここまで読んで頂きありがとうございました。 Universal Forwarderを活用してSplunkのデータ分析の幅を広げてください!
続いて各設定方法についてはパート2をご覧ください。