Installation de l'agent hôte sur Cloud Foundry

Pour installer et configurer l'agent hôte Instana sur Cloud Foundry, vous devez télécharger les versions BOSH de l'agent Instana, les transférer vers votre directeur BOSH, créer le client UAA Instana et configurer les modules complémentaires BOSH.

Déploiement de l'agent « Instana » à l'aide de la version BOSH

Remarque : cette page ne vous concerne que si vous utilisez la version open source d' Cloud Foundry, et non Pivotal Platform (anciennement Pivotal Cloud Foundry ) ou BOSH pour déployer des logiciels autres qu' Cloud Foundry. Si vous utilisez Pivotal Platform et Pivotal Ops Manager, nous vous recommandons vivement d'utiliser la tuile « Instana Microservices Application Monitoring for Pivotal Platform ».

Téléchargement de la version BOSH de l'agent « Instana »

Remarque : Instana met à disposition les versions de BOSH sur notre dépôt public Artifactory. La connexion au référentiel requiert une authentification HTTP de base ; utilisez _ comme nom d'utilisateur et une clé d'agent valide comme mot de passe. Les liens de téléchargement dans l'interface utilisateur d' Instana sont préremplis avec le nom d'utilisateur et la clé d'agent pour vous faciliter la tâche.

Pour télécharger la version BOSH de l'agent « Instana », procédez comme suit :

  1. Sur la page d'accueil de l'interface utilisateur d' Instana, cliquez sur « Agents et collecteurs ». Dans l'onglet « Agents » de l' Instana, sélectionnez « Installer les agents ».

    Remarque : si vous lancez une nouvelle instance d'essai d' Instana, le catalogue d'agents s'affiche et vous invite à sélectionner un agent hôte à installer.
  2. Cliquez sur la vignette Cloud Foundry et BOSH

  3. Pour l'étape 1 : indiquez la version BOSH de l'agent d' Instana que vous souhaitez télécharger.

    Pour connaître les versions disponibles de BOSH, connectez-vous au référentiel public Artifactory, puis consultez les répertoires des versions.

  4. Pour Etape 2: Téléchargez l'archive de l'édition'instana-agent'.

Envoi par téléchargement de l'édition BOSH de l'agent Instana dans le directeur BOSH

Une fois que les archives d'édition de l'agent ont été téléchargées, téléchargez-les vers le directeur BOSH en exécutant la commande suivante:

bosh upload-release <path/to/agent-bosh-xyz.tar.gz>
 

Application des configurations d'exécution de l'agent Instana

Pour déployer la version BOSH de l'agent « Instana » dans l'ensemble de votre infrastructure, utilisez une configuration d'exécution BOSH.

