Implementação do Agente de criação de log para clusters Kubernetes usando um gráfico Helm
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 Kubernetes 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 Kubernetes 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 Kubernetes:
Antes de Iniciar
-
Certifique-se de que você tenha acesso ao cluster Kubernetes com permissões para criar namespaces e implantar o agente.
-
Instale as CLIs a seguir:
-
A IBM Cloud CLI para fazer login no IBM Cloud e gerenciar IBM Cloud serviços, como a criação de uma chave de API.
-
A CLI do Kubernetes para gerenciar o cluster usando os comandos
kubectl. Saiba mais.
-
-
Leia sobre o Agente de criação de log.
-
Verifique as versões do agente que estão disponíveis. Para obter mais informações, consulte Verificando as 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, haverá 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 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 autenticar com o 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:
-
Crie um arquivo chamado
logs-values.yamlcom 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 -
Atualize os campos no arquivo yaml com valores específicos para seu ambiente.
Parâmetros necessários do gráficoHelm Nome do campo Descrição image.versionA versão do agente a ser implantada , consulte a Etapa 1 clusterNameO nome do cluster - isso introduzirá a tag kubernetes.cluster_nameem todas as linhas de registroenv.ingestionHostO ponto de extremidade de entrada público ou privado da instância IBM Cloud Logs para receber os registros env.ingestionPortA 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) =3443env.iamModeTrustedProfileouIAMAPIKeycom base no método de autenticação escolhido na Etapa 1env.trustedProfileIDSe iamModeforTrustedProfile, 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.iamEnvironmentDetermina o ponto de extremidade de autenticação IAM correto. Os valores válidos são Production,PrivateProduction, ouCustom. Se omitido, o valor padrão éProduction.env.iamHostSe iamEnvironmentforCustom, forneça o host do IAM (por exemplo:private.eu-de.iam.cloud.ibm.com); caso contrário, isso não será necessário.
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:
-
Efetue login no cluster. Para obter mais informações, consulte Acessar seu cluster.
-
Execute uma Helm execução seca para ver os recursos que serão criados pelo gráfico Helm.
Se você estiver usando
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-namespaceSe você estiver usando
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-secretem que:
<install-name>é o nome da instalação 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 versões de gráficos.<PATH>é o caminho do diretório em que o arquivologs-values.yamlestá localizado.<APIKey-value>é a apikey do IAM associada ao ServiceID configurado na Etapa 1- Adicione
--hide-secretpara ocultar a chave da API dos dados de saída após a execução do comando.
Se quiser inspecionar o conteúdo do gráfico do leme localmente, você pode fazer o download do gráfico 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.yamlestá 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 -
Depois que os recursos a serem criados forem verificados, execute a instalação do Helm sem a opção
--dry-runSe você estiver usando
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-namespaceSe você estiver usando
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 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 versões de gráficos.<PATH>é o caminho do diretório em que o arquivologs-values.yamlestá localizado.<APIKey-value>é a apikey do IAM associada ao ServiceID configurado 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.Execute o seguinte comando para listar os namespaces no cluster e verifique se o
logger-agentaparece com o status ativo.kubectl get namespace -
Um mapa de configuração
logs-agentno namespaceibm-observe.Execute o seguinte comando para visualizar os detalhes de configuração do agente.
kubectl get configmap logs-agent -n ibm-observeVocê também pode usar:
kubectl describe configmaps logs-agent -n ibm-observe -
Um conjunto de daemons
logs-agentno namespaceibm-observe.Execute o seguinte comando para visualizar o conjunto de daemons.
kubectl get ds -n ibm-observe -
Verifique se os agentes foram iniciados:
kubectl -n ibm-observe get ds logs-agent -
Recupere a lista de pods de agente usando o seguinte comando:
kubectl get pods -n ibm-observe -o wideNAME 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
READYmostra1/1para todos os pods, com umSTATUSdeRunning. 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:
kubectl get nodesNAME 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+558d959O número de itens em cada uma dessas duas listas precisa ser o mesmo, e você pode combinar os endereços IP nos nomes dos nós com os valores na coluna
NODEda listagem de pods.Se os nós não forem nomeados pelo IP, você poderá acrescentar a opção
-o widee, em vez disso, comparar os valores na colunaINTERNAL-IP.Para visualizar os registros de um pod, execute
kubectl logs <POD_NAME>> -n ibm-observePara verificar o gráfico do leme implantado, execute
helm list -n ibm-observe
Etapa 5. Verificar se os registros estão sendo entregues ao seu destino de destino
Conclua as etapas a seguir:
-
Acesse a interface do usuário da Web para sua instância IBM Cloud Logs..
-
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.