Implementação do Agente de criação de log v1.6.x para clusters OpenShift

Você pode usar um gráfico Helm para implementar o Agente de criação de log v1.6.x para coletar e rotear logs de infraestrutura e de aplicativos de um cluster OpenShift para uma instância IBM Cloud Logs.

Você também pode usar o Terraform IBM Modules (TIM) para Agente de criação de log para implantar e configurar o agente de logs em clusters OpenShift compatíveis. Este módulo automatiza a implementação baseada em Helm e as principais definições de configuração usando a automação da Infraestrutura como Código ( IaC ).

Conclua as etapas a seguir para implantar um agente em um cluster OpenShift:

Antes de Iniciar

  • Certifique-se de que você tenha acesso a um cluster Red Hat OpenShift on IBM Cloud ( OpenShift ) com permissões para criar namespaces e implantar o agente.

  • Instale as CLIs a seguir:

    • A CLI do IBM Cloud para fazer login no IBM Cloud e gerenciar os serviços do IBM Cloud, como a criação de uma chave de API.

    • A CLI do Openshift para gerenciar o cluster a partir da linha de comando. Saiba mais.

    • A versão mais recente da versão 3 do Helm CLI

  • Leia sobre o site Agente de criação de log.

  • Verifique as versões do agente que estão disponíveis. Para obter mais informações, consulte Verificação das versões disponíveis do agente. Observe que a versão do gráfico Helm corresponderá à versão do agente - por exemplo, se você estiver usando a versão 1.3.0 do agente, há um gráfico Helm com a versão 1.3.0 que acompanha essa versão.

Etapa 1. Definir o método de autenticação para o agente

Escolha o tipo de identidade e o método de autenticação para o agente. Em seguida, crie um perfil confiável ou uma chave de API. A função necessária para enviar os registros para IBM Cloud Logs é Sender.

Você pode usar uma ID de serviço ou um perfil confiável como a identidade usada pelo agente para se autenticar no serviço IBM® Cloud Logs. Para obter mais informações, consulte Concessão de permissões de IAM para ingestão.

Selecione uma das opções a seguir:

Opção 1: Autenticação usando um perfil confiável

Crie um perfil confiável. Para obter mais informações, consulte Geração de um perfil confiável para ingestão.

Opção 2: Autenticação usando uma chave de API de ID de serviço

Gerar uma chave de API para autenticação de ID de serviço. Para obter mais informações, consulte Geração de uma chave de API para ingestão.

Etapa 2. Configuração do arquivo de valores do gráfico Helm para o Agente de criação de log

Conclua as etapas a seguir:

  1. Crie um arquivo chamado logs-values.yaml com o seguinte conteúdo:

    Esse arquivo contém as configurações específicas de sua implementação.

    metadata:
      name: "logs-agent"
    image:
      version: "1.6.1"  # required
    
    clusterName: "ENTER_CLUSTER_NAME"     # Enter the name of your cluster. This information is used to improve the metadata and help with your filtering.
    
    env:
      # ingestionHost is a required field. For example:
      # ingestionHost: "<logs instance>.ingress.us-east.logs.cloud.ibm.com"
      ingestionHost: "" # required
    
      # If you are using private CSE proxy, then use port number "3443"
      # If you are using private VPE Gateway, then use port number "443"
      # If you are using the public endpoint, then use port number "443"
      ingestionPort: "" # required
    
      iamMode: "TrustedProfile"
      # trustedProfileID - trusted profile id - required for iam trusted profile mode
      trustedProfileID: "Profile-yyyyyyyy-xxxx-xxxx-yyyy-zzzzzzzzzzzz" # required if iamMode is set to TrustedProfile
    
    scc:
      # true here enables creation of Security Context Constraints in Openshift
      create: true
    
  2. Atualize os campos no arquivo yaml com valores específicos para seu ambiente.

    Helm parâmetros necessários do gráfico
    Nome do campo Descrição
    image.version A versão do agente a ser implantada , consulte a Etapa 1
    clusterName O nome do cluster - isso introduzirá a tag kubernetes.cluster_name em todas as linhas de registro
    env.ingestionHost O ponto de extremidade de entrada público ou privado da instância IBM Cloud Logs para receber os registros
    env.ingestionPort A porta do ponto de extremidade de entrada
    Ponto de extremidade de entrada público = 443
    Ponto de extremidade de entrada privado (VPE) = 443
    Ponto de extremidade de entrada privado (CSE) = 3443
    env.iamMode TrustedProfile ou IAMAPIKey com base no método de autenticação escolhido na Etapa 1
    env.trustedProfileID Se iamMode for TrustedProfile, forneça a ID do perfil confiável; caso contrário, isso não será necessário (por exemplo: Profile-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ).
    env.iamEnvironment Determina o ponto de extremidade de autenticação IAM correto. Os valores válidos são Production, PrivateProduction, ou Custom. Se omitido, o valor padrão é Production.
    env.iamHost Se iamEnvironment for Custom, forneça o host do IAM (por exemplo: private.eu-de.iam.cloud.ibm.com); caso contrário, isso não será necessário.
    scc.create Defina como true para criar as restrições de segurança no Openshift

Etapa 3. Instale o gráfico Helm

Se você estiver usando o iamMode como IAMAPIKey, a apikey precisará estar presente em um segredo Kubernetes chamado logs-agent com o nome de chave IAM_API_KEY. O segredo pode ser criado usando o gráfico Helm, incluindo a opção --set secret.iamAPIKey=<your iamAPIKey> ao executar a instalação do helm. Se o segredo tiver sido criado manualmente ou se você estiver usando iamMode=TrustedProfile, não inclua essa opção.

Conclua as etapas a seguir:

  1. Efetue login no cluster.

    Red Hat OpenShift on IBM Cloud está integrado ao IBM Cloud Identity and Access Management (IAM). Com o IAM, é possível autenticar usuários e serviços usando suas identidades do IAM e autorizar ações com funções de acesso e políticas. Quando você se autentica como usuário por meio do console Red Hat OpenShift, sua identidade IAM é usada para gerar um token de login Red Hat OpenShift que pode ser usado para fazer login na linha de comando. É possível automatizar a criação de log em seu cluster criando uma chave de API do IAM ou um ID de serviço a ser usado para o comando oc login. Para obter mais informações, consulte Acesso a clusters Red Hat OpenShift.

    Por exemplo, conclua as etapas em Usar uma ID de serviço para fazer login em clusters para fazer login em seu cluster.

  2. Execute uma simulação de Helm para ver os recursos que serão criados pelo gráfico Helm.

    Se estiver usando o iamMode = TrustedProfile, o comando completo será:

    helm install <install-name> --dry-run oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespace
    

    Se estiver usando o iamMode = IAMAPIKey, o comando completo será:

    helm install <install-name> --dry-run oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespace --set secret.iamAPIKey=<APIKey-value> --hide-secret
    

    em que:

    • <install-name> é o nome da instalação do Helm (logs-agent)
    • <chart-version> é a versão do gráfico do leme. A versão do gráfico Helm deve corresponder à versão da imagem do agente. Para obter mais informações, consulte Helm chart versions.
    • <PATH> é o caminho do diretório em que o arquivo logs-values.yaml está localizado.
    • <APIKey-value> a chave API do IAM está associada à configuração ServiceID na Etapa 1
    • Adicione --hide-secret para ocultar a chave de API dos dados de saída após a execução do comando.

    Se quiser inspecionar o conteúdo da carta do leme localmente, você pode fazer o download da carta do leme para o seu computador usando o comando: helm pull oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version>. O arquivo tgz baixado contém o conteúdo do gráfico.

    Por exemplo, você pode executar o seguinte comando no diretório em que o arquivo logs-values.yaml está disponível:

    helm install logs-agent --dry-run oci://icr.io/ibm-observe/logs-agent-helm --version 1.6.0 --values ./logs-values.yaml -n ibm-observe --create-namespace --set secret.iamAPIKey=<secret> --hide-secret
    
  3. Depois que os recursos a serem criados forem verificados, execute a instalação do Helm sem a opção --dry-run

    Se estiver usando o iamMode = TrustedProfile, o comando completo será:

    helm install <install-name>  oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespace
    

    Se estiver usando o iamMode = IAMAPIKey, o comando completo será:

    helm install <install-name> oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespace --set secret.iamAPIKey=<APIKey-value>
    

    em que:

    • <install-name> é o nome da instalação do Helm (logs-agent)
    • <chart-version> é a versão do gráfico do leme. A versão do gráfico Helm deve corresponder à versão da imagem do agente. Para obter mais informações, consulte Helm chart versions.
    • <PATH> é o caminho do diretório em que o arquivo logs-values.yaml está localizado.
    • <APIKey-value> a chave API do IAM está associada à configuração ServiceID na Etapa 1

Etapa 4. Verifique se o agente foi implantado com sucesso

Quando o agente for implantado, verifique se os seguintes recursos foram criados:

  • O espaço de nomes ibm-observe.

    Para listar os namespaces no cluster, execute o seguinte comando:

    oc get namespace
    

    Você também pode executar o seguinte comando para pesquisar o namespace ibm-observe:

    oc get namespace | grep ibm-observe
    
  • Um mapa de configuração logs-agent no namespace ibm-observe.

    Execute o seguinte comando para visualizar os detalhes de configuração do agente.

    oc get configmap logs-agent -n ibm-observe
    

    Você também pode usar o seguinte comando:

    oc describe configmaps logs-agent -n ibm-observe
    
  • Um daemonset logs-agent no namespace ibm-observe.

    Execute o seguinte comando para visualizar o conjunto de daemons:

    oc get ds -n ibm-observe
    
  • Recupere a lista de pods de agente usando o seguinte comando:

    oc get pods -n ibm-observe -o wide
    
    NAME                  READY   STATUS    RESTARTS   AGE    IP              NODE           NOMINATED NODE   READINESS GATES
    logs-agent-4lwvt      1/1     Running   0          2d5h   172.17.61.181   192.168.16.4   <none>           <none>
    logs-agent-g7z87      1/1     Running   0          2d5h   172.17.0.48     192.168.32.4   <none>           <none>
    logs-agent-nw56s      1/1     Running   0          2d5h   172.17.32.232   192.168.0.10   <none>           <none>
    

    A coluna READY mostra 1/1 para todos os pods, com um STATUS de Running. Verifique se um pod de agente está pronto para cada nó em seu cluster.

    Para verificar quantos workers estão disponíveis em seu cluster, você pode executar o seguinte comando:

    oc get nodes
    
    NAME           STATUS   ROLES           AGE   VERSION
    192.168.0.10   Ready    master,worker   8d    v1.20.0+558d959
    192.168.32.4   Ready    master,worker   8d    v1.20.0+558d959
    192.168.16.4   Ready    master,worker   8d    v1.20.0+558d959
    

    O número de itens em cada uma dessas duas listas precisa ser o mesmo, e você pode fazer a correspondência entre os endereços IP nos nomes dos nós e os valores na coluna NODE da listagem de pods.

    Se os nós não forem nomeados pelo IP, você poderá acrescentar a opção -o wide e, em vez disso, comparar os valores na coluna INTERNAL-IP.

    Para visualizar os registros de um pod, execute oc logs <POD_NAME>> -n ibm-observe

Etapa 5. Verifique se os logs estão sendo entregues ao seu destino de destino

Conclua as etapas a seguir:

  1. Acesse a interface do usuário da Web para sua instância IBM Cloud Logs..

  2. Quando o agente estiver configurado corretamente, você poderá ver os registros por meio da visualização padrão do painel. O Agente de criação de log marca os registros de log com um objeto kubernetes que inclui o nome do cluster.

    kubernetes.cluster_name:<CLUSTER_NAME>
    

    Você pode executar a consulta kubernetes.cluster_name:<YOUR_CLUSTER_NAME> na sua instância IBM Cloud Logs para pesquisar os logs gerados pelo seu cluster.