はじめてのSplunk ― 概要から応用までを体系的に学ぶ

2-5 Splunkを構成するサーバーとそれぞれの役割

前の章で、Splunkの基本サーバーロールとしてSearch Head、Indexer、Forwarderを紹介しました。 この章では、Forwarderの種類や、Splunkシステムそのものを管理・運用するためのサーバー群までを含めて詳細な解説をします。

1. Splunkの業務サーバーロール

前章でも解説しましたが、Splunkの基本的なサーバーロールは以下の3つです。 これらは、データの取り込み、サーチを実行してユーザーに見せる機能を担当しています。 いわば、Splunkにおける業務ワークロードを担っているサーバーロールが以下の3つだと言えます。

サーバーロール 概要 説明
Search Head(SH) Web GUI画面を提供 ユーザーにGUIを提供する。ユーザーからのサーチ指示を受け付け、Indexerに依頼する。Indexerから受け取った結果を加工・画面表示する
Indexer(IDX) データ保管とサーチの実行 Forwarderから転送されてきたデータを保管する。またSearch Headから指示を受けてサーチを実際に実行する
Forwarder(FWD) データの入力と転送 末端のサーバーにインストールされるエージェント。ログデータを読み取り、Indexerへ転送する

2. Forwarderの種類

実は、ログ転送エージェントであるForwarderには、大きく分けて2つの種類があります。 Universal ForwarderとHeavy Forwarderです。 一般的にはまずUniversal Forwarderを利用すればよいのですが、構成によってはHeavy Forwarderが必要となることも多いため、それぞれの機能やユースケースの差異については理解しておく必要があります。

種類 概要 メリット デメリット 利用シーン
Universal Forwarder(UF) データ転送専用の軽量なエージェント リソース負荷が低い。機能がシンプル テキストデータの入力と転送に特化しており複雑な処理はできない ログ収集用のエージェントとして既存サーバーに導入
Heavy Forwarder(HF) データの転送以外に、テキストの解析・加工なども行えるサーバー。実体は機能を限定させた状態のSplunk Enterprise. 利用には専用のForwarderライセンスが必要(無償) 転送前にログデータに含まれる個人情報を削除したり、不要なデータを除外したり、異なるIndexerに振り分けたりといった複雑な処理を行うことが可能 リソースを多く使用するため、Heavy Forwarder専用のサーバーを新しく追加する構成が一般的 転送するテキストデータの解析・加工を行う要件がある場合に、UFとIndexerの間に配置して処理を実施

Intermediate Forwarder(中継フォワーダー/中間フォワーダー)

こちらは正式な用語や名称として存在しているわけではありませんが、Splunkを利用する上でよく使われる用語であるため解説しておきます。

ログ収集元サーバーにインストールしたForwarderから、Indexerにデータを転送する際、直接通信ができない場合にプロキシサーバーなどを使ってデータを中継することがあります。 例えば、インターネット接続が許可されていないオンプレ環境内部のDBサーバーから、SaaSであるSplunk Cloudにログを転送するときなどです。 この場合は、DBサーバーから、Intermediate Forwarderを経由してSplunk Cloud(またはIndexer)にデータを転送することになります。 このようにプロキシサーバーの用途で使われているForwarderをIntermediate Forwarder(中継フォワーダー/中間フォワーダー)と呼びます。

Universal ForwarderもHeavy Forwarderも、どちらもIntermediate Forwarderとして利用することができます。 Universal Forwarderのほうが軽量でリソースも少なくてよい反面、場合によってはHeavy Forwarderでなければ実現できない要件が発生することもあるため、どちらをIntermediate Forwarderとして採用するかは設計段階で考慮しておく必要があります。

3. Splunkの管理サーバーロール

最初に説明した、Search Head、Indexer、Forwarderは、データを取り込み、サーチするためのいわゆる業務ワークロードを担当しているサーバーロールでした。 これに対し、以下は、Splunkを運用・管理するため、いわゆる管理ワークロードを担当しているサーバーロールです。

サーバーロール 概要 説明
Monitoring Console(MC) Splunkの管理監視 Splunkシステムを構成するサーバーの稼働状況やパフォーマンスを監視・管理する(Splunk Cloudの場合はCloud Monitoring Consoleという別の仕組みが存在)
License Manager(LM) ライセンス管理 Splunkのライセンスを管理する
Search Head Cluster Deployer/Deployer(DP) Search Head Cluster(SHC)へのAppの配布 Search Head ClusterへのAppやコンフィグを一括配信する。(SHC自体の管理を行っているわけではないことに注意)
Indexer Cluster Manager/Cluster Manager(CM) Indexer Clusterの管理 Indexer Clusterを管理し、Indexer障害発生時の業務継続性を担保したり、Appやコンフィグを一括でデプロイする(DPと異なり、こちらはIndexer Clusterの管理を行っている重要なロール)
Agent Management(AM)(旧名称 Deployment Server) ForwarderへのApp配布 Forwarderなどに対し、Appやコンフィグを一括配布する

これらの運用・管理系サーバーは、小規模な環境では1台のサーバーに役割を兼務させることもあります。 具体的な構成パターンは後の章にて解説していきます。

4. まとめ

  • Splunkの業務ワークロードを担当するのはSearch Head、Indexer、Forwarder
  • Forwarderは、用途によって軽量なUniversal Forwarderと重量なHeavy Forwarderに分けられる
  • ログデータを転送する際にプロキシサーバーとして利用するForwarderをIntermediate Forwarderと呼ぶ
  • Splunkの管理ワークロードを担当するのはMonitoring Console、License Manager、Deployer、Cluster Manager、Agent Management
  • 管理サーバーロールは、小規模な構成では兼務させることが可能