Surveillance de l' IBM API Connect (APIC) sur Red Hat OpenShift

Vous pouvez surveiller l'APIC d' IBM déployé sur Red Hat OpenShift avec Instana pour une observabilité complète.

Pour surveiller l'APIC d' IBM sur Red Hat OpenShift, suivez les étapes décrites dans les sections suivantes :

  1. Installez l'agent Instana sur Red Hat OpenShift
  2. Intégration de l'agent Instana avec l'APIC d' IBM
  3. Ajout de certificats APIC
Remarque : remplacez toutes les informations sensibles ou spécifiques à l'environnement (telles que l'espace de noms, les noms d'hôte ou les informations d'identification) par vos valeurs de déploiement réelles.

Installation de l'agent Instana sur Red Hat OpenShift

Pour installer l'agent Instana sur Red Hat OpenShift afin d'assurer l'observabilité APIC, procédez comme suit :

Étape 1. Créer l'espace de noms et attribuer des autorisations

À partir de l'interface CLI d' OpenShift, créez un espace de noms nommé instana-agent et accordez-lui les autorisations nécessaires.

$ oc create ns instana-agent
$ oc adm policy add-scc-to-user privileged -z instana-agent -n instana-agent
Remarque : les autorisations doivent être appliquées à l'espace de noms correct. Sinon, les pods de l'agent d' Instana s ne démarrent pas en raison de privilèges insuffisants.

Étape 2. Installez l'opérateur Instana à partir de OperatorHub

  1. Ouvrez OperatorHub et passez à l'espace de noms instana-agent.
  2. Filtrez par Instana et sélectionnez l 'opérateur d' Instana (par exemple, version 2.0.3 ou ultérieure).
Remarque : installez toujours la dernière version prise en charge disponible.

Étape 3. Configurer les options d'installation

Lorsque vous installez l'opérateur Instana, utilisez la configuration suivante :

  • Chaîne : stable
  • Mode : All Namespaces
  • Espace de noms installé : openshift-operators
  • Stratégie : Automatic
Remarque : en installant l'opérateur dans tous les espaces de noms, Instana peut surveiller toutes les charges de travail sur l'ensemble du cluster OpenShift.

Après l'installation, basculez l'espace de noms vers instana-agent pour créer l'instance de l'agent Instana.

Étape 4 : Créer une instance d'agent d' Instana

  1. Ouvrez l 'opérateur « Instana » (Définir le niveau de détail) à partir de l'onglet « OperatorHub » (Définir le niveau de détail).

  2. Sélectionnez l'onglet Agent d' Instana.

  3. Cliquez sur Créer une instance.

  4. Passez à l'affichage de l' YAML et entrez la configuration comme suit :

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>
Remarque : ne modifiez pas l'espace de noms (instana-agent) ni le nom de l'instance (instana-agent).

Une fois créée, l'instance sgent de l' Instana est visible dans l'espace instana-agent de noms. Le processus d'installation peut prendre environ 4 à 5 minutes.

Étape 5. Valider l'installation depuis la console d' OpenShift

Après le déploiement, vérifiez que les pods de l'agent d' Instana s s'exécutent dans l'espace instana-agent de noms.

Chaque nœud du cluster héberge un pod d'agent d' Instana. Par exemple, un cluster avec 2 nœuds affiche 2 pods.

Pour vérifier, exécutez les commandes suivantes :

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

Si certains pods ne démarrent pas en raison de problèmes d'autorisation, réappliquez la politique SCC :

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

Ensuite, redémarrez l' DaemonSet e pour reconstruire les pods :

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

Intégration de l'agent Instana avec l'APIC d' IBM

Pour intégrer l'agent Instana à l'APIC d' IBM sur Red Hat OpenShift, procédez comme suit :

Étape 1 : Assurez-vous que l'opérateur Instana est installé dans le cluster OpenShift

Assurez-vous que l'opérateur Instana fonctionne correctement dans l'espace de noms souhaité avant de continuer. Par exemple :

  • Instana Version opérateur : 2.1.25
  • Espace de noms : <namespace name>

Vous pouvez installer l'opérateur Instana à partir de OperatorHub ou à l'aide de l'interface CLI OpenShift.

Pour installer l'opérateur à partir de OperatorHub,, consultez la section Installation de l'agent sur OpenShift.

Pour installer l'opérateur à l'aide de l'interface CLI OpenShift, appliquez le script d' CatalogSource suivant :

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

Étape 2 : Configurer l'agent d' Instana s pour APIC

Pour configurer l'agent d' Instana s pour APIC, procédez comme suit :

  1. Obtenez l' YAML s de configuration dans Menu > Déploiement de l'agent > OpenShift dans l'interface utilisateur d' Instana.

    Exemple d' YAML de base :

    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. Déployez cette configuration en mode DEBUG pour valider la connectivité et les journaux de dépannage.

Étape 3 : Réinstallez l'opérateur (s'il est corrompu)

Si l'opérateur d' Instana s ou la définition de ressource personnalisée (CRD) est corrompu, réinstallez-le à l'aide des commandes suivantes :

oc delete crd/agents.instana.io

Étape 4 : Valider la connectivité avec APIC

Avant de configurer Instana, vérifiez la connectivité APIC à l'aide des curl commandes indiquées dans les exemples suivants.

Vous aurez peut-être besoin des informations suivantes :

  • Hôte de gestion APIC URL : obtenir à partir de la configuration de l'opérateur APIC.
  • ID client et clé secrète client : obtenez-les à partir du credentials.json fichier téléchargé depuis votre APIC Cloud Manager.

Pour obtenir le domaine, exécutez la commande de validation suivante :

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>"

Pour obtenir le jeton porteur, exécutez la commande de validation suivante :

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"}'

Étape 5 : Ajouter l'intégration APIC à l'agent d' Instana

Pour activer la surveillance APIC, procédez comme suit :

  1. Mettez à jour votre fichier configuration.yaml agent d' Instana comme suit :
    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. Appliquez les modifications en exécutant la commande suivante :
    oc apply -f instana-agent.yaml

Ajout d'un certificat APIC

Pour ajouter un certificat APIC en toute sécurité, procédez comme suit :

Étape 1 : Télécharger le certificat APIC

Pour télécharger localement le certificat API Connect SSL, exécutez la commande suivante :

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

Étape 2 : Téléchargez le certificat vers le pod de l'agent Instana

Pour répertorier tous les pods dans l'espace de noms spécifié, exécutez la commande suivante :

oc get pods -n <namespace name>

Pour copier le certificat téléchargé dans le pod de l'agent d' Instana, exécutez les commandes suivantes :

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

Étape 3 : Importez le certificat dans le magasin de clés

Pour importer le certificat dans le conteneur de l'agent d' Instana, exécutez la commande suivante :

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

Pour extraire le keystore, exécutez la commande suivante :

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

Étape 4 : Créer un secret d' Kubernetes e pour le certificat

Pour supprimer le secret existant, exécutez la commande suivante :

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

Pour créer un secret à l'aide du keystore mis à jour, exécutez la commande suivante :

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

Étape 5 : Montez le secret dans le pod de l'agent d' Instana

Pour monter le volume secret, mettez à jour la configuration de l'agent d' Instana s comme suit :

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

Étape 6 : redémarrez les pods de l'agent d' Instana

Pour appliquer les modifications, redémarrez l'agent d' InstanaDaemonSet en exécutant la commande suivante :

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

Vérifiez que les pods redémarrent et atteignent l'état Running.