自社ホストのPoP を展開する popctl

コマンドラインツール popctl を使用して、セルフホスト型のSynthetic PoP( PoP )を展開できます。

セルフホスト型のSyntheticPoPをオンラインでデプロイするには、以下の手順を実行する:

  1. Instana リポジトリを追加します。

  2. popctl コマンドラインツールをインストールします。

    popctl コマンドラインツールがすでにインストールされている場合は、 popctl コマンドラインツールをアップグレードします。

  3. クラスターを作成します。

  4. PoP をインストールする。

  5. Instana エージェントをインストールします。

エアーギャップ環境で自社ホストの PoP を展開するには、以下の手順に従ってください

  1. Instana リポジトリを追加します。

  2. popctl コマンドラインツールをインストールします。

    popctl コマンドラインツールがすでにインストールされている場合は、 popctl コマンドラインツールをアップグレードします。

  3. ネットワークに接続されていないインストールパッケージを作成します。

  4. エアギャップ環境のインストールパッケージを転送する。

  5. クラスターを作成します。

  6. PoP をインストールする。

  7. Instana エージェントをインストールしてください。

Instana リポジトリを追加する

ホストがインストールパッケージにアクセスできるように、ホストの ` sources.list /etc/apt.conf` ファイルに ` Instana ` リポジトリを追加してください。

ネットワーク的に分離された環境では、バシロンホストで手順を実行します。

Instana リポジトリを追加するには、ホスト上でrootユーザーとして以下のいずれかの手順を実行してください。 コマンドでは、<download_ky>をeあなたのダウンロード・キーに置き換えてください。

  • Red Hat® Enterprise Linux® または CentOS Stream を使用する場合は、次のコマンドを実行してください:

    export DOWNLOAD_KEY=<download_key>
    
    cat << EOF > /etc/yum.repos.d/Instana-Product.repo
    [instana-product]
    name=Instana-Product
    baseurl=https://_:$DOWNLOAD_KEY@artifact-public.instana.io/artifactory/rel-rpm-public-virtual/
    enabled=1
    gpgcheck=0
    gpgkey=https://_:$DOWNLOAD_KEY@artifact-public.instana.io/artifactory/api/security/keypair/public/repositories/rel-rpm-public-virtual
    repo_gpgcheck=1
    EOF
     
  • UbuntuまたはDebianの場合は、以下のコマンドを実行する:

    export DOWNLOAD_KEY=<download_key>
    
    echo 'deb [signed-by=/usr/share/keyrings/instana-archive-keyring.gpg] https://artifact-public.instana.io/artifactory/rel-debian-public-virtual generic main' > /etc/apt/sources.list.d/instana-product.list
    
    cat << EOF > /etc/apt/auth.conf
    machine artifact-public.instana.io
       login _
       password $DOWNLOAD_KEY
    EOF
    
    wget -nv -O- --user=_ --password="$DOWNLOAD_KEY" https://artifact-public.instana.io/artifactory/api/security/keypair/public/repositories/rel-debian-public-virtual | gpg --dearmor > /usr/share/keyrings/instana-archive-keyring.gpg
     
  • SUSE Linux Enterprise Server(SLES)の場合は、次のコマンドを実行します:

    export DOWNLOAD_KEY=<download_key>
    cat << EOF > /etc/zypp/credentials.d/instana_auth
    username=_
    password=$DOWNLOAD_KEY
    EOF
    cat << EOF > /etc/zypp/repos.d/Instana-Product.repo
    [instana-product]
    name=Instana-Product
    baseurl=https://artifact-public.instana.io/artifactory/rel-rpm-public-virtual/?credentials=instana_auth
    enabled=1
    gpgcheck=0
    gpgkey=https://artifact-public.instana.io/artifactory/api/security/keypair/public/repositories/rel-rpm-public-virtual?credentials=instana_auth
    repo_gpgcheck=1
    EOF
     

popctl コマンドラインツールのインストール

コマンドラインツ popctl ールをインストールするには、お使いのオペレーティングシステムに応じて、以下の手順のいずれかを実行してください。

ネットワーク的に分離された環境では、バシロンホストで手順を実行します。

Red Hat Enterprise Linux または CentOS Stream への popctl コマンドラインツールのインストール

Red Hat Enterprise Linux または CentOS Stream ホストに popctl コマンドラインツールをインストールするには、以下の手順を実行してください:

  1. yumリポジトリを更新してください:

    yum clean expire-cache -y
     
  2. ホストのパッケージ・インデックス・ファイルを更新する:

    yum update -y
     
  3. インストール popctl :

    yum install -y popctl
     
  4. バージョンロック・プラグインがホストにインストールされていない場合は、プラグインをインストールしてください:

    yum install python3-dnf-plugin-versionlock
     
  5. 自動更新を無効にし、パッケージ popctl のバージョンを設定してください:

    yum versionlock add popctl
     

Debian Ubuntu popctl コマンドラインツールをインストールする

Ubuntu または Debian ホストに popctl コマンドラインツールをインストールするには、以下の手順を実行してください:

  1. ホストのパッケージ・インデックス・ファイルを更新する:

    apt update -y
     
  2. インストール popctl :

    apt install -y popctl
     
  3. 自動更新を無効にし、パッケージ popctl のバージョンを設定してください:

    apt-mark hold popctl
     

popctl コマンドラインツールをSLESにインストールする

SLES ホストに popctl コマンドラインツールをインストールするには、以下の手順を実行してください:

  1. ホストのパッケージインデックスファイルを更新し、更新する:

    zypper refresh
     

    Do you want to reject the key, trust temporarily, or trust always? [r/t/a/?] (r): というプロンプトが表示されたら、 a を入力して常に信頼するように設定します。

  2. インストール popctl :

    zypper install -y popctl
     

popctl コマンドラインツールのアップグレード

コマンドラインツ popctl ールをアップグレードするには、お使いのオペレーティングシステムに応じて、以下の手順のいずれかを実行してください:

  • Red Hat Enterprise Linux または CentOS Stream を使用する場合は、次のコマンドを実行してください:

    yum update popctl
     
  • UbuntuまたはDebianの場合は、以下のコマンドを実行する:

    apt update && apt install --only-upgrade popctl
     
  • SLES の場合は、以下のコマンドを実行します。

    zypper refresh && zypper update popctl
     

ツールをインストールすると、自動的に「$PATH」に追加されます。 どのディレクトリからでもコマンド popctl を実行できます。

バージョ popctl ンを確認するには:

popctl --version
 

の使用状況 popctl を確認するには:

popctl --help
 

特定のコマンドのヘルプを得るには

popctl help [command]
 

エアギャップされたインストールパッケージの作成

注: エアギャップ環境では、バスティオンホスト上でインストールパッケージを作成し、それをエアギャップ環境内のホストに転送した後、そのパッケージを使用してインストールを行う必要があります。 エアギャップ環境でのインストールは、シングルノードの K3s クラスターでのみサポートされています。 「 PoP 」や「 Instana 」エージェントを、 Red Hat OpenShift、 Microk8s、Minikube などの他のプラットフォームにはインストールしないでください。

バシオンホストにインストールパッケージを作成するには、以下の手順に従います

  1. Bastionホスト上で、 「popctl コマンドラインツールのインストール 」のセクションに記載されている手順に従って、 popctl popctl がインストールされていることを確認してください。

  2. エアギャップパッケージを作成する:

    popctl air-gapped package
     

    デフォルトでは、パッケージは現在のディレクトリに作成されます。

  3. ダウンロードキーを入力して続行してください

    ? Enter the download key or an official agent key: **********************
     

    入力したキーが有効であれば、インストーラがアーティファクトのダウンロードを開始し、エアギャップされたパッケージを作成します。 場合によっては以下のメッセージが表示されます。

    ⠋ 1/6 Packaging popctl artifacts [1/1]  [0s] ✓
    ⠋ 2/6 Packaging BuildMeta artifacts [1/1]  [0s] ✓
    ⠧ 3/6 Packaging Cluster artifacts [2/2]  [0s] ✓
    ⠼ 4/6 Packaging Helm artifacts [2/2]  [1m5s] ✓
    ⠙ 5/6 Packaging Registry (linux/amd64) artifacts [6/6]  [4s] ✓
    ⠼ 6/6 Packaging Agent (linux/amd64) artifacts [2/2]  [2s] ✓
    ⠸ Archiving air-gapped package  [5s] ✓
     

ネットワークの状態によっては、分離されたパッケージが作成されるまでに数分かかる場合があります。

エアギャップパッケージの準備が整うと、次のメッセージが表示されます

------------------------------------------
Air-gapped package successfully exported!

File: synthetic-pop-airgapped.tar.gz
 

エアギャップされたインストールパッケージの転送

バスタリホストから、エアギャップ環境内のホストにエアギャップパッケージを転送するには:

  1. エアギャップパッケージを展開し、 popctl ファイルをホストの /usr/local/bin ディレクトリにコピーします

     tar -xzf </path/to/synthetic-pop-airgapped.tar.gz> -C /usr/local/bin --strip-components 1 airgapped/popctl
     
  2. エアギャップされたパッケージをインポートする:

    popctl air-gapped import -f </path/to/synthetic-pop-airgapped.tar.gz>
     

エアギャップ環境におけるセキュリティとネットワークの挙動

厳格なネットワークセキュリティやコンプライアンス要件が課される環境に対応するため、エアギャップ環境において「Synthetic Playback Points」( PoP )を利用できます。

アウトバウンドネットワークの動作

「Synthetic PoP 」は、セルフホスト型またはオンプレミスの「 Instana 」バックエンドで構成した場合、パブリックインターネットへのアウトバウンド接続を開始しません。 PoP は、ユーザーが明示的に設定したネットワークエンドポイントにのみ接続します。

テレメトリとデータ収集の動作

Synthetic PoP には、ハードコードされたテレメトリ機能やホームサーバーへの通信機能は含まれていません。 PoP は、利用状況データ、診断情報、またはメトリクスを外部の IBM サービスに送信しません。 PoP は、 IBM のエンドポイントに対して身元調査を行いません。

更新メカニズム

PoP (シンセティック版)は、自動更新に対応していません。 すべての更新は手動で行う必要があります。 PoP, を更新するには、コンテナイメージを、ご自身で用意した新しいバージョンに置き換えます。 PoP は、アップデートやパッチを自動的にダウンロードしません。

ネットワーク通信の範囲

「 PoP 」は、すべてのネットワーク通信を以下のパスに限定します:

  • PoP → Instana バックエンドの設定:通信は、. を使用して定義した INSTANA_ENDPOINT_URLInstana バックエンドとの間でのみ行われます。
  • PoP → 合成監視の対象:通信は、合成テストで定義したエンドポイントとの間でのみ行われます。
  • PoP の内部コンポーネント: Redis やその他の PoP コンポーネントなどの内部サービスは、 PoP 環境内でのみ通信を行います。 PoP は、その他のネットワーク接続を一切行いません。
エアギャップ環境にSynthetic PoP を導入する場合:
  • すべての外部ネットワーク宛先を管理します。
  • すべての更新を手動で管理します。
  • PoP は、外部の IBM サービスと通信しません。
  • PoP は、お客様が定義したネットワーク境界内で完全に動作します。
この動作は、厳格なセキュリティおよびコンプライアンス要件が求められる環境に対応しています。

クラスターの作成

シングルノードのK3sクラスタを作成する。 Kubernetesクラスターが存在する場合は、このステップをスキップする。

  • オンライン
    popctl cluster create
     
  • エアギャップ環境:
    popctl cluster create --air-gapped
     

PoP のインストール

合成「PoP:インストールする

  • オンライン
    popctl up
     
  • エアギャップ環境:
    popctl up --air-gapped
     

Kubernetes が存在しない場合は、次のコマンドでクラスターを作成し PoPをインストールすることができます

  • オンライン
    popctl up --create-k3s-cluster
     
  • エアギャップ環境:
    popctl up --air-gapped --create-k3s-cluster
     

Redisのパスワードを使って合成PoPをインストールするには、プロンプトに値を入力する:

? Enter PoP label(label is PoP identifier which can not be changed): synthetic-pop
? Enter instana synthetic endpoint URL: https://synthetics-saas.instana.rocks
? Enter the namespace of Synthetic PoP: default
? Do you want to enable TLS encryption for redis communication? No
? Enter a new password for redis communication: **********
? Enter instana agent key: ************
? Enter the download key: **********************
 

セルフホストPoPのインストールが正常に初期化されると、クラスタのセットアップが開始される。 合成PoPの準備には数分かかるかもしれない。 以下のメッセージが表示されたら、合成PoPの準備は完了です。

⠹ Setting up the cluster [6s] ✓
⠦ Applying synthetic-pop [1m54s] ✓
 

「 Redis 」 TLS を有効にしてSynthetic PoP をインストールするには、プロンプトで以下のパラメータ値を入力してください:

? Enter PoP label(label is PoP identifier which can not be changed): synthetic-pop-default
? Enter instana synthetic endpoint URL: https://synthetics-saas.instana.rocks
? Do you want to enable TLS encryption for redis communication? Yes
? Enter TLS certificate files path including tls.crt, tls.key and ca.crt (hit Enter to auto-generate):
? Enter instana agent key: ************
? Enter the download key: **********************
 

以下のメッセージが表示されたら、合成PoPの準備は完了です。

⠧ Generate TLS Secrets [5s] ✓
⠋ Setting up TLS Secrets [0s] ✓
⠼ Applying synthetic-pop [1m24s] ✓
 

Instana エージェントのインストール

「Synthetic PoP 」を監視するために、 Instana エージェントをインストールしてください。

Instana エージェントをインストールするには、次のコマンドを実行してください。 --air-gapped パラメータを渡す必要はありません。

popctl agent apply
 

プロンプトで値を入力する。

出力例を以下に示す:

? popctl will use Helm Chart to install/update Instana Agent, please uninstall the existing Instana Agent first if the agent is installed with Operator or YAML, please confirm to install agent with Helm Chart Yes

? Enter Instana Endpoint port: 443

⠴ Applying instana-agent [5s] ✓
⠋ Setting up TLS Secrets [0s] ✓
⠋ Setting up Instana Agent TLS [0s] ✓
 

Instana エージェントのアンインストール

Instana エージェントをアンインストールするには、次の popctl agent delete コマンドを実行してください。

出力例を以下に示す:

? Do you want to delete the Instana agent? Yes
⠋ Uninstalling instana-agent from namespace instana-agent [0s] ✓
⠋ Deleting Agent TLS Secrets [0s] ✓
 

PoPのアンインストール

SyntheticPoP,をアンインストールするには、'popctl downコマンドを実行する。

出力例を以下に示す:

? Do you want to uninstall PoP under namespasce "default"? Yes
⠧ Uninstalling synthetic-pop from namespace default [0s] ✓
 

K3sの削除

K3sクラスタを削除するには、'popctl cluster deleteコマンドを実行する。

K3sバイナリファイルはクラスタとともに削除される。

よくある質問

シンセティックPoPに関連するよくある質問の回答をご覧いただけます。

別のネームスペースに新しいPoP をインストールするにはどうすればよいですか?

インストール設定ファイルは '~/.popctl/synthetic-pop.yaml に保存される。 名前を変更してから「popctl up再実行すれば、合成PoPの新規インストールが開始される。

Syntheticの PoP または Instana エージェントをアップグレードするにはどうすればよいですか?

コマンド popctl up を再度実行し、Syntheticの PoP および Instana エージェントを、設定を変更 popctl agent apply せずに最新バージョンにアップグレードします。

Syntheticの PoP または Instana エージェントのパラメータを変更するにはどうすればよいですか?

~/.popctl/synthetic-pop.yamlに保存されているパラメーターを手動で更新し、'popctl upまたは'popctl agent applyを再実行することができる。

PoP? をインストールする際に発生する「タイムアウトエラー:コンテキストの期限切れ」の問題を修正する方法は?

kubectl get pod -n <namespace> を実行して、SyntheticPoPネームスペースのポッドのステータスをチェックする。 ポッドが準備完了状態でない場合は、「kubectl logs -n <namespace> -f <pod-name>実行してログメッセージをチェックし、エラーメッセージを確認する。 Instana のエージェントキーやSyntheticエンドポイント( URL )などのパラメータが間違って入力された場合は、それらを修正してから実行してください popctl up

インストールが中断された際に発生する「別の操作(インストール/アップグレード/ロールバック)が進行中です」という問題の解決方法

popctl upまたは'popctl agent applyコマンドが不意に中断された場合は、同じコマンドを再度実行する。

ステータスに関係なくすべてのリリースをリストアップするには、「helm ls -aAコマンドを実行する。

出力例を以下に示す:

 NAME           NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
 instana-agent  instana-agent   1               2024-08-21 03:41:38.75709505 -0400 EDT  pending-install instana-agent-1.2.73    1.275.0
 

リストから、リリース・ステータスが「pending-installであることがわかる。 リリースをアンインストールするには、「helm uninstall instana-agent -n instana-agentコマンドを実行する。 それから、もう一度「popctl upまたは「popctl agent applyコマンドを実行する。

popctl up を実行する際に、レプリカ番号やトレースレベルなどの他のパラメータを渡すにはどうすればよいですか?

--set Helmチャートの'values.yamlで定義されたパラメータを渡すことができる。

再生エンジン・ポッドのレプリカをスケールし、トレース・レベルを更新するためのパラメータを表示します:

 popctl up \
 --set browserscript.replicas=2 \
 --set ism.replicas=2 \
 --set http.replicas=2 \
 --set javascript.replicas=2
 

トレースレベルを更新する:

--set browserscript.traceLevel="DEBUG" \
--set http.traceLevel="DEBUG" \
--set javascript.traceLevel="DEBUG" \
--set ism.traceLevel="DEBUG" \
...
 

popctl を使用して、Synthetic PoP が Instana のバックエンドサーバーに接続できるようにプロキシサーバーを設定するにはどうすればよいですか?

「 Helm 」チャートで定義されたパラメータを渡すには、 --setHelmvalues.yamlのインストールコマンドと同様に、を使用できます。

popctl up \
--set proxy.popProxyProtocol="" \
--set proxy.popProxyServer="" \
--set proxy.popProxyUserPass=""