Red Hat OpenShift における IBM API Connect (APIC)の監視

包括的な監視のために、 Instana を使用して Red Hat OpenShift にデプロイされた IBM APIC を監視できます。

Red Hat OpenShift 上の IBM APIC を監視するには、以下のセクションに記載されている手順を完了してください:

  1. Instana エージェントを Red Hat OpenShift にインストールする
  2. Instana エージェントと IBM APICの統合
  3. APIC証明書の追加
注: すべての機密情報や環境固有の詳細(名前空間、ホスト名、認証情報など)を、実際のデプロイメント値に置き換えてください。

Instana エージェントのインストール( Red Hat OpenShift )

APICの可観測性のために、 Red Hat OpenShift に Instana エージェントをインストールするには、次の手順を完了してください:

ステップ 1. 名前空間を作成し、権限を割り当てる

OpenShift CLI から、という名前のネームスペースを作成し instana-agent 、必要な権限を付与します。

$ oc create ns instana-agent
$ oc adm policy add-scc-to-user privileged -z instana-agent -n instana-agent
注: 権限は正しい名前空間に適用する必要があります。 そうでない場合、 Instana エージェントポッドは権限不足により起動に失敗します。

ステップ 2. Instana オペレータを OperatorHub からインストールしてください

  1. 開いて OperatorHub、名前空間に切り替えて instana-agentください。
  2. でフィルタ Instana リングし、 Instana オペレータを選択します(例:バージョン 2.0.3 以降)。
注記: 常に利用可能な最新のサポート対象バージョンをインストールしてください。

ステップ 3. インストールオプションの設定

Instana オペレータをインストールする際は、以下の設定を使用してください:

  • チャンネル: stable
  • モード: All Namespaces
  • インストール済み名前空間: openshift-operators
  • 戦略: Automatic
注記: オペレータを 「すべてのネームスペース」 にインストールすることで、 Instana は OpenShift クラスター全体のすべてのワークロードを監視できます。

インストール後、名前空間を に切り替えて、 instana-agentInstana エージェントインスタンスを作成します。

ステップ 4. Instana エージェントインスタンスを作成する

  1. OperatorHub から Instana オペレータを開きます。

  2. Instana エージェントタブを選択します。

  3. インスタンスを作成をクリックしてください。

  4. YAML ビューに切り替えて、以下の設定を入力してください:

apiVersion: instana.io/v1
kind: InstanaAgent
metadata:
  name: instana-agent
  namespace: instana-agent
spec:
  agent:
    configuration_yaml: |
      # Optional: Add custom agent configurations here.
    endpointHost: <your-host-endpoint>
    endpointPort: '443'
    env: {}
    key: uBp4GXpZQpKrHxMXNcvInQ
  zone:
    name: GCP US  # Considered auto-generated
  cluster:
    name: <your-cluster-name>
注記: 名前空間 (instana-agent) やインスタンス名 (instana-agent) は変更しないでください。

Instana のsgentインスタンスが作成されると、名前 instana-agent 空間内で可視化されます。 セットアッププロセスには約4~5分かかります。

ステップ5. OpenShift コンソールからのインストールを検証する

デプロイ後、 Instanainstana-agent エージェントポッドがnamespace内で実行されていることを確認してください。

クラスタ内の各ノードは、1つの Instana エージェントポッドをホストします。 たとえば、2ノードのクラスターには2つのポッドが表示されます。

確認のため、以下のコマンドを実行してください:

$ oc get pods,ds -n instana-agent
$ oc describe ds instana-agent -n instana-agent

権限の問題によりポッドの起動に失敗した場合は、SCCポリシーを再適用してください:

$ oc adm policy add-scc-to-user privileged -z instana-agent -n instana-agent

次に、 DaemonSet を再起動してポッドを再構築します:

$ oc rollout restart ds instana-agent -n instana-agent

Instana エージェントと IBM APICの統合

Instana エージェントを Red Hat OpenShift 上の IBM APICと統合するには、以下の手順を完了してください:

ステップ1: Instana オペレータが OpenShift クラスタにインストールされていることを確認する

続行する前に、目的のネームスペースで Instana オペレータが正常に実行されていることを確認してください。 例:

  • Instana オペレーター版: 2.1.25
  • 名前空間: <namespace name>

Instana オペレータは、 OperatorHub から、または OpenShift CLIを使用してインストールできます。

OperatorHub, からオペレータをインストールするには、 OpenShift の「エージェントのインストール」 を参照してください。

OpenShift CLIを使用してオペレーターをインストールするには、次の CatalogSource スクリプトを適用します:

apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
  name: ibm-operator-catalog
  namespace: openshift-marketplace
spec:
  displayName: IBM Operator Catalog
  image: 'icr.io/cpopen/ibm-operator-catalog:latest'
  publisher: IBM
  sourceType: grpc
  updateStrategy:
    registryPoll:
      interval: 45m

ステップ2: APIC用の Instana エージェントを設定する

APIC用の Instana エージェントを設定するには、次の手順を完了してください:

  1. Instana UI の [メニュー ] > [エージェント展開 ] > OpenShift [ YAML ] から構成を取得します。

    例ベース YAML :

    apiVersion: instana.io/v1
    kind: InstanaAgent
    metadata:
      name: instana-agent
      namespace: <namespace name>
    spec:
      zone:
        name: <zone name> # Optional
      cluster:
        name: <cluster name>
      agent:
        key: <instana-agent-key>
        downloadKey: <instana-download-key>
        endpointHost: <instana-endpoint-host>
        endpointPort: "443"
        env:
          INSTANA_LOG_LEVEL: DEBUG
  2. この設定をDEBUG モードでデプロイし、接続性とトラブルシューティングログを検証してください。

ステップ3: オペレータの再インストール(破損している場合)

Instana オペレーターまたはカスタムリソース定義(CRD)が破損した場合、以下のコマンドを使用して再インストールしてください:

oc delete crd/agents.instana.io

ステップ4: APICとの接続性を検証する

Instana を設定する前に、以下の curl 例に示すコマンドを使用して APIC の接続性を確認してください。

以下の詳細が必要になる場合があります:

  • APIC管理ホスト URL : APICオペレーターの設定から取得します。
  • クライアントIDクライアントシークレット :APIC Cloud Managerからダウンロードしたファイル credentials.json から取得してください。

領域を取得するには、次の検証コマンドを実行してください:

curl -k -X GET "https://<apic-host>/api/cloud/provider/identity-providers?fields=title%2Crealm"   -H "Accept: application/yaml"   -H "Accept-Language: en-US"   -H "User-Agent: Toolkit/10.0.8.0"   -H "X-Ibm-Client-Id: <client-id>"   -H "X-Ibm-Client-Secret: <client-secret>"

ベアラートークンを取得するには、次の検証コマンドを実行してください:

curl -k https://<apic-host>/api/token  -H "Content-Type: application/json"  -H "accept: application/json"  -d '{"username":"<username>", "password":"<password>", "realm":"<realm>", 
 "client_id":"<client-id>", "client_secret":"<client-secret>", "grant_type":"password"}'

ステップ5: APIC統合を Instana エージェントに追加する

APIC モニタリングを有効にするには、次の手順を完了してください:

  1. Instanaconfiguration.yaml エージェントファイルを次のように更新してください:
    spec:
      agent:
        configuration_yaml: |-
          com.instana.plugin.ibmapiconnect:
            remote:
              - host: '<apic-host>'
                port: '443'
                username: '<username>'
                password: '<password>'
                realm: '<realm>'
                clientId: '<client-id>'
                clientSecret: '<client-secret>'
                availabilityZone: 'API-Connect'
                poll_rate: <desired-poll-rate>
  2. 以下のコマンドを実行して変更を適用してください:
    oc apply -f instana-agent.yaml

APIC証明書の追加

APIC証明書を安全に追加するには、以下の手順を完了してください:

ステップ1: APIC証明書をダウンロードする

API Connect の SSL 証明書をローカルにダウンロードするには、次のコマンドを実行します:

mkdir temp
cd temp
echo | openssl s_client -connect <apic-host>:443 | openssl x509 > ~/temp/apic.cer
ls -ltr
# Should display apic.cer

ステップ2: 証明書を Instana エージェントポッドにアップロードする

指定されたネームスペース内のすべてのポッドを一覧表示するには、次のコマンドを実行します:

oc get pods -n <namespace name>

ダウンロードした証明書を Instana エージェントポッドにコピーするには、次のコマンドを実行します:

oc cp ./apic.cer <pod name>:/tmp/apic.cer -n <namespace name>

ステップ3: 証明書をキーストアにインポートする

Instana エージェントコンテナ内に証明書をインポートするには、次のコマンドを実行します:

oc exec -it <pod name> -n <namespace name> -- /opt/instana/agent/jvm/bin/keytool   -import -alias tempcert   -keystore /opt/instana/agent/jvm/lib/security/cacerts   -storepass changeit   -file /tmp/apic.cer   -noprompt

キーストアを抽出するには、次のコマンドを実行します:

oc cp <pod name>:/opt/instana/agent/jvm/lib/security/cacerts /tmp/cacerts -n <namespace name>

ステップ4: 証明書用の Kubernetes シークレットを作成する

既存のシークレットを削除するには、次のコマンドを実行してください:

oc delete secret ibm-apic-ca-secret -n <namespace name> --force

更新されたキーストアを使用して秘密鍵を作成するには、次のコマンドを実行します:

oc create secret generic ibm-apic-ca-secret   --from-file=cacerts=/tmp/cacerts   -n <namespace name>

ステップ5: Instana エージェントポッドにシークレットをマウントする

秘密ボリュームをマウントするには、 Instana エージェントの設定を次のように更新します:

spec:
  agent:
    pod:
      volumeMounts:
        - name: apic-cert-volume
          mountPath: /opt/instana/agent/jvm/lib/security/cacerts
          subPath: cacerts
      volumes:
        - name: apic-cert-volume
          secret:
            secretName: ibm-apic-ca-secret

ステップ6: Instana エージェント ポッドを再起動する

変更を適用するには、次のコマンドを実行して Instana エージェントを再起動してください: DaemonSet

oc rollout restart -n <namespace name> ds instana-agent

ポッドが再起動し、 Running 状態に達することを確認してください。