Pour déployer la version BOSH de l'agent « Instana » sur l'ensemble de vos déploiements, procédez comme suit :

  1. Dans le document yml , comme suit, entrez les valeurs des zones marquées (REQUIRED) et (Optional) qui correspondent à votre cas d'utilisation.

  2. Pour envoyer par téléchargement la configuration d'exécution au directeur BOSH, exécutez la commande bosh update-runtime-config. Une fois la configuration d'exécution mise à jour, tous les déploiements sont considérés comme obsolètes.

  3. Le directeur applique les modifications de configuration d'exécution à chaque déploiement lors de l'exécution de la commande bosh deploy suivante pour ce déploiement.

    releases:
      - name: instana-agent
        version:
          # (REQUIRED) Fill in the value with the actual release version.
          # For example, if you downloaded the file
          # agent-bosh-1.157.31.tar.gz, the right value is: 1.157.31
    
    addons:
      - name: instana-agent-infrastructure
        jobs:
          - name: instana-agent
            release: instana-agent
            properties:
              tanzu:
                foundation:
                  id: # (REQUIRED) A technical ID to identify this foundation
                  name: # (REQUIRED) A name to identify this foundation
              instana:
                agent: &agent-configuration
                  mode: INFRASTRUCTURE
                  endpoint: # (REQUIRED) Instana ingress endpoint, e.g., ingress-red-saas.instana.io
                  endpoint_port: # (Optional) Instana ingress endpoint port, default is 443
                  key: # (REQUIRED) Fill this with the agent key for your Instana tenant unit
                  download_key: # (Optional) Download key for downloading agent updates.
                    # This is necessary only in special cases, like running a private update repository.
                    # If not specified, the agent will fall back to the value 'instana.agent.key'.
                  zone: # (Optional, not advised) the name of the zone of the host.
                    # If unspecified, the value of `tanzu.foundation.name` will be used instead.
    
                  # (Optional) Add further configurations for the Agent's configuration.yaml files.
                  # Activate support for the JREs used in the latest Java buildpacks
                  custom_configuration: |
    
                  # (Optional) Add more environment variables to be passed to the Instana agent.
                  # Experimental flags of the Instana agent are activated using environment variables.
                  # It is not advised to use these settings unless instructed by Instana's support.
                  # Each environment variable must be entered in a text line.
                  # This entire stanza can be omitted if there is no proxy between the Instana agents and the Instana backend
                  environment: |
                    USE_ATTACH_TOOLS=true
                  proxy:
                    type: # (Optional) Type of proxy to be used by the agent to connect to the Instana backend.
                    # Valid values are 'http' (works also for HTTPS proxies), 'socks4' and 'socks5'.
                    # Default is to use no proxy.
                    host: # (Optional) Hostname of the proxy server, e.g., 'my.proxy' (without protocol).
                      # This property is required if a value is set for 'instana.agent.proxy.type', and ignored otherwise.
                    port: # (Optional) Port of the proxy server.
                      # This property is required if a value is set for 'instana.agent.proxy.type', and ignored otherwise.
                    user: # (Optional) User to be used to authenticate against the proxy server.
                      # Default is not to use authentication.
                      # This property is ignored if 'instana.agent.proxy.type' has no value set.
                    password: # (Optional) Password to be used to authenticate against the proxy server.
                      # Default is not to use authentication.
                      # This property is ignored if 'instana.agent.proxy.type' or 'instana.agent.proxy.user' have no value set.
                    dns: # (Optional) If set to 'true', DNS will be used to resolve the proxy address.
                      # Default is 'true'.
                      # This property is ignored if 'instana.agent.proxy.type' has no value set.
                    updates:
                      mode:
                        dynamic # Whether the agent should update itself dynamically ("dynamic") or not ("static", default).
                        # Default is dynamic.
                      dynamic:
                        repository:
                          hostname:
                            artifact-public.instana.io # The hostname of the repository to tap for updates to agent and sensors.
                            # The agent will connect to the repository on port 80 and 443.
                          version: # (Optional) Which version of the updates pack to use without further updates (version pinning).
                            # This setting overrides 'instana.agent.updates.dynamic.frequency' and 'instana.agent.updates.dynamic.time'.
                          frequency:# (Optional) How often to update the agent.
                            # Valid values are "DAY" (default, means daily updates), "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY" and "SUNDAY".
                            # Default is 'DAY'.
                          time: # Time of day when the update is executed, expected in hh:mm format in UTC.
                            # Default is '04:30'.
        include:
          stemcell: &supported-linux-stemcells
            - alias: ubuntu-trusty
              os: ubuntu-trusty
            - alias: ubuntu-xenial
              os: ubuntu-xenial
            - alias: ubuntu-bionic
              os: ubuntu-bionic
            - alias: centos-7
              os: centos-7
        exclude:
          jobs:
            - name: garden
              release: garden-runc
      - name: instana-agent-apm
        jobs:
          - name: instana-agent
            release: instana-agent
            properties:
              instana:
                agent:
                  <<: *agent-configuration
                  mode: APM
        include:
          jobs:
            - name: garden
              release: garden-runc
          stemcell: *supported-linux-stemcells
     

Pour plus d'informations sur les règles relatives aux mises à jour des agents, consultez la page de documentation intitulée « Gestion des versions et des mises à jour des agents ».

Configuration du capteur Cloud Foundry

L'agent « Instana » est capable de récupérer des données concernant les applications, les espaces et les organisations d' Cloud Foundry à partir de l' API Cloud Foundry. Instana utilise ces informations pour alimenter les fonctions liées à Cloud Foundry, comme :

Chaque agent Instana, s'il est configuré, peut collecter les données nécessaires depuis l'API Cloud Foundry. Toutefois, il est recommandé de n'utiliser qu'un seul agent pour collecter les données à tout moment. Si vous utilisez la vignette, la collecte par un seul agent Instana est automatisée en toute transparence, avec un mécanisme d'élection de leader permettant de disposer de plusieurs agents Instana en secours automatique pour collecter les données de l'API Cloud Foundry. Ainsi, la continuité de l'extraction des données, par exemple pendant les mises à jour continues des déploiements BOSH, est assurée. Toutefois, lors du déploiement de l'agent Instana directement via BOSH, le capteur Cloud Foundry doit être configuré expressément, et les méthodes suivantes sont prises en charge :

  1. Recommandation : demandez aux agents « Instana » exécutés sur les machines virtuelles du Cloud Controller de collecter les données de l' Cloud Foundry API via une configuration d'exécution BOSH
  2. Lancer un BOSH dédié instance_group exécutant des agents Instana spécialement configurés pour collecter des données à partir des API Cloud Foundry

Colocalisation sur des machines Cloud Controller

La configuration d'exécution suivante permet aux agents « Instana » s'exécutant sur les différentes instances du Cloud Controller de collecter les données de l' Cloud Foundry API, en coordonnant quel agent Instana effectue cette tâche à un moment donné grâce à un mécanisme d'élection de leader fourni par la ZooKeeper version :

releases:
  - name: instana-agent
    version:# (REQUIRED) Fill in the value with the actual release version.
      # For example, if you downloaded the file
      # agent-bosh-1.157.31.tar.gz, the right value is: 1.157.31
  - name: zookeeper
    version: "0.0.10"
    url: "https://bosh.io/d/github.com/cppforlife/zookeeper-release?v=0.0.10"
    sha1: "a6d227abceebf1e3e68ce4a3cabf68b0b93165d2"

addons:
  - name: instana-cf-sensor
    jobs:
      - name: instana-agent-configuration-cf-sensor
        release: instana-agent
        properties:
          tanzu:
            foundation:
              id: # (REQUIRED) A technical ID to identify this foundation
              name: # (REQUIRED) A name to identify this foundation
          cf:
            uaa:
              client: # (REQUIRED) A UAA client that has the 'cloud_controller.admin_read_only' authorities
              client_secret: # (REQUIRED) Client secret matching the above client
      - name: zookeeper
        release: zookeeper
        properties:
          leader_serves: "yes"
          # 42600 is the legacy leadership election port and we wanna avoid incompatibilities over update
          leader_election_port: 42601
          quorum_port: 42602
    include:
      jobs:
        - name: cloud_controller_ng
          release: capi
 

Selon cette configuration d'exécution, l'agent d' Instana a besoin d'un client pour le service « User Account and Authorization » (UAA) d' Cloud Foundry doté des cloud_controller.admin_read_only droits nécessaires, qui peut être créé de deux façons :

releases:
  - name: instana-agent
    version:# (REQUIRED) Fill in the value with the actual release version.
      # For example, if you downloaded the file
      # agent-bosh-1.157.31.tar.gz, the right value is: 1.157.31

addons:
  - name: instana-ensure-uaa-client
    jobs:
      - name: instana-ensure-uaa-client
        release: instana-agent
        properties:
          cf:
            uaa:
              client: # (REQUIRED) This entry must match the one of the `cf.uaa.client` property of the `instana-cf-sensor` runtime configuration
              client_secret: # (REQUIRED) This entry must match the one of the `cf.uaa.client_secret` property of the `instana-cf-sensor` runtime configuration
    include:
      jobs:
        - name: uaa
          release: uaa
 

La méthode recommandée qui utilise le travail instana-ensure-uaa-client présente un avantage supplémentaire : elle garantit que le client UAA est recréé automatiquement s'il est supprimé par erreur. Notez que le instana-ensure-uaa-client doit se trouver sur les machines virtuelles exécutant le travail uaa , afin d'utiliser les données d'identification disponibles.

Groupe d'instances dédié

Il est possible de déployer des agents Instana dédiés configurés pour exécuter le capteur Cloud Foundry en créant un groupe d'instances BOSH dédié. Ce n'est cependant pas recommandé car cela conduit à un gaspillage important des ressources informatiques : le travail du capteur est simple et il est tout simplement exagéré de lui allouer des machines virtuelles dédiées. Quoi qu'il en soit, la configuration d'exécution suivante produit un groupe d'instances avec une machine virtuelle dédiée :

---
name: instana-cf-sensor

stemcells:
  - alias: &stemcell_name bosh-aws-xen-hvm-ubuntu-xenial-go_agent
    os: ubuntu-xenial
    version: "621.29"

releases:
  - name: instana-agent
    version: <instana-agent-bosh-release-version>

instance_groups:
  - name: instana-cf-sensor
    azs: ...
    instances: 1
    jobs:
      - name: instana-agent-configuration-cf-sensor
        release: instana-agent
        properties:
          cf:
            api:
              url: <TODO> # e.g., https://api.sys.mypcf.qainfra.instana.io
            uaa:
              url: <TODO> # e.g., https://uaa.sys.mypcf.qainfra.instana.io
              client: <TODO>
              client_secret: <TODO>
    vm_type: t3.micro
    stemcell: *stemcell_name
    networks:
      # Your network setup may look different
      - default:
          - dns
          - gateway
        name: instana-cf-sensor

update:
  canaries: 1
  canary_watch_time: 30000-300000
  max_errors: 2
  max_in_flight: 1
  serial: false
  update_watch_time: 30000-300000
 

Remarques :

  1. Ce groupe d'instances contient une instance. Si vous voulez le faire évoluer vers plusieurs instances, pour lui permettre d’être résilient dans toutes les mises à jour tournantes, vous devez également déployer le travail ZooKeeper provenant de l'édition homonyme ZooKeeper. Le instana-agent-configuration-cf-sensor détecte automatiquement la présence du mécanisme d'élection des dirigeants (via ses liens BOSH) et l'adopte de manière transparente.
  2. Vous devrez configurer manuellement l'URI des API UAA et Cloud Foundry. Cela signifie que vous pouvez techniquement exécuter ce déploiement sur un réseau et même dans une zone de disponibilité complètement différents de ceux utilisés par le déploiement Cloud Foundry.
  3. Vous devrez créer un client UAA et une clé secrète de client correspondante auprès de cloud_controller.admin_read_only l'autorité, comme indiqué sur la page « Création et gestion des utilisateurs avec l'interface CLI UAA (UAAC) » de la documentation de l' Cloud Foundry.

Retrait des configurations d'exécution d'agent Instana

Pour retirer la configuration d'exécution Instana, envoyez les éléments suivants par téléchargement en exécutant la commande bosh update-runtime-config :

releases: []
addons: []
 

Une fois la configuration d'exécution mise à jour, l'édition BOSH de l'agent Instana est retirée lors de l'exécution suivante de la commande bosh deploy pour chaque déploiement. Une fois que tous les déploiements ont été mis à jour pour retirer les travaux BOSH de l'agent Instana, il est recommandé d'exécuter la commande bosh clean-up pour retirer la version désormais inutile et ses artefacts du directeur BOSH.

Dépannage du déploiement des agents

Si l'installation de l'agent échoue, vous pouvez consulter les messages du journal et les conseils de dépannage. Si cette section consacrée au dépannage ne permet pas de résoudre votre problème, veuillez contacter l'équipe d'assistance d' IBM Instana en lui fournissant des détails sur le problème rencontré. Ces informations nous aident à vous aider et à améliorer notre documentation.

Pour obtenir des informations générales sur le dépannage de tous les agents hôtes, consultez la section Dépannage.