3ノード構成の導入準備
3ノードのクラスタに Standard Edition をインストールする前に、環境の準備を行ってください。
sudo。追加のディスクを準備する
「ストレージ要件」 セクションで、データ・ディレクトリーごとに追加したディスクを準備する必要があります。
これらのタスクを実行するためのコマンドは、ご使用の環境、選択するファイル・システム、および追加するディスクのタイプによって異なります。
以下のセクションのコマンドは単なる例であり、使用するディスクを準備するための要件を示すことを目的としています。 ご使用の環境で機能するコマンドを使用する必要があります。
ホスト上のディスクを特定する
ご使用のシステムで使用可能なデバイスを確認するには、 node0 および node1:
lsblk
以下に、 node0の出力例を示します。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 63.5M 1 loop /snap/core20/2015
loop1 7:1 0 87M 1 loop /snap/lxd/27037
loop3 7:3 0 111.9M 1 loop /snap/lxd/24322
loop4 7:4 0 63.9M 1 loop /snap/core20/2182
loop5 7:5 0 40.9M 1 loop /snap/snapd/20290
loop6 7:6 0 40.4M 1 loop /snap/snapd/20671
vda 252:0 0 250G 0 disk
├─vda1 252:1 0 1M 0 part
└─vda2 252:2 0 248G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 248G 0 lvm /
vdb 252:16 0 1000G 0 disk
node1の出力例を以下に示します。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 63.5M 1 loop /snap/core20/2015
loop1 7:1 0 87M 1 loop /snap/lxd/27037
loop3 7:3 0 111.9M 1 loop /snap/lxd/24322
loop4 7:4 0 63.9M 1 loop /snap/core20/2182
loop5 7:5 0 40.9M 1 loop /snap/snapd/20290
loop6 7:6 0 40.4M 1 loop /snap/snapd/20671
vda 252:0 0 250G 0 disk
├─vda1 252:1 0 1M 0 part
└─vda2 252:2 0 248G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 248G 0 lvm /
vdb 252:16 0 1000G 0 disk
vdc 252:32 0 500G 0 disk
vdd 252:48 0 1200G 0 disk
ファイルシステムを作成する
node0 および node1で追加したディスクごとに、ファイル・システムを作成する必要があります。
ディスクに適した任意のファイル・システムを使用できます。 Ext4 と XFS は、2 つの一般的な Linux ファイル・システムです。 Ext4 と XFS のどちらを選択するかは、ユーザーの好みとシステムの具体的なニーズによって異なります。 ほとんどのシステムでは Ext4 を選択することをお勧めしますが、より信頼性の高いファイル・システムが必要な場合は、XFS を使用することをお勧めします。
ここでは、
ext4ファイル・システムの使用例を示します。node0 (instana-0) では、以下のコマンドを使用して単一のファイル・システムを作成できます。
for disk in vdb ; do echo "make filesystem for $disk" mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/$disk donenode1 (instana-1) では、以下のコマンドを使用して 3 つのファイル・システムを作成できます。
for disk in vdb vdc vdd ; do echo "make filesystem for $disk" mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/$disk done
ここでは、
xfsファイル・システムの使用例を示します。node0 (instana-0) では、以下のコマンドを使用して単一のファイル・システムを作成できます。
for disk in vdb; do echo "make filesystem for $disk" mkfs.xfs -f -i size=1024 -L $disk /dev/$disk donenode1 (instana-1) では、以下のコマンドを使用して 3 つのファイル・システムを作成できます。
for disk in vdb vdc vdd; do echo "make filesystem for $disk" mkfs.xfs -f -i size=1024 -L $disk /dev/$disk done
ディレクトリーを作成する
ホスト上で、必ず 4 つのディレクトリーを作成してください。 ハードウェア要件を参照してください。
以下のコマンド例では、デフォルトのディレクトリー・パスを使用しています。 任意の場所にディレクトリーを作成することができます。 ただし、ディレクトリーをマウントするときには、必ず正しいパスを使用してください。
node0 (
instana-0) で、objectsディレクトリーを作成します。mkdir -p /mnt/instana/stanctl/objectsnode1 (
instana-1) で、以下の 3 つのディレクトリーを作成します。mkdir -p /mnt/instana/stanctl/data mkdir -p /mnt/instana/stanctl/metrics mkdir -p /mnt/instana/stanctl/analytics
マウントパスを追加する
作成したディレクトリーにマウント・パスを追加する必要があります。 ホスト上のディスクを特定するで、デバイスの一覧を確認できます。
まず、 node0 (instana-0) および node1 (instana-1) にあるファイルシステムテーブル(fstab)ファイル内のデバイス名を、それぞれのUUID(一意の識別子)に置き換えてください。
再起動後、特に複数のディスクを接続している場合、デバイス名が変更されることがあります。 このような状況では、ディスクと元のマウントパスとの間に不一致が生じる可能性があります。 これらの問題を回避するには、ファイル fstab 内のデバイス名をUUID(一意の識別子)に置き換えてください。
fstab ファイルを UUID で更新する
fstab を更新するには、以下の手順を実行してください:
- ストレージ容量に基づいて、各ディレクトリに使用するデバイスを特定してください。 デバイス名に注意してください。
- すべてのデバイスのUUIDを取得します。
以下のコマンド例と出力をご覧ください:blkid$ blkid /dev/sdb /dev/sdb: UUID="86ceb289-ba28-448d-b41f-71e647fc4536" BLOCK_SIZE="4096" TYPE="ext4" - ファイルシステムテーブル(fstab)ファイルを、デバイスのUUIDで更新します。
- お好みのテキストエディタでファイル
/etc/fstabを開いてください。 - UUIDを.
/etc/fstabに追加します。 各デバイスについて、次の例のようにUUIDを追加してください:UUID=<device_uuid> /mnt/instana/stanctl/data ext4 discard,defaults,nofail 0 0 UUID=<device_uuid> /mnt/instana/stanctl/metrics ext4 discard,defaults,nofail 0 0 UUID=<device_uuid> /mnt/instana/stanctl/analytics ext4 discard,defaults,nofail 0 0 UUID=<device_uuid> /mnt/instana/stanctl/objects ext4 discard,defaults,nofail 0 0 - ファイルを保存します。
- お好みのテキストエディタでファイル
その後、予防措置として、マウント・パスを作成する前に fstab ファイルのバックアップを取ってください。 node0 (instana-0) および node1 (instana-1) で以下のコマンドを実行します。
cp /etc/fstab /etc/fstab.backup
以下のコマンド例では、デフォルトのマウント・パスと、前のセクションで例として使用したディスクを使用しています。 コマンドは、ご使用の環境によって異なる場合があります。 また、カスタム・パスに ディレクトリーを作成 した場合は、必ずそれらのパスを使用してください。
stanctl up --multi-node-enable にフラグ --volume-<directory-name> を追加するようにしてください。 たとえば、マウントパスとして を /data/analytics 指定した場合は、 を使用します stanctl up --multi-node-enable --volume-analytics /data/analytics。Ext4 コマンドの例。
- node0 (
instana-0) のコマンドecho "UUID=<device_vdb_uuid> /mnt/instana/stanctl/objects ext4 discard,defaults,nofail 0 0" >> /etc/fstab - node1 (
instana-1) のコマンドecho "UUID=<device_vdb_uuid> /mnt/instana/stanctl/analytics ext4 discard,defaults,nofail 0 0" >> /etc/fstab echo "UUID=<device_vdc_uuid> /mnt/instana/stanctl/metrics ext4 discard,defaults,nofail 0 0" >> /etc/fstab echo "UUID=<device_vdd_uuid> /mnt/instana/stanctl/data ext4 discard,defaults,nofail 0 0" >> /etc/fstab
- node0 (
XFS サンプル・コマンド。
- node0 (
instana-0) のコマンドecho "UUID=<device_vdb_uuid> /mnt/instana/stanctl/objects xfs discard,defaults,nofail 0 0" >> /etc/fstab - node1 (
instana-1) のコマンドecho "UUID=<device_vdb_uuid> /mnt/instana/stanctl/analytics xfs discard,defaults,nofail 0 0" >> /etc/fstab echo "UUID=<device_vdc_uuid> /mnt/instana/stanctl/metrics xfs discard,defaults,nofail 0 0" >> /etc/fstab echo "UUID=<device_vdd_uuid> /mnt/instana/stanctl/data xfs discard,defaults,nofail 0 0" >> /etc/fstab
- node0 (
マウントパスを確認してください
ディレクトリーが正しいディスクにマウントされていることを確認してください。 デバイス名を取得するには、 追加ディスクの準備 を参照してください。
lsblk <device name>
ファイルシステムをマウントする
すべてのファイル・システムをマウントします。 node0 (instana-0) および node1 (instana-1) で以下のコマンドを実行します。
mount -a
カーネル・パラメーター
Instana バックエンドを正常にインストールするには、すべてのノードで以下のカーネルパラメータを正しく設定する必要があります。
vm.swappiness
アプリケーションのページがスワップ領域に移動されないように 0vm.swappiness 設定します。
sh -c 'echo vm.swappiness=0 >> /etc/sysctl.d/99-stanctl.conf' && sysctl -p /etc/sysctl.d/99-stanctl.conf
fs.inotify.max_user_instances
システムが最大8192個のinotifyインスタンスを許可するように 8192fs.inotify.max_user_instances 設定してください。
sh -c 'echo fs.inotify.max_user_instances=8192 >> /etc/sysctl.d/99-stanctl.conf' && sysctl -p /etc/sysctl.d/99-stanctl.conf
透過型巨大ページ
メモリ管理のため、Transparent Huge Pages(THP)を恒久的に無効にします。
- Ubuntu または Debian のホストをお持ちの場合は、以下のコマンドを実行してください:
sed -i "s/\(GRUB_CMDLINE_LINUX=\".*\)\"/\1 transparent_hugepage=never\"/" "/etc/default/grub" update-grub - Red Hat® Enterprise Linux®、 CentOS Stream、 Amazon Linux、または Oracle Linux のホストをお持ちの場合は、次のコマンドを実行してください:
grubby --args="transparent_hugepage=never" --update-kernel ALL - SUSE Linux Enterprise Server (SLES)ホストをお持ちの場合は、以下のコマンドを実行してください:
sed -i "s/\(GRUB_CMDLINE_LINUX=\".*\)\"/\1 transparent_hugepage=never\"/" "/etc/default/grub" grub2-mkconfig -o /boot/grub2/grub.cfg
これらの変更を有効にするには、システムの再起動が必要です。
再起動後、THPが無効になっていることを確認してください。
cat /sys/kernel/mm/transparent_hugepage/enabled
以下の出力は、THPが無効になっていることを示しています。
always madvise [never]
パッケージと環境変数
一部のホストでは、欠落しているパッケージをインストールするか、必要な環境変数とパスを設定する必要があります。
クラスター内のすべてのノードでタスクが完了していることを確認します。
Amazon Linux 2023年のホスト
Amazon Linux 2023 では、 container-selinux および k3s-selinux パッケージが見つかりません。 これらの設定は、 Standard Edition インストーラーが Instana を中断することなくインストールするために必要です。
パッケージ
container-selinuxをインストールしてください。dnf install -y container-selinuxパッケージ
k3s-selinuxをインストールしてください。dnf install -y https://rpm.rancher.io/k3s/stable/common/centos/8/noarch/k3s-selinux-1.6-1.el8.noarch.rpm
Red Hat Enterprise Linux および CentOS Stream のホスト
Red Hat Enterprise Linux および CentOS Stream のホストでは、デフォルトでは /usr/local/bin ディレクトリは 環境 PATH 変数に含まれません。 Standard Edition のインストーラーは、インストール中にいくつかのコマンドを実行するために、この PATH ディレクトリを必要とします。
ディレクトリを環境 /usr/local/binPATH 変数に追加するには、以下の手順を実行してください:
コマンド
export PATHを または.bash_profileファイル.bashrcに追加します。echo 'export PATH=$PATH:/usr/local/bin' >> ~/.bashrcOR
echo 'export PATH=$PATH:/usr/local/bin' >> ~/.bash_profile変更を適用します。 前のコマンドで更新したファイル名を使用してください。
source ~/.bashrcOR
source ~/.bash_profileディレクトリ
/usr/local/binが環境変数PATHに含まれていることを確認してください。echo $PATH
パスの更新が成功すると、出力に /usr/local/bin が表示されます。
入居者名および部屋番号
Instana のインストール時には、テナント名とユニット名を指定する必要があります。
Instana をインストールした後、テナント名やユニット名は変更できません。
テナント名およびユニット名については、以下の制限が適用されます:
- 名前は、以下の正規表現パターンに一致する必要があります:
^[a-z][a-z0-9]*$ - 名前は15文字以内にしてください。
- 名前はアルファベットで始まる必要があります。
- 名前は英数字のみで構成されている必要があります。
- すべての文字は小文字で入力してください。
たとえば、 test はユニット名であり、 marketing はテナント名です。
入居者や物件に関する詳細については、 units.instana.io をご覧ください。
ネットワーキングの要件
Instana ドメインおよびクラスター内のホストは、オンプレミス環境の外からアクセス可能である必要があります。 ホスト上で、 ドメインネームシステム( DNS ) の設定を更新し、 ファイアウォールのルールを設定してください。
DNS 設定
Instana 環境用に、ドメイン名と DNS ゾーンが設定されていることを確認してください。 次に、以下のドメインについて、ゾーンに DNS のAレコードを追加してください:
| ドメイン | 説明 | 名前の例 |
|---|---|---|
基本ドメイン <base_domain> |
Instana にアクセスするために使用できる完全修飾ドメイン名(FQDN)。 ホストのIPアドレスを指定します。 | instana.example.com |
エージェント受容体サブドメイン agent-acceptor.<base_domain> |
Instana エージェントのトラフィック用のドメイン名。 ホストのIPアドレスを指定します。 | agent-acceptor.instana.example.com |
OpAMP アクセプターサブドメイン opamp-acceptor.<base_domain> |
OpenTelemetry のコレクター管理トラフィック用のドメイン名。 ホストのIPアドレスを指定します。 | opamp-acceptor.instana.example.com |
OTLP HTTP アクセプターサブドメイン otlp-http.<base_domain> |
OpenTelemetryOTLP/HTTP のコレクターへのトラフィック用のドメイン名。 ホストのIPアドレスを指定します。 |
otlp-http.instana.example.com |
OTLP gRPC アクセプターサブドメイン otlp-grpc.<base_domain> |
OpenTelemetryOTLP/gRPC のコレクターへのトラフィック用のドメイン名。 ホストのIPアドレスを指定します。 |
otlp-grpc.instana.example.com |
テナントおよびユニットのサブドメイン <unit-name>-<tenant-name>.<base_domain> |
ユニットとその入居者のドメイン名。 ホストのIPアドレスを指定します。 | test-marketing.instana.example.com |
DNS のAレコードを追加する詳細な手順については、ご利用のドメイン登録業者のドキュメントをご参照ください。
ファイアウォール規則
特定の Linux ディストリビューションでは、ファイアウォールによって競合や制限が課される可能性があります。 これらの競合は、インストールに必要なネットワーク通信およびサービス・ディスカバリーに影響を与える可能性があります。 したがって、ファイアウォールが開いている場合は、必要なポートそしてそれにルールを課します。
外部ファイアウォールを使用している場合は、ポートを開く方法についてはファイアウォールのドキュメントを参照してください。
Amazon Web Services ( AWS )での Standard Edition のデプロイにおいては、ファイアウォールが無効になっている場合でも、セキュリティグループのすべてのポートを開く必要があります。
必要なポートを開くには、次の手順を実行します。
の上Ubuntuホストの場合は、すべてのノードで次のコマンドを実行します。 コマンドではノードの IP アドレスを使用します。
ufw allow 22/tcp ufw allow 80/tcp ufw allow 443/tcp ufw allow 8443/tcp ufw allow from <node0 (instana-0) IP> to any port 22 proto tcp ufw allow from <node0 (instana-0) IP> to any port 6443,10250,2379,2380,5001,9443,53 proto tcp ufw allow from <node0 (instana-0) IP> to any port 8472,53 proto udp ufw allow from <node1 (instana-1) IP> to any port 6443,10250,2379,2380,5001,9443,53 proto tcp ufw allow from <node1 (instana-1) IP> to any port 8472,53 proto udp ufw allow from <node2 (instana-2) IP> to any port 6443,10250,2379,2380,5001,9443,53 proto tcp ufw allow from <node2 (instana-2) IP> to any port 8472,53 proto udp ufw allow from 10.42.0.0/16 to any ufw allow from 10.43.0.0/16 to any ufw allow in on lo ufw allow out on lo ufw reloadDebian、 Red Hat Enterprise Linux、 CentOS Stream、 Amazon Linux、 Oracle Linux、および SUSE Linux Enterprise Server (SLES) ホストでは、すべてのノードで以下のコマンドを実行してください。 コマンドではノードの IP アドレスを使用します。
firewall-cmd --permanent --add-port=22/tcp firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=443/tcp firewall-cmd --permanent --add-port=8443/tcp firewall-cmd --new-zone=internal-access --permanent firewall-cmd --permanent --zone=internal-access --add-source=<node0 (instana-0) IP> firewall-cmd --permanent --zone=internal-access --add-source=<node1 (instana-1) IP> firewall-cmd --permanent --zone=internal-access --add-source=<node2 (instana-2) IP> firewall-cmd --permanent --zone=internal-access --add-port=22/tcp firewall-cmd --permanent --zone=internal-access --add-port=6443/tcp firewall-cmd --permanent --zone=internal-access --add-port=10250/tcp firewall-cmd --permanent --zone=internal-access --add-port=2379/tcp firewall-cmd --permanent --zone=internal-access --add-port=2380/tcp firewall-cmd --permanent --zone=internal-access --add-port=5001/tcp firewall-cmd --permanent --zone=internal-access --add-port=8472/udp firewall-cmd --permanent --zone=internal-access --add-port=9443/tcp firewall-cmd --permanent --zone=internal-access --add-port=53/udp firewall-cmd --permanent --zone=internal-access --add-port=53/tcp firewall-cmd --permanent --zone=trusted --add-source=10.42.0.0/16 firewall-cmd --permanent --zone=trusted --add-source=10.43.0.0/16 firewall-cmd --permanent --zone=trusted --add-interface=lo firewall-cmd --reload
ポートを確認する
「必要なポート」 に指定されているポートが開いているか確認してください。
Ubuntu ホスト
ファイアウォールによってブロックされているポートを確認するには、次のコマンドを使用します。 ファイアウォールが有効になっている場合、このコマンドはブロックされているポートを一覧表示します。
ufw status verbose
ポートを開くには、次のコマンドを実行してください:
ufw allow <port_number>
Debian、 Red Hat Enterprise Linux、 CentOS Stream、 Amazon Linux、 Oracle Linux、および SLES
ポートがファイアウォールによってブロックされているかどうかを確認するには、次のコマンドを使用します:
firewall-cmd --query-port=<port_number>/tcp
コマンドの出力が の場合 no、指定されたポートは閉じられています。
ポートを開くには、次のコマンドを実行してください:
firewall-cmd --zone=public --add-port=<port_number>/tcp --permanent
firewall-cmd --reload
HTTP プロキシの設定
HTTP_PROXY、 HTTPS_PROXY、および NO_PROXY 環境変数を定義します。
Standard Edition をインストールするコマンド stanctl up --multi-node-enable を実行すると、インストール処理では自動的に現在のシェルから環境変数の値が読み込まれます。
次のコマンドを使用して、環境変数を設定してください:
HTTP_PROXY=http://your-proxy.example.com:<port_number>
HTTPS_PROXY=http://your-proxy.example.com:<port_number>
NO_PROXY=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
RHEL および CentOS Stream ホスト上の nm-cloud-setup ユーティリティ
Red Hat Enterprise Linux および CentOS Stream ホストにおいて、が有効になっている nm-cloud-setup 場合は、各ノードでこれを無効にし、ノードを再起動する必要があります。
以下のコマンドを使用します。
が有効になっている
nm-cloud-setupか確認してください。systemctl is-enabled nm-cloud-setup.serviceサービスが無効になっている場合、コマンドは を返します
disabled。そうでない場合は を返しますenabled。が無効になっている
nm-cloud-setup場合は、次のセクションに進んでください。 が有効になっているnm-cloud-setup場合は、無効にしてください。systemctl disable nm-cloud-setup.service nm-cloud-setup.timerノードをリブートします。
systemctl reboot
TLS 証明書と鍵
Instana ( Standard Edition )には、トランスポート層セキュリティ( TLS )の証明書と鍵が必要です。
証明書は、「 DNS 」 の設定セクションで指定されたドメインに対して発行される必要があります。
証明書を指定したくない場合は、インストール時に生成される自己署名証明書を使用できます。
SSH 構成
セキュア・シェル (SSH) 構成は、マルチノード・クラスターでのみ必要です。
Instana をインストールするには、ユーザーは instana-0 から instana-1 および instana-2 へ、パスワードを入力せずに SSH を使用して接続する必要があります。
- rootユーザーは、3つのノードすべてに対してパスワード不要のSSHアクセス権を持っている必要があります。
- 非rootユーザーは、3つのノードすべてに対してパスワード不要のSSHアクセス権を持ち、各ノードでsudo権限を持っている必要があります。
ユーザーは、root として、または sudo 権限を持つユーザーとして stanctl コマンドを実行できます。
以下のステップを実行して、SSH 鍵を生成し、それらを 3 つのノード間で共有します。
クラスターに SSH 鍵が存在しない場合は、 node0 (
instana-0) で SSH 鍵ペアを生成します。ssh-keygen -t rsa公開鍵の内容を node1 (
instana-1) および node2 (instana-2) の$HOME/.ssh/authorized_keysファイルにコピーします。もし、
sshdサービスnode1 (instana-1) そしてnode2 (instana-2)デフォルトのSSHポート22の代わりに別のポートでリッスンする場合は、$HOME/.ssh/configでnode0 (instana-0) をクリックしてそのポートを使用します。cat <<EOF | sudo tee -a ~/.ssh/config Host * port <alternate_port_number> EOFnode0 (
instana-0) ノードと他の 2 つのノードの間の SSH 接続をテストします。ssh <username>@<node_ip>
SSH 接続が成功すると、次のコマンドの入力を求めるプロンプトが表示されます。 「許可が拒否されました」というエラーが表示された場合は、公開鍵をノード上の正しいユーザー・アカウントにコピーしたことを確認してください。
次の作業
「 Instana 」のインストールを続行してください。 詳細については、 「 Instana のバックエンドとデータストアのインストール」 を参照してください。