6.1 データストレージの考慮事項

EPSレートに応じて、Sentinelデータの保存とインデックス作成に、従来のストレージとスケーラブルストレージのどちらを使用するかを選択できます。お客様のSentinel展開は、選択するデータストレージのオプションによって決まります。

表 6-1 従来のストレージとスケーラブルストレージの比較

従来のストレージ

スケーラブルストレージ

データはファイルベースの従来のストレージに保存されますが、インデックス作成はSentinelサーバでローカルに実行されます。

データはHadoopベースのスケーラブルストレージに保存され、データのインデックス作成にはスケーラブルな分散インデックス作成メカニズムが使用されます。

約20000 EPSまでシームレスに拡張できます。それを超えてはるかに高いEPSまでスケールアップするには、Sentinelサーバを追加する必要があります。

非常に大きなEPS(1秒に100万イベントなど)までシームレスにスケールアウトします。

データ収集は複数のSentinelサーバの間で負荷分散されます。したがって、データは複数の異なるSentinelサーバに分散され、それぞれ個別に管理されます。

データ収集は単一のSentinelサーバによって管理されます。したがって、データ管理とリソース管理が単一のSentinelサーバに一元化されます。

データはテナント別にラベルが付けられますが、ディスク上ではテナント別に分離されません。

データはディスク上でテナント別にラベルが付けられ、分離されます。

データのレプリケーションや可用性は手動、またはSANディスクなどの高価なストレージメカニズムを使用して処理されなければなりません。

Hadoopは汎用ハードウェアで実行されるため、データのレプリケーションや可用性はコスト効率に優れます。

6.1.1 従来のストレージのプラニング

従来のデータストレージは、3層構造になっています。

オンラインストレージ

プライマリストレージ(以前のローカルストレージ)。

迅速な書き込みと高速な取得のために最適化されています。最後に収集されたイベントデータと最も頻繁に検索されたイベントデータを保存します。

セカンダリストレージ(以前のネットワークストレージ)。(オプション)

高速データ取得をサポートしながら、安価なストレージ上の領域使用量を削減するように最適化されています。Sentinelは自動的にデータパーティションをセカンダリストレージに移行します。

メモ:セカンダリストレージの使用はオプションです。データ保持ポリシー、検索、およびレポートは、プライマリストレージとセカンダリストレージのどちらに存在するか、あるいは両方存在するかにかかわらず、イベントデータパーティションで実行されます。

オフラインストレージ

アーカイバルストレージ

パーティションが閉じられているときには、そのパーティションを任意のファイルストレージサービス(Amazon Glacierなど)にバックアップできます。そのパーティションは、長期的なフォレンジック分析に使用するために、いつでも一時的に再インポートできます。

データ同期ポリシーを使用して、イベントデータとイベントデータ要約を外部データベースに抽出するようにSentinelを設定することもできます。詳細については、『NetIQ Sentinel Administration Guide (NetIQ Sentinel 7.0.1管理ガイド)』の「Configuring Data Synchronization (データ同期の設定)」を参照してください。

Sentinelをインストールするときに、Sentinelのインストール先(デフォルトでは/var/opt/novellディレクトリ)に、プライマリストレージ用のディスクパーティションをマウントする必要があります。

ディスク使用量が正しく計算されるように、/var/opt/novell/sentinelディレクトリの下のディレクトリ構造全体が、1つのディスクパーティションに置かれている必要があります。そうしないと、自動データ管理機能がイベントデータを途中で削除してしまう可能性があります。Sentinelディレクトリ構造の詳細については、Sentinelのディレクトリ構造を参照してください。

ベストプラクティスとして、このデータディレクトリが、実行可能ファイル、環境設定ファイル、オペレーティングシステムファイルとは別のディスクパーティションに配置されるようにしてください。可変データを別に保存することには、一連のファイルのバックアップが容易になり、破損した場合の回復が簡単になるというメリットがあるうえ、ディスクパーティションが満杯になった場合の堅牢性が向上します。また、容量の小さいファイルシステムのほうが効率的であるため、システム全体のパフォーマンスも向上します。詳細については、「Disk partitioning」を参照してください。

メモ:ファイルストレージとしてのext3ファイルシステムには制限があります。32000を超えるファイルまたはサブディレクトリを、1つのディレクトリで保持することはできません。多数の保存ポリシーを用意する予定がある場合や、データを長期間(たとえば、1年間)保持する予定がある場合は、XFSファイルシステムの使用をお勧めします。

従来型インストールでのパーティションの使用

従来型インストールの場合は、Sentinelをインストールする前にオペレーティングシステムのディスクパーティションレイアウトを変更できます。管理者はSentinelのディレクトリ構造で説明されているディレクトリ構造に基づいて、適切なディレクトリに目的のパーティションを作成およびマウントする必要があります。インストーラを実行するとSentinelは事前に作成されたディレクトリにインストールされ、複数のパーティションにわたるインストール環境が構築されます。

メモ:

  • インストーラの実行中に--locationオプションを使用して、ファイルを格納する場所としてデフォルトのディレクトリ以外の最上位の場所を指定できます。--locationオプションに渡す値は、ディレクトリパスの前に付加されます。たとえば、「--location=/foo」を指定するとdataディレクトリは/foo/var/opt/novell/sentinel/data、configディレクトリは/foo/etc/opt/novell/sentinel/configとなります。

  • --locationオプションには、ファイルシステムリンク(ソフトリンクなど)は使用しないでください。

アプライアンスインストールでのパーティションの使用

DVD ISOアプライアンスフォーマットを使用している場合、YaST画面の指示に従って、インストール中にアプライアンスのファイルシステムのパーティション化を設定できます。たとえば、/var/opt/novell/sentinelマウントポイントに別のパーティションを作成して、すべてのデータを別のパーティションに置くことができます。ただし、他のアプライアンスフォーマットの場合は、インストール後にのみパーティション作成を設定することができます。SuSE YaSTシステム環境設定ツールを使用して、パーティションを追加し、その新しいパーティションにディレクトリを移動することができます。インストール後のパーティション作成の詳細については、従来のストレージのパーティションの作成を参照してください。

パーティションレイアウトのベストプラクティス

多くの組織が、独自に、インストールしたシステムに関するベストプラクティスパーティションレイアウトスキームを文書化しています。以下のパーティション提案の目的は、定義済みのポリシーを持たない組織をガイドし、Sentinel固有のファイルシステムの使い方を考慮することです。概して、Sentinelは可能な範囲でファイルシステム階層基準に準拠しています。

パーティション

マウントポイント

サイズ

備考

ルート

/

100GB

オペレーティングシステムファイルとSentinelバイナリ/環境設定が保存されます。

ブート

/boot

150MB

ブートパーティション

プライマリストレージ

/var/opt/novell/sentinel

System Sizing Informationを使用して計算します。

この領域には、プライマリSentinel収集データと、その他の可変データ(ログファイルなど)が保存されます。このパーティションは他のシステムと共有できます。

セカンダリストレージ

ストレージのタイプ(NFS、CIFS、またはSAN)に基づく場所。

System Sizing Informationを使用して計算します。

これはセカンダリストレージ領域で、前述のようにローカルにマウントすることも、リモートでマウントすることもできます。

アーカイバルストレージ

リモートシステム

System Sizing Informationを使用して計算します。

このストレージはアーカイブしたデータ用です。

6.1.2 スケーラブルストレージのプラニング

NetIQでは、大規模データの格納と管理にClouderaのDistribution Including Apache Hadoop (CDH)フレームワークを認定しています。Sentinelでは、イベントのインデックス作成にElasticのElasticsearchと呼ばれるスケーラブルな分散インデックス作成エンジンが使用されます。

次の図では、スケーラブルストレージに使用される各種コンポーネントについて説明します。

図 6-1 スケーラブルストレージのアーキテクチャ

  • メッセージング: Sentinelでは、Apache Kafkaを、正規化されたイベントと生データをCollector Manager instancesから受信するスケーラブルなメッセージングシステムとして利用します。Collector Manager instancesは生データとイベントデータをKafkaクラスタに送信します。

    デフォルトでは、Sentinelは次のKafkaトピックを作成します。

    • security.events.normalized: システム生成イベントと内部イベントを含む、処理済みの正規化されたイベントデータをすべて格納します。

    • security.events.raw: イベントソースからのすべての生データを格納します。

    イベントと生データはApache Avroスキーマに従います。詳細については、Apache Avroのマニュアルを参照してください。スキーマファイルは/etc/opt/novell/sentinel/scalablestoreディレクトリにあります。

  • ワーカー: このノードは、リアルタイム処理とストレージのジョブをホストします。Apache Sparkは、テナントIDに基づくイベントの分離、大量データの要求、システムオブレコード(SOR)へのデータ保存、スケーラブルなインデックス作成など、大規模なデータ処理をリアルタイムで実行します。

    Apache HBaseは、スケーラブルな分散Hadoopベースデータストアです。正規化されたイベントおよび生データのSORとして使用され、テナントID別に分離されます。

    SentinelではテナントIDに基づき、各テナントに個別のネームスペースを作成します。たとえば、デフォルトのテナントのネームスペースは1です。Sentinelはそれぞれのネームスペースに次のテーブルを作成し、イベント時刻に基づいてデータを格納します。

    • <tenant_ID>:security.events.normalized: システム生成イベントと内部イベントを含む、処理済みの正規化されたイベントデータをすべて格納します。

    • <tenant_ID>:security.events.raw: イベントソースからのすべての生データを格納します。

  • クラスタ管理: このノードでは、すべてのマスタとクラスタ管理サービスをホストします。Apache ZooKeeperは、環境設定情報の保守、サービスの命名、分散型同期の実行、およびグループサービスの提供を一元的に管理するサービスとして機能します。

  • インデックス作成: Sentinelでは、イベントにインデックスを付けるためのスケーラブルで分散型のインデックス作成エンジンとしてElasticsearchを使用します。Elasticsearchからデータにアクセスし、イベントを検索して視覚化することができます。

    Sentinelでは、それぞれの日付に対して専用のインデックスを作成し、インデックス日の計算にUTCタイムゾーン(午前0時から午前0時まで)を使用します。インデックス名の形式はsecurity.events.normalized_yyyyMMddです。たとえば、security.events.normalized_20160101のインデックスには、2016年1月1日のイベント時刻を持つすべてのイベントが含まれます。最適なパフォーマンスを得るため、Sentinelでは一部の特定のイベントフィールドにのみインデックスを作成します。Elasticsearchでインデックスを作成するイベントフィールドは変更できます。詳細については、『NetIQ Sentinel Administration Guide 』の「Performance Tuning in SSDM」を参照してください。

スケーラブルストレージの環境設定

スケーラブルストレージを有効にすると、Sentinelサーバのユーザインタフェースが縮小され、データ収集、相関、イベントルーティング、イベントの検索と視覚化、および特定の管理アクティビティの実行など、Sentinelの一部の機能だけに対応するようになります。このSentinelの縮小バージョンは、Sentinel Scalable Data Manager (SSDM)と呼ばれます。セキュリティインテリジェンス、従来の検索、レポーティングなど、その他のSentinel機能が必要な場合は、従来のストレージを使用する別個のSentinelインスタンスをインストールし、Sentinel Linkを使用して特定のイベントデータをSSDMからSentinelにルーティングする必要があります。

次のリストは、SSDMで利用できないサービスと機能に関する情報です。

  • レポート

  • セキュリティインテリジェンス

  • 検索時のイベント操作の実行

  • 相関ルールのテスト

  • インシデントの作成と管理

  • イベント時に手動で実行するアクション

  • データの同期

  • iTRACワークフロー

  • 相関イベントをトリガするイベントに関するフォレンジック分析

  • Secure Configuration ManagerおよびChange Guardianのイベントの添付ファイルの表示

スケーラブルストレージの有効化は1回限りの設定であり、元に戻すことはできません。スケーラブルストレージを無効にして従来のストレージに切り替えるには、Sentinelを再インストールする必要があります。

次のチェックリストでは、スケーラブルストレージを設定するために実行する必要のあるタスクの概略を示しています。

表 6-2 スケーラブルストレージの設定チェックリスト

 

タスク

参照先

展開の情報を確認し、スケーラブルストレージと共にどのようにSentinelを展開する必要があるかを理解します。

スケーラブルストレージでの3層展開

前提条件を確認し、必要なすべてのタスクを完了します。

セクション 12.0, スケーラブルストレージのインストールと設定

スケーラブルストレージを有効にします。

スケーラブルストレージはインストール時またはインストール後に有効にできます。

アップグレードインストールでは、Sentinelをアップグレードした後にのみ、スケーラブルストレージを有効にすることができます。

インストール時にスケーラブルストレージを有効にするには、Sentinelのカスタムインストールを実行します。詳細については、Sentinelサーバのカスタムインストールを参照してください。

インストール後またはアップグレード後にスケーラブルストレージを有効にするには、『NetIQ Sentinel Administration Guide』の「Enabling Scalable Storage Post-Installation」を参照してください。

CDHコンポーネントおよびElasticsearchをSentinelと共に設定します。

NetIQ Sentinel Administration Guide』の「Configuring Scalable Storage

6.1.3 Sentinelのディレクトリ構造

デフォルトでは、Sentinelのディレクトリは次の場所にあります。

  • データファイルは、/var/opt/novell/sentinel/dataディレクトリおよび/var/opt/novell/sentinel/3rdpartyディレクトリにあります。

  • 実行ファイルおよびライブラリは/opt/novell/sentinelディレクトリに保存されています。

  • ログファイルは、/var/opt/novell/sentinel/logディレクトリにあります。

  • 一時ファイルは、/var/opt/novell/sentinel/tmpディレクトリにあります。

  • 環境設定ファイルは、/etc/opt/novell/sentinelディレクトリにあります。

  • プロセスID (PID)ファイルは、/home/novell/sentinel/server.pidディレクトリにあります。

    PIDを使用すると、管理者はSentinelサーバの親プロセスを識別し、プロセスを監視または終了することができます。