Enviar IBM Cloud Kubernetes Service dados de registro para IBM Cloud Logs
Neste tutorial, você configurou IBM Cloud® Kubernetes Service para enviar os registros diretamente para IBM Cloud Logs. Esses logs o ajudam a solucionar problemas e a melhorar a integridade e o desempenho dos clusters e aplicativos do Kubernetes.
Objetivos
Neste tutorial, você aprenderá:
-
Implante o Agente de criação de log em um cluster IBM Cloud Kubernetes Service existente.
-
Verifique se os dados de registro estão fluindo para a sua IBM Cloud Logs instância.
Antes de Iniciar
Antes de começar, verifique se você tem os pré-requisitos.
-
Crie um IBM Cloud® Kubernetes Service e provisione uma instância de IBM Cloud Logs.
-
Instale a ferramenta de linha de comando Kubernetes, kubectl.
-
Instale o processador JSON CLI (
jq). -
Instale o processador YAML CLI (
yq).
Uma alternativa para instalar a IBM Cloud CLI, kubectl, jq e yq seria usar o IBM Cloud Shell
Conecte-se ao seu cluster
Conecte-se ao seu cluster IBM Cloud Kubernetes Service. A conexão com o cluster permite que kubectl comandos sejam executados no cluster.
-
Efetue login em sua conta do IBM Cloud. Inclua a opção
--ssose estiver usando uma ID federada.ibmcloud login -
Instale o IBM Cloud Kubernetes Service plug-in CLI
ibmcloud plugin install ks -
Liste os clusters disponíveis e anote o cluster a ser conectado.
ibmcloud ks clusters -
Conecte-se ao seu cluster. Substitua
<cluster_name>pelo nome do seu cluster.ibmcloud ks cluster config --cluster <cluster_name> -
Verifique se você está conectado ao cluster e se pode executar comandos
kubectllistando todos os pods que estão em execução em todos os namespaces.kubectl get pods --all-namespaces
Criando sua chave de API
Antes de provisionar o Agente de criação de log como um daemonset, você precisa de uma chave de API do IAM e de um ponto de extremidade de ingestão de registro. A CLI IBM Cloud é usada para obter essas informações.
Primeiro, crie um ID de serviço e obtenha uma chave de API.
-
Crie uma identificação de serviço executando o seguinte comando.
ibmcloud iam service-id-create kubernetes-logs-agent --description "Service ID for sending logs from IKS" -
Conceda a função
Senderpara IBM Cloud Logs à ID de serviço criada executando o seguinte comando.ibmcloud iam service-policy-create kubernetes-logs-agent --service-name logs --roles Sender -
Crie uma chave de API do IAM executando o seguinte comando. Você pode personalizar o nome da chave (
kubernetes-logs-agent-apikey) e a descrição (--d), se necessário.ibmcloud iam service-api-key-create kubernetes-logs-agent-apikey kubernetes-logs-agent --description "API key for sending logs to the IBM Cloud Logs service"A chave da API é retornada na saída após
API Key:ID ApiKey-xxxxxxxx-b815-46c7-bc9f-516115bc31c6 Name kubernetes-logs-agent-apikey Description API key for sending logs to the IBM Cloud Logs service Created At 2024-09-18T17:17+0000 API Key <apikey is displayed here> Locked false
Nota:
-
Toda vez que você cria uma chave de API, um novo segredo de IAM é gerado.
-
Certifique-se de armazenar com segurança a chave da API, pois ela contém informações confidenciais.
Determinação do ponto de extremidade de registro
A segunda informação necessária é o ponto de extremidade de ingestão da sua instância IBM Cloud Logs. Use esse comando para recuperar o URL:
ibmcloud resource service-instances --service-name logs --long --output JSON | jq '[.[] | {name: .name, id: .id, region: .region_id, ingestion_endpoint: .extensions.external_ingress}]'
O ponto de extremidade é semelhante a:
ingestion_endpoint: 3a622101-7521-4002-bf91-8c26e17eedcf.ingress.eu-de.logs.cloud.ibm.com
Criação do arquivo YAML do agente
Nesta etapa, crie o arquivo YAML que é usado para configurar o conjunto de daemons do agente.
-
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.4.0" # required clusterName: "" # 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.
Implementação do conjunto de daemons
Usando a chave da API, o URL do endpoint e o arquivo YAML, implante o agente em seu cluster.
-
Faça login no registro Helm executando o comando
helm registry login:helm registry login -u iambearer -p $(ibmcloud iam oauth-tokens --output json | jq -r .iam_token | cut -d " " -f2) icr.ioWindows Os usuários do Windows PowerShell devem usar esse comando:
helm registry login -u iambearer -p ((ibmcloud iam oauth-tokens --output json | ConvertFrom-Json).iam_token -replace 'Bearer ', '') icr.ioPara obter mais informações, consulte Usando gráficos Helm no Container Registry: Extraindo gráficos de outro registro ou repositório Helm.
-
Implantar o agente.
Se você estiver usando uma chave de API de ID de serviço (
iamMode=IAMAPIKey), execute o seguinte comando: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 ' versões do gráfico Helm.<PATH>é o caminho do diretório em que o arquivo 'logs-values.yamlestá localizado.<APIKey-value>é a apikey do IAM associada ao ' ServiceID ' configuração na Etapa 1
Você também pode implementar o agente usando um perfil confiável. Para obter mais informações, consulte Implantação do agente de registro para clusters Kubernetes usando um gráfico Helm.
Verifique se os registros estão sendo enviados
Para ajudar a garantir que seus IBM Cloud® Kubernetes Service registros estejam fluindo com êxito para IBM Cloud Logs, execute as seguintes etapas:
-
Acesse a interface do usuário IBM Cloud Logs e clique no ícone
Livetail.
-
Clique em
Startpara ver os registros à medida que eles chegam em tempo real.
Deve ser visto um fluxo contínuo de dados de registro do aplicativo kube-system. Esses logs são provenientes do seu cluster.