3ノード構成のシステム要件
3ノードクラスタでのセルフホスト型 Standard Edition のシステム要件を確認してください。
以下の仕様は、システムを正常に稼働させるための最低限の要件です。 バックエンドの負荷が増加した場合、最適なパフォーマンスとシステムの安定性を確保するために、リソースを追加する必要が生じる可能性があります。
- 監視対象のサーバー数。
- 監視対象のサーバー上で稼働している技術。一部の技術はメトリクスの使用量が多いため。
- リクエストの観点から見た観測対象環境への負荷は、トレース負荷によって決定されます。このトレース負荷は、観測対象システムへの着信トラフィックとシステム内部のトラフィックの両方に正比例します。
- アプリケーションのアーキテクチャやトラフィックの傾向により、トラフィックの多いマイクロサービスは、モノリシックなアプリケーションよりもはるかに多くのスパンを生成します。
- インフラストラクチャの複雑さにより、数百のポッドを抱える Kubernetes ノードは、単一の VM よりもはるかに多くのメトリクスを生成する可能性があります。
- エンドユーザー監視(EUM)、ロギング、サーバーレス監視などの有効化された機能は、データの取り込み量や保存容量を増やす可能性があります。
- トラフィックの急増や季節的なイベント、ブラックフライデーやプロモーションキャンペーンなどの繁忙期も考慮に入れてください。
ホスト
3ノード構成の場合、同じオペレーティングシステムを搭載した3台のホストが必要です。
マルチノード クラスター内の 3 つのノードには、それぞれ特定の用途があります。
最初のノード(instana-0 )と表示されています。
node-role.instana.io: "backend"インストール中に、永続ボリュームを必要とするバックエンド ワークロードを実行するために使用されます。 ノードはゲートウェイ、アクセプタ、UI バックエンドも実行します。2番目のノード(instana-1 )と表示されています。
node-role.instana.io: "datastore"インストール中に、データ ストアを実行するために使用されます。インストール時に
node-role.instana.io: "other"とラベル付けされる3番目のノード( instana-2 )は、 Instana の残りのワークロードを実行するために使用されます。
対応プラットフォームおよびオペレーティングシステム
「 Standard Edition 」のセルフホスト版インストーラーを実行できるホスト環境が整っていることを確認してください。
Instana ホストとして、以下のプラットフォームおよびオペレーティングシステムに対応しています:
| プラットフォーム | オペレーティング・システム |
|---|---|
| Linux® x86_64 | Red Hat® Enterprise Linux® ( RHEL ) 10、9、8 |
| Ubuntu 24.04 および 22.04 | |
| Debian 13と12 | |
| CentOS Stream 9 | |
| Amazon Linux 2023年 | |
| Oracle Linux 9 | |
| SUSE Linux Enterprise Server (SLES) 15 SP6 SP7 | |
| Linux® arm64 | AWS Graviton に対応 arm64 以外のオペレーティングシステムへの展開については、テストされていません。 |
ハードウェア要件
マルチノードクラスタでは、productionインストールタイプがサポートされています。
CPU、メモリ、およびストレージ
ノードには、すべてのVMにわたって、指定された上限値までのCPU、メモリ、およびストレージが必要です。
| CPU コアの数 | メモリー (GB) | ストレージ | 1秒あたりのディスク処理速度(IOPS)の下限値 | 1秒あたりの最小ディスクスループット( MiB ) |
|---|---|---|---|---|
| 36 | 144 | 4510 | 3000 | 250 |
各ノードには、以下の表に示す範囲内で、指定されたCPU、メモリ、およびストレージが必要となる場合があります。
| ノード名 | CPU (コア) | メモリー (GB) | ディスク(GB) | 1秒あたりのディスクの最低処理速度(IOPS) | 1秒あたりの最小ディスクスループット( MiB ) | 目的 |
|---|---|---|---|---|---|---|
| instana-0 | 12 | 48 | 1270 | 3000 | 250 | バックエンド |
| instana-1 | 12 | 48 | 2970 | 3000 | 250 | データストア |
| instana-2 | 12 | 48 | 270 | 3000 | 250 | その他 |
ノードには、すべてのVMにわたって、指定された上限値までのCPU、メモリ、およびストレージが必要です。
| CPU コアの数 | メモリー (GB) | ストレージ |
|---|---|---|
| 80 | 320 | 9020 |
各ノードには、以下の表に示す範囲内で、指定されたCPU、メモリ、およびストレージが必要となる場合があります。
| ノード名 | CPU (コア) | メモリー (GB) | ディスク(GB) | 1秒あたりのディスクの最低処理速度(IOPS) | 1秒あたりの最小ディスクスループット( MiB ) | 目的 |
|---|---|---|---|---|---|---|
| instana-0 | 24 | 96 | 2540 | 3000 | 250 | バックエンド |
| instana-1 | 32 | 128 | 5940 | 3000 | 250 | データストア |
| instana-2 | 24 | 96 | 540 | 3000 | 250 | その他 |
使用したいオプション機能ごとに、追加のリソースが必要になります。
node0 (instana-0) および node2 (instana-2) で、CPU やメモリ容量などの追加リソースを割り当ててください。
instana-1) 上でリソースをプロビジョニングしないでください。 また、ロギング機能を有効にする場合、 node1 (instana-1) にログデータを保存するために、より多くのディスク容量が必要になります。CPUアーキテクチャの要件 ( x86‑64 )
Instana x86‑64‑v2 のCPUをサポートする x86‑64 システムへのインストールをサポートしています。 x86‑64‑v2 命令セットは、 Instana いくつかのコンポーネント( Cassandra や Kafka など)およびインストール時に使用されるGNU C ライブラリ(glibc)で必要とされます。 2008年頃以降に発売されたほとんどの現代のCPUは、 x86‑64‑v2 に対応しています。 しかし、仮想化環境では、基盤となるハードウェアが対応していても、仮想マシンの設定によってCPUの機能が隠されたり、制限されたりすることがあります。
必要なCPU命令フラグ
オペレーティングシステムでは、以下のCPUフラグが利用可能である必要があります:
sse3ssse3sse4_1sse4_2popcntcx16lahf_lm
ストレージ要件
各ノードには、4つのデータ保存ディレクトリが必要です。 これらのノードに追加のディスクを追加する必要があります。
- オブジェクトディレクトリnode0 (
instana-0)。 - データ、指標、分析ディレクトリnode1 (
instana-1)。
追加のディスクは必要ありませんnode2 (instana-2 )。
次の表は、各ノードのストレージ ボリューム要件を示しています。
| 説明 | デフォルト・ディレクトリー | 最小容量(GB) | コメント |
|---|---|---|---|
| オブジェクトディレクトリ | /mnt/instana/stanctl/objects | 1000 | パスを以下で上書きする--volume-objects |
| ルート・ディレクトリー | / | 100 | |
| $HOME ディレクトリ(エアギャップ環境) | /root またはユーザーのホームディレクトリ | 60 | $HOME 環境変数で上書きします。 $HOMEディレクトリ用に40GB(エアギャップ環境)、別途ディスク領域用に20GB。 |
| $HOME ディレクトリ(エアギャップ環境以外) | /root またはユーザーのホームディレクトリ | 10 | $HOME 環境変数で上書きする |
| クラスタデータディレクトリ | /var/lib | 100 | 以下で上書きする--cluster-data-dir |
| 説明 | デフォルト・ディレクトリー | 最小容量(GB) | コメント |
|---|---|---|---|
| データ・ディレクトリー | /mnt/instana/stanctl/data | 500 | パスを以下で上書きする--volume-data |
| メトリクスディレクトリ | /mnt/instana/stanctl/metrics | 1000 | |
| 分析ディレクトリ | /mnt/instana/stanctl/analytics | 1200 | |
| ルート・ディレクトリー | / | 100 | |
| $HOME ディレクトリ(エアギャップ環境) | /root またはユーザーのホームディレクトリ | 60 | $HOME 環境変数で上書きします。 $HOMEディレクトリ用に40GB(エアギャップ環境)、別途ディスク領域用に20GB。 |
| $HOME ディレクトリ(エアギャップ環境以外) | /root またはユーザーのホームディレクトリ | 10 | $HOME環境変数で上書きする |
| クラスタデータディレクトリ | /var/lib | 100 | 以下で上書きする--cluster-data-dir |
| 説明 | デフォルト・ディレクトリー | 最小容量(GB) | コメント |
|---|---|---|---|
| ルート・ディレクトリー | / | 100 | |
| $HOME ディレクトリ(エアギャップ環境) | /root またはユーザーのホームディレクトリ | 60 | $HOME 環境変数で上書きします。 $HOMEディレクトリ用に40GB(エアギャップ環境)、別途ディスク領域用に20GB。 |
| $HOME ディレクトリ(エアギャップ環境以外) | /root またはユーザーのホームディレクトリ | 10 | $HOME環境変数で上書きする |
| クラスタデータディレクトリ | /var/lib | 100 | 以下で上書きする-—cluster-data-dir |
約1か月間、最初に割り当てたストレージ容量を監視する必要があります。 必要に応じて、容量を増やすことができます。 また、エージェントの数を増やしたり、オプション機能をさらに有効にしたりする場合は、メモリ使用量を監視する必要があります。
ディレクトリごとに1台の専用デバイス
Instana の4つのデータディレクトリ(`data`、`metrics`、`analytics`、および`objects`)は、それぞれ専用のストレージ上に配置する必要があります。
専用のストレージデバイスごとにディレクトリを設定する必要があります。
分離は、物理層に至るまでエンドツーエンドで維持されなければならない。
ディレクトリは、以下のリソースを一切共有してはなりません:
- ディスク
- ボリューム・グループ
- SANプール
- RAIDセット
- 同じスピンドル、フラッシュ、キャッシュ、またはコントローラーにマッピングされるその他のレイヤー
ホストレベルの分離(マウントポイント、論理ボリューム(LV)、またはLUNの分離など)は必要ですが、それだけでは不十分です。 下位層のリソースが最終的に同じ物理ハードウェアにマッピングされる場合でも、各ディレクトリは依然としてI/O容量を奪い合うことになる。
分離は、ホスト層だけでなく、ストレージスタック全体にわたって確保されなければならない。 この規則の唯一の例外はNVMeであり、これについては別途説明します。
パフォーマンスの分離
Instana データディレクトリは、大容量かつ突発的で、同時アクセスによるI/Oを発生させます。 各ストレージデバイスには、以下の要素を含む有限のI/O容量があります:
- IOPS
- スループット(帯域幅)
- キャッシュ
複数のディレクトリが 1 つのデバイスを共有している場合:
あるディレクトリでの処理負荷が急増すると、他のディレクトリで利用可能な容量が減少する可能性があります。 その結果、予測不可能な遅延が発生し、次のような症状が現れることがあります:
- クエリのタイムアウト
- 切断されたトレース
- 動作の遅いダッシュボード
- ヘルスチェックに失敗しました
専用のデバイスを使用することで、一貫性があり予測可能なパフォーマンスを確保します。
故障の封じ込め
専用ストレージでは、各ディレクトリが独自のフェイルドメインに割り当てられます。 デバイスが容量いっぱいになったり、性能が低下したり、利用できなくなったりした場合、影響を受けるのは関連するディレクトリのみです。
共有ストレージの場合、この問題は当該デバイスを共有しているすべてのディレクトリに影響を及ぼします。
Instana のデータストアは相互に依存しているため、障害発生時にはサービスの完全な可用性を保証することはできませんが、ストレージを分離することで影響範囲を限定し、復旧作業を簡素化することができます。
ストレージの分離の確認
各ディレクトリが独立した物理リソースによって構成されており、どのレイヤーにおいてもリソースの共有が行われていないことを確認する必要があります。
ホストは、複数のデバイスが共有ストレージに接続されている場合でも、それらを提示することができます。 ホストレベルの検証だけでは不十分です。
ホストレベルで検証するには、以下のコマンドを実行してデバイスマッピングを確認してください。
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
LVM構成(LV、VG、PVのトレース)については:
sudo pvssudo vgssudo lvdisplay -m
設定は、以下の条件を満たす必要があります:
- 各マウントポイントは、それぞれ固有のブロックデバイスを使用します
- 1つのディレクトリに対して、複数のブロックデバイスが使用されることはありません
LVM構成では、各ボリュームグループは独自の物理ボリュームのみを使用し、ボリュームグループ間で物理ボリュームが共有されることはありません。
ストレージバックエンドで検証する:
SAN、NAS、または仮想化ストレージの場合、ホストはバックエンドのリソース共有状況を把握できないため、追加の検証が必要となります。
ストレージプロバイダーまたは管理者に、以下の条件を確認してください:
- これらのボリュームは、同じストレージプール、RAIDセット、またはデータストアに由来するものではありません。
- キャッシュなどのストレージコントローラのリソースは共有されません。
- ファブリックまたは接続パスは独立している
- あるボリュームでのI/O操作は、別のボリュームには影響しません。
例外:NVMeストレージ
この分離要件は、シーク遅延やシリアル化されたI/Oキューなど、従来のディスクの特性に基づいています。 NVMeストレージは、こうした制約を大幅に軽減します。 NVMe環境では、この要件を容量ベースのモデルへと緩和することができます。
容量ベースの配置:以下の条件が満たされる場合、複数のディレクトリが単一のNVMeデバイスを共有できます:
- このデバイスは、十分な持続的なIOPSとスループットを提供します。
- 容量は、すべてのディレクトリのピーク需要の合計を上回っています。
平均的な使用量ではなく、ピーク時の使用量を想定する:ワークロードは突発的に増加し、同時アクセスが集中すると、通常時は十分な性能を持つように見えるデバイスでも処理能力が限界に達してしまうことがある。
障害の特定範囲の縮小:同一デバイス上のすべてのディレクトリは、単一の障害ドメインを共有します。 デバイスが障害を起こした場合、同じ場所に配置されているすべてのディレクトリに影響が及びます。 その分離性が失われても問題ない場合にのみ、共有NVMe構成を使用してください。
デフォルト・ディレクトリー
Instana データの保存には、以下のディレクトリを使用します。
- データディレクトリ:Elasticsearch、 PostgreSQL,、および Kafka のデータストアに使用されます。 デフォルトのロケーションは
/mnt/instana/stanctl/dataです。 - メトリクスディレクトリ:Cassandra および BeeInstana のデータストアに使用されます。 デフォルトのロケーションは
/mnt/instana/stanctl/metricsです。 - アナリティクスディレクトリ:ClickHouse のデータストアに使用されます。 デフォルトのロケーションは
/mnt/instana/stanctl/analyticsです。 - 「Objects」ディレクトリ: 生のスパン、合成監視、およびエンドユーザー監視(EUM)に使用されます。 デフォルトのロケーションは
/mnt/instana/stanctl/objectsです。 - クラスタデータディレクトリ: クラスタデータ用に使用されます。
$HOMEディレクトリ: 現在のrootユーザーまたはroot以外のユーザーのホームディレクトリ。
Instana の各機能ではデータ処理量が非常に多いため、パフォーマンスの問題を回避するには、ソリッドステートドライブ(SSD)などの高速な専用ストレージを使用してください。 データ、メトリクス、アナリティクス、およびオブジェクトの各ディレクトリには、それぞれ別のディスクを使用してください。
以下のディレクトリを、それぞれ別のディスクにマウントする必要があります:
- クラスタのデータディレクトリ: ディスク容量が不足している場合は、任意の
/varディレクトリを指定できます。 例えば、/xyz/dataなどです。 インストール時には、必ずこの--cluster-data-dirディレクトリを指定してください。 この--cluster-data-dirフラグは、ディレクトリ/var/lib/rancher/k3sのみをカスタムパスにリダイレクトします。 K3s また、kubeletは、コンテナランタイムの一時データやコンポーネントのログなど/var/lib/kubelet/pods、他の/var場所にも引き続きデータを書き込み続けます。 これらのディレクトリを格納するのに十分な空き容量が/varディスクにあることを確認してください。 の空き容量が不足すると、ポッドのスケジューリングに失敗したり、/varkubeletからディスク容量不足の警告が表示されたりする可能性があります。 このような問題が発生した場合は、およびその他の/var/var/lib/kubeletサブディレクトリの空き容量を確認する必要があります。 $HOMEディレクトリ: 現在のユーザーのホーム$HOMEディレクトリを指します。 たとえば、ユーザーがrootユーザーの場合、$HOMEは となります/root。root以外のユーザーの場合、$HOMEは となります/home/<username>。
ネットワーキングの要件
次のポートと IP アドレスの要件を満たしていることを確認してください。 これらのポートを開く方法の詳細については、ファイアウォールルール。
必要なポート
すべてのノード上の次のポートが開いていてアクセス可能である必要があります。
| ポート番号 | 方向 | プロトコル | ソース | 説明 |
|---|---|---|---|---|
| 22 | インバウンド | TCP | 外部 | セキュアシェル(SSH)接続に必要なポート(SSHでログインする場合のみ必要) |
| 22 | インバウンド | TCP | 内部 | バックエンドノード間のアクセスに必要なSSHポート |
| 80 | インバウンド | TCP | 外部 | HTTP Instana コンソールUIのプロトコル |
| 443 | インバウンド | TCP | 外部 | HTTPS Instana コンソールUIのプロトコル、 Instana コンソール、 API、 Instana EUM、 OpenTelemetry,、および Instana エージェントのアクセプタポート |
| 443 | アウトバウンド | TCP | 外部 | オンライン環境でのみ必要。 詳細については、「 Instana のセルフホスト型展開におけるアウトバウンドネットワークアクセスの要件」 を参照してください。 |
| 53 | インバウンド | TCP/UDP | 内部(全ノード) | DNS ドメイン名の解決に必要なポート |
| 6443 | インバウンド | TCP | 内部(全ノード) | 内部サービスポート |
| 8443 | インバウンド | TCP | 外部 | Instana エージェント受信ポート。 このポートは任意です。 |
| 10250 | インバウンド | TCP | 内部(全ノード) | 内部サービスポート |
| 2379 | インバウンド | TCP | 内部(全ノード) | 内部サービスポート |
| 2380 | インバウンド | TCP | 内部(全ノード) | 内部サービスポート |
| 5001 | インバウンド | TCP | 内部(全ノード) | 内部サービスポート |
| 8472 | インバウンド | UDP | 内部(全ノード) | 内部サービスポート |
| 9443 | インバウンド | TCP | 内部(全ノード) | 内部サービスポート |
| すべて | インバウンド | TCP/UDP | 10.42.0.0/16 および10.43.0.0/16 |
Instana のセルフホスト型コンポーネントのサブネット |
| すべて | インバウンド | TCP/UDP | ループバック | VM が自身のデータパケットを送受信できるように、ポートを開いてください。 |
以下の注を参照してください。
- 「外部ソース」とは、そのポートが Instana のセルフホスト型エンタープライズ(プライベート)ネットワークの外側からアクセス可能でなければならないことを意味します。
- 内部ソースとは、1 つのノード上のポートが、マルチノード クラスターの他の 2 つのノードからアクセスできる必要があることを意味します。
- IPアドレス
10.42.0.0/16そして10.43.0.0/16内部的にすべてのポート (1 - 65535) にアクセスできる必要があります。 - ファイアウォールはループバック アドレスからのすべてのトラフィックを信頼する必要があります。
- 特定のリポジトリにアクセスするには、送信ポート 443 が必要です。 詳細については、 「アウトバウンドネットワークアクセスの要件」 を参照してください。
IP アドレス
マルチノード クラスターの 3 つのノードは、次の IP アドレス要件を満たしている必要があります。
- 3 つのノードすべてが相互に通信できるようにするには、同じプライベート VLAN 上のプライベート IP アドレスが必要です。
- node0 (
instana-0)には、外部との通信用にIPアドレスも必要です。 IPアドレスは、クラスタの外部からホストにアクセスするためにも使用されます。
次の作業
環境の準備を進めてください。