Heavy Forwarderのインストールと設定 〜Ingest actionを用いたデータ前処理方法を添えて〜

データ収集アドオン(DB connectなど)を使用する場合、データの前処理(マスキング、フィルタリング、ルーティング)を行う場合など、Heavy Forwarderが必要となります。このブログでは、Heavy Forwarderのインストール方法、および転送設定について紹介します。加えて、Ingest action機能を使った前処理設定の簡便な方法についてもご紹介します。
1. Heavy Forwarderとは
Heavy Forwarderを利用するユースケースは次のような場合です。
- データの大部分をソース側で破棄する
- アドオンによる要件がある(DBconnectなど)
- イベントごとにデータを別々のインデクサー、またはインデクサークラスターへルーティングする複雑な環境である
Forwarderには2種類ありますが、Universal Forwarder、またはHeavy Forwarder、どちらを利用するか迷いましたら、こちらの記事をご参考にしてください。Heavy Forwarderは生データをイベントごとに分割(Parse)し転送するため、Universal Forwarderと比較して大容量のデータを転送します。Heavy Forwarderでしかできない要件でない場合、Universal Forwarderの使用がおすすめです。
Universal Forwarderのインストール方法については、こちらの記事をご確認ください。
2. Heavy Forwarderのインストール方法と転送設定
Heavy ForwarderはフルバージョンのSplunk Enterpriseを用います。インストーラーはSplunk Webページからダウンロードできます。
Windows、Linux、MacOS版をダウンロードいただけます。これまでのバージョンについてもPrevious Releasesからダウンロードいただけます。

Heavy Forwarder(HF)をインストールするOS、およびデータの転送先によってこれ以降の手順が異なります。下記ダイアグラムから参照する項番をご確認ください。

2-1-1. Windows版のインストール手順
下記手順ではver9.1.2を用います。インストールするバージョンによって手順は異なる可能性があります。
ダウンロードしたインストーラーを起動するとインストールが始まります。
ライセンス条項にチェックを入れ、[Next]を選択します。

administratorアカウントを作成します。usernameとpasswordを入力し、[Next]を選択します。

アプリケーションによるデバイスへの設定変更を許可するとインストールが開始され、インストールが成功すると下記画面が表示されます。[Finish]を押してインストールは完了です。
[Launch browser with Splunk Enterprise]にチェックを入れ[Finish]を押すとブラウザが起動し、Splunkのコンソール画面が表示されます。

2-1-2. Linux版のインストール手順
以降のインストール手順はすべてCLIで行います。Linux用のインストーラーは、RPM、DEB、.tgz形式で提供されています。
下記は.tgz形式での方法です。rootユーザー以外でインストールする場合はドキュメントをご参照ください。
ダウンロードしたファイルを/opt配下に展開する。
tar xvzf splunk_package_name.tgz -C /opt
binフォルダーに移動する。
cd /opt/splunk/bin
Splunk Enterpriseを起動する。
[sudo] ./splunk start --accept-license
administratorに設定するusernameとpasswordを尋ねられるため入力する。
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: 同じパスワード
サーバー起動時にSplunk Enterpriseが自動起動するように設定する。
[sudo] ./splunk enable boot-start
※上記はrootユーザーとして起動します。もし特定ユーザーで起動したい場合は ドキュメントを参照ください。
ブラウザでhttp://<host name or ip address>:8000にアクセスするとSplunkのコンソール画面が表示されます。
2-2-1. Splunk Cloudへの転送設定
転送設定
転送先のSplunk CloudからUniversal Forwarder Credentialをダウンロードし、Heavy Forwarderにインストールすることで転送設定が完了します。設定方法については、こちらの動画を参照ください。
License設定
Heavy ForwarderはSplunk Enterpriseインスタンスのため、ライセンスを登録する必要があります。Splunk Cloudへデータ転送する場合、サポートにリクエストすることでHeavy Forwarder用ライセンスを受け取ることができます。詳しくはSplunk営業担当までお問い合わせください。
※ライセンスグループの変更からForwarder licenseを設定することも可能ですがEnterprise機能が一部制限されます。
[設定] > [ライセンス]を選択します。

[ライセンスの追加]を選択します。

[Choose File]からライセンスファイルをアップロードしインストールを選択します。

2-2-2. Splunk Enterprise(オンプレ)への転送設定
転送設定
転送先のSplunk Enterprise IndexerのIPアドレスを登録することで転送設定を行います。Heavy Forwarderにおける転送設定では、UI、またはCLIから設定することが可能です。
UIから設定する場合
[設定] > [転送と受信]を選択します。

転送の設定 [+新規作成]を選択します。

転送先のIndexerのIPとポートを入力し [保存]を選択します。

転送先が登録されると、データ転送の画面で転送先を確認できます。複数のIndexerへ自動ロードバランシングする場合、転送するそれぞれのIndexer IPとポートを入力、保存します。

(オプション)
Heavy Forwarderにおいて、ローカルでindexを作成する機能は、デフォルトでOFFになっています。データの転送とともに、ローカルでindexを作成する場合は、下記設定を確認してください。
※ライセンスを消費するため特定の要件以外ではデフォルトを推奨します。
[設定] > [転送と受信] > [転送のデフォルト]を選択します。


CLIから設定する場合 (Linux and Unixの場合)
Heavy Forwarderにて下記コマンドを実行します。
転送先のIndexerを登録する。
/opt/splunk/bin/splunk add forward-server <host>:<port>
<反映される内容>
/opt/splunk/etc/system/local/outputs.confに下記設定が追加されます。
[tcpout]
defaultGroup = default-autolb-group
[tcp:default-autolb-group]
server = <host>:<port>
※複数のIndexerへ転送する場合、コンマ区切りで記載されます。
例)server = <host1>:<port1>, <host2>:<port2>
License設定
Heavy ForwarderはSplunk Enterpriseインスタンスのため、ライセンスを登録する必要があります。
Heavy ForwarderをSplunk Enterprise(オンプレsplunk)License Masterのライセンス管理とします。
Heavy Forwarderにて下記コマンドを実行します。
/opt/splunk/bin/splunk edit licenser-localslave -master_uri https://<license master ip>:8089
3. Ingest action機能を用いたデータ前処理の方法
Ingest action機能によって、UI上でプレビューを確認しながら、ログのフィルタリング、マスキング、ルーティングを確認することができます。これまで、props.confやtransforms.confの設定ファイルを直接編集していましたが、これらの設定ファイルを編集することなく、前処理を設定できます。
3-1. Heavy ForwarderでIngest actionを用いるユースケース
主なユースケースは下記3つです。
- イベントをSplunk Cloud/Enterpriseに送る前にフィルターをかけることで、必要なbandwidthを削減できます
- イベントをSplunk Cloud/Enterpriseに送る前にマスキングすることで、個人情報を秘匿することができます
- 重要度の低いイベントをSplunk Cloud/Enterprise以外(例えばAWS S3)にルーティングすることで、Splunkのライセンス消費量を調節することができます

3-2. Ingest actionの設定方法
このブログではマスキングのユースケースに関する設定方法を紹介します。ルーティングやフィルターについてはドキュメントをご確認ください。
[設定] > [取り込みアクション]を選択します。

Rulesetsタブから [New Ruleset]を選択します。

処理対象のデータソースをプレビュー画面に表示します。プレビュー表示を確認しながら設定するため、処理設定は、転送しているデータ、またはIndex済のデータである必要があります。
ここではLive Captureからソースタイプsplunkd(splunkの内部ログです)を選択し、[Sample]をクリックします。

右側のData Previewにサンプルデータが表示されます。このサンプルデータに対してマスキング処理を行います。
[規則の追加]から[Mask with Regular Expression]を選択します。

Mask with Regexプロセスにおける[Match Regular Expression]に正規表現 [group=\w+]を入力します。また、[Replace Expression]に置き換える文字列 [group=XXX]を入力します。
[適用]をクリックすることで、Data Previewにてその反映結果を確認することができます。下記の画像では、group名をXXXに置換することができています。

この設定内容がprops.conf、およびtransforms.confにどのように書き込まれるかを確認したい場合は、[Preview Config]を選択します。

対象の文字列がMaskingされていることを確認できたら、[保存]を選択します。

Rulesetsに設定が保存されます。

Ingest actionについてはこちらの動画も参考にご確認ください。
終わりに
Heavy Forwarderはデータの取得やデータの前処理など、複雑な処理を実行することができます。データを転送するだけであればUniversal Forwarderがおすすめですが、その他の要件ありましたらHeavy Forwarderをぜひご利用ください。Happy Splunking!
関連記事
Splunkについて
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。