Instalando o agente de host no Cloud Foundry

Para instalar e configurar o agente de host do Instana no Cloud Foundry, baixe as versões do agente Instana para o BOSH, envie essas versões para o seu diretor BOSH, crie o cliente UAA Instana e configure os complementos do BOSH.

Implantação do agente do ` Instana ` usando a versão BOSH

Observação: esta página é relevante para você apenas se você usar o Pivotal Platform de código aberto ( Cloud Foundry ), em vez do Pivotal Platform (anteriormente conhecido como Pivotal Cloud Foundry ) ou do BOSH para implantar softwares que não sejam o Cloud Foundry. Se você estiver usando a Pivotal Platform e o Pivotal Ops Manager, recomendamos enfaticamente que utilize o bloco “Monitoramento de aplicativos de microsserviços do Instana para a Pivotal Platform”.

Baixando a versão BOSH do agente do Instana

Nota: O Instana disponibiliza as versões do BOSH em nosso repositório público Artifactory. O login no repositório requer autenticação HTTP básica; use _ como nome do usuário e uma chave de agente válida como senha. Os links de download na interface do usuário do Instana já vêm com o nome de usuário e a chave do agente preenchidos para você usar.

Para baixar a versão BOSH do agente do Instana, siga estas etapas:

  1. Na página inicial da interface do usuário do Instana, clique em “Agentes e coletores ”. Na guia " Instana Agents ", selecione "Instalar agentes".

    Observação: Se você estiver iniciando uma nova instância de avaliação do ` Instana `, o catálogo de agentes será exibido com uma solicitação para selecionar um agente de host a ser instalado.
  2. Clique no ladrilho Cloud Foundry e BOSH

  3. Para a Etapa 1: insira a versão do agente BOSH do Instana que você deseja baixar.

    Para encontrar as versões do BOSH disponíveis, faça login no repositório público Artifactory e consulte os diretórios de versões.

  4. Para a Etapa 2: Faça o download do archive de liberação 'instana-agent'

Fazendo upload da liberação do BOSH do agente do Instana para o diretor do BOSH

Quando os archives de liberação do agente tiverem sido transferidos por download, faça upload deles para o diretor BOSH executando o comando a seguir:

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

Aplicando as configurações de tempo de execução do agente do Instana

Para implantar a versão BOSH do agente do Instana em toda a sua infraestrutura, utilize uma configuração de tempo de execução do BOSH.

Para implementar a versão BOSH do agente do Instana em todas as suas implantações, siga estas etapas:

  1. No documento yml da seguinte forma, digite os valores para os campos marcados (REQUIRED) e (Optional) que se encaixam no seu caso de uso.

  2. Para fazer upload da configuração do tempo de execução para o diretor do BOSH, execute o comando bosh update-runtime-config. Depois que a configuração do tempo de execução for atualizada, todas as implementações serão consideradas desatualizadas.

  3. O Diretor aplica as mudanças de configuração do tempo de execução em cada implementação durante a próxima bosh deploy para essa implementação.

    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
     

Para obter mais informações sobre as políticas relacionadas às atualizações do agente, consulte a página de documentação Controle de versões e gerenciamento de atualizações do agente.

Verificando o status do agente do host

Após instalar o agente do host, você pode verificar o status do agente do host na interface do usuário do Instana ou no próprio host. Para obter mais informações, consulte Verificando o status do agente do host..

Configurando o sensor de Cloud Foundry

O agente Instana é capaz de recuperar dados sobre aplicativos, espaços e organizações do Cloud Foundry a partir do Cloud Foundry API. O Instana usa essas informações para alimentar recursos relacionados ao Cloud Foundry como:

Se configurado, todo agente do Instana é capaz de coletar os dados necessários da API do Cloud Foundry. No entanto, recomendamos que apenas um agente colete os dados a qualquer momento. Ao usar o bloco, automatizamos a coleta por um agente do Instana de forma transparente, empregando um mecanismo de eleição de liderança para ter diversos agentes do Instana em espera a quente a fim de coletar dados da API do Cloud Foundry; isso garante a continuidade da recuperação de dados, por exemplo, as atualizações contínuas das implementações do BOSH. No entanto, ao implementar o agente do Instana diretamente pelo BOSH, a configuração do sensor do Cloud Foundry precisa ser expressamente configurada e oferecemos suporte às seguintes formas de fazer isso:

  1. Recomendado: Faça com que os agentes do ` Instana ` em execução nas máquinas virtuais do Cloud Controller coletem os dados de ` Cloud Foundry ` e ` API ` por meio de uma configuração de tempo de execução do BOSH
  2. Inicie um BOSH dedicado instance_group executando agentes do Instana, especialmente configurados para coletar dados das APIs do Cloud Foundry

Instalação conjunta em máquinas do Cloud Controller

A seguinte configuração de tempo de execução permite que os agentes do Instana em execução nas diversas instâncias do Cloud Controller coletem os dados do Cloud Foundry API, coordenando qual agente do Instana realiza essa tarefa em cada momento por meio de um mecanismo de eleição de liderança fornecido pela ZooKeeper versão :

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
 

De acordo com esta configuração de tempo de execução, o agente do Instana precisa de um cliente para o serviço de Conta de Usuário e Autorização (UAA) do Cloud Foundry com a cloud_controller.admin_read_only autoridade, que pode ser criado de duas maneiras:

  • Manualmente, conforme mostrado na página “Criação e gerenciamento de usuários com a CLI da UAA (UAAC) ” da documentação do Cloud Foundry.
  • Recomendado: automaticamente usando a tarefa instana-ensure-uaa-client da liberação do BOSH instana-agent usando a configuração de tempo de execução do BOSH adicional a seguir:
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
 

O método recomendado usando a tarefa instana-ensure-uaa-client tem o benefício de garantir que o client da UAA seja recriado automaticamente, caso excluído por engano. Observe que a instana-ensure-uaa-client precisa estar localizada nas máquinas virtuais que estão executando a tarefa uaa, a fim de usar as credenciais disponíveis lá.

Grupo de instância dedicado

É possível implementar agentes do Instana dedicados configurados para executar o sensor do Cloud Foundry criando um grupo de instâncias dedicado do BOSH. Não o recomendamos, no entanto, pois isso leva a um desperdício significativo de recursos de computação: o trabalho que o sensor faz é leve e é simplesmente exagero atribuir máquinas virtuais dedicadas a ele. De qualquer forma, a configuração de tempo de execução a seguir renderá um grupo de instâncias com uma máquina virtual dedicada:

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

Notas:

  1. Este grupo de instância contém uma instância. Se desejar escalá-lo para mais de uma instância, para que seja resiliente entre as atualizações contínuas, será necessário implementar adicionalmente nas máquinas a tarefa do ZooKeeper por meio da liberação do ZooKeeper homônima. O instana-agent-configuration-cf-sensor detectará automaticamente a presença do mecanismo de eleição de liderança (via seus links do BOSH) e adotá-lo de forma transparente.
  2. Será necessário configurar manualmente o URI das APIs da UAA e do Cloud Foundry. Isso significa que seria possível tecnicamente executar essa implementação em uma rede completamente diferente e até mesmo na zona de disponibilidade por meio das usadas pela implementação do Cloud Foundry.
  3. Você precisará criar um cliente UAA e um segredo de cliente correspondente junto à cloud_controller.admin_read_only autoridade, conforme mostrado na página “Criação e gerenciamento de usuários com a CLI do UAA (UAAC) ” da documentação do Cloud Foundry.

Removendo configurações de tempo de execução do agente do Instana

Para remover a configuração do tempo de execução do Instana, faça upload do seguinte executando o comando bosh update-runtime-config:

releases: []
addons: []
 

Após a atualização da configuração do tempo de execução, a liberação do BOSH do agente do Instana é removida durante a próxima bosh deploy para cada implementação. Após a atualização de todas as implementações para remover as tarefas do BOSH do agente do Instana, recomenda-se executar o comando bosh clean-up para remover a liberação que agora é desnecessária, além de seus artefatos do diretor do BOSH.

Solução de problemas na implantação de agentes

Se a instalação do agente falhar, você pode verificar as mensagens de log e as dicas de solução de problemas. Se esta seção de solução de problemas não resolver o seu problema, entre em contato com a equipe de suporte do IBM Instana e forneça informações sobre o que aconteceu. Essas informações nos ajudam a atendê-lo melhor e a aprimorar nossa documentação.

Para obter informações sobre solução de problemas aplicáveis a todos os agentes de host, consulte Solução de problemas.