Modelo para implantar o Agente de criação de log usando um gráfico Helm

Você pode usar um gráfico Helm para implementar o Agente de criação de log para coletar e rotear logs de infraestrutura e de aplicativos de um cluster Red Hat OpenShift on IBM Cloud (OpenShift) ou de um cluster Kubernetes para uma instância IBM Cloud Logs.

Modelo para implantar o Agente de criação de log usando um gráfico Helm em um cluster Openshift

metadata:
  name: "logs-agent"
image:
  version: "1.3.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 if iamMode is set to "TrustedProfile"
  trustedProfileID: ""

  # Configure this parameter to control the IAM endpoint used by the agent to exchange the tokens.
  # If omitted, the default value is "Production".
  # Valid values are :
  # "Production" to use the iam.cloud.ibm.com default endpoint
  # "PrivateProduction" to use the private.iam.cloud.ibm.com endpoint
  # "Custom" to use a custom provided IAM endpoint
  iamEnvironment: "Production"
  # iamHost - custom IAM endpoint (for example: private.eu-de.iam.cloud.ibm.com) - required if iamEnvironment is set to "Custom"
  iamHost: ""

scc:
  # true enables creation of Security Context Constraints in Openshift clusters
  create: true

defaultMetadata:
  # Configure to override the default subsystemName and applicationName that are used in the environment.
  subsystemName: ""  # The default value is set to the namespace that generated the log
  applicationName: ""  # The default value is set to the container name that generated the log

resources:
  # Configure this section to change the resources that are assigned to the agent container.
  limits:
    cpu: 500m
    ephemeral_storage: 10Gi
    memory: 3Gi
  requests:
    cpu: 100m
    ephemeral_storage: 2Gi
    memory: 1Gi

# Configure these parameters to include, exclude or restrict the set of logs that are processed by the agent
# By default, the agent will collect the logs from `/var/log/containers/*.log`.
# Each field is set as comma separated list, for example “/var/log/abc/*.log,/var/log/xyz/*.log”
additionalLogSourcePaths: "" # adds locations to the default set of logs that will be processed.
excludeLogSourcePaths: "" # ignores logs in the specified locations.
selectedLogSourcePaths: ""  # overrides the default path `/var/log/containers/*.log` and ignores the `additionalLogSourcePaths` configurations

# Configure this parameter to change the setting for the Kubernetes filter to include the annotations from Kubernetes with the log records.
# The default value for this setting is `false`.
includeAnnotations: true

# Configure this parameter to control the number of times the agent will retry sending data if an error occurs that is considered to be retryable.
# The default is `False`.
# For more information, see the [Fluentbit documentation about retries](https://docs.fluentbit.io/manual/administration/scheduling-and-retries) to understand the implications of setting this value.
retryLimit: False

# Configure additional tags as key/value pair tags that can be added as metadata to every log line.
additionalMetadata:
#  region: ca-tor
#  env: production

# Configure the level of logging
# Default value is info
# Valid values are: debug, info, or error
loggingLevel: info

Modelo para implantar o Agente de criação de log usando um gráfico Helm em um cluster Kubernetes

metadata:
  name: "logs-agent"
image:
  version: "1.3.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: "" # required if iamMode is set to TrustedProfile

  # Configure this parameter to control the IAM endpoint used by the agent to exchange the tokens.
  # If omitted, the default value is "Production".
  # Valid values are :
  # "Production" to use the iam.cloud.ibm.com default endpoint
  # "PrivateProduction" to use the private.iam.cloud.ibm.com endpoint
  # "Custom" to use a custom provided IAM endpoint
  iamEnvironment: "Production"
  # iamHost - custom IAM endpoint (for example: private.eu-de.iam.cloud.ibm.com) - required if iamEnvironment is set to "Custom"
  iamHost: ""

scc:
  # true enables creation of Security Context Constraints in Openshift clusters
  # set to false for Kubernetes clusters
  create: false

defaultMetadata:
  # Configure to override the default subsystemName and applicationName that are used in the environment.
  subsystemName: ""  # The default value is set to the namespace that generated the log
  applicationName: ""  # The default value is set to the container name that generated the log

resources:
  # Configure this section to change the resources that are assigned to the agent container.
  limits:
    cpu: 500m
    ephemeral_storage: 10Gi
    memory: 3Gi
  requests:
    cpu: 100m
    ephemeral_storage: 2Gi
    memory: 1Gi

# Configure these parameters to include, exclude or restrict the set of logs that are processed by the agent
# By default, the agent will collect the logs from `/var/log/containers/*.log`.
# Each field is set as comma separated list, for example “/var/log/abc/*.log,/var/log/xyz/*.log”
additionalLogSourcePaths: "" # adds locations to the default set of logs that will be processed.
excludeLogSourcePaths: "" # ignores logs in the specified locations.
selectedLogSourcePaths: ""  # overrides the default path `/var/log/containers/*.log` and ignores the `additionalLogSourcePaths` configurations

# Configure this parameter to change the setting for the Kubernetes filter to include the annotations from Kubernetes with the log records.
# The default value for this setting is `false`.
includeAnnotations: true

# Configure this parameter to control the number of times the agent will retry sending data if an error occurs that is considered to be retryable.
# The default is `False`.
# For more information, see the [Fluentbit documentation about retries](https://docs.fluentbit.io/manual/administration/scheduling-and-retries) to understand the implications of setting this value.
retryLimit: False

# Configure additional tags as key/value pair tags that can be added as metadata to every log line.
additionalMetadata:
#  region: ca-tor
#  env: production

# Configure the level of logging
# Default value is info
# Valid values are: debug, info, or error
loggingLevel: info

Helm Opções de configuração do gráfico

A tabela a seguir contém uma lista dos parâmetros que você pode configurar no arquivo logs-values.yaml para ajustar as configurações de Agente de criação de log:

Parâmetros do gráficoHelm
Parâmetro Descrição Status Valor Padrão
metadata.name O nome do agente que é usado para todos os recursos do Kubernetes Obrigatório logs-agent
image.version A versão da imagem do contêiner do agente (ou seja, 1.3.0) Obrigatório Nenhum valor-padrão
env.ingestionHost O IBM Cloud Logs host para o qual enviar os registros Obrigatório Nenhum valor-padrão
env.ingestionPort A IBM Cloud Logs porta para a qual enviar os registros Obrigatório Nenhum valor-padrão
env.iamMode Indique o mecanismo de autenticação do IAM usado. Os valores válidos são: TrustedProfile ou IAMAPIKey Obrigatório TrustedProfile
env.trustedProfileID A ID do perfil confiável. Esse parâmetro é necessário quando iamMode=TrustedProfile Nenhum valor-padrão
env.iamEnvironment Controla o ponto de extremidade do IAM usado pelo agente para trocar os tokens.
Para obter mais informações, consulte iamEnvironment.
Obrigatório Production
env.iamHost Nome do host usado para o ambiente IAM personalizado. Necessário se iamEnviroment estiver definido como Custom. Nenhum valor-padrão
secret.iamAPIKey A ID da APIKey. Você só deve fornecer esse valor por meio da CLI. Para mais informações, consulte env.iamMode. Esse parâmetro é necessário quando iamMode=IAMAPIKey Nenhum valor-padrão
clusterName O nome do cluster do kubernetes Opcional Nenhum valor-padrão
scc.create Indica quando criar as restrições de contexto seguro no Openshift Necessário apenas para implantações de cluster do Openshift. false
defaultMetadata.subsystemName Cadeia de caracteres estática para substituir o subsystemName em IBM Cloud Logs Opcional O valor padrão é definido como o namespace que gerou o registro
defaultMetadata.applicationName Cadeia de caracteres estática para substituir o applicationName em IBM Cloud Logs Opcional O valor padrão é definido como o nome do contêiner que gerou o registro
resources Substituir os recursos do kubernetes alocados para o agente de registros Opcional Consulte Resources para ver os valores padrão
additionalLogSourcePaths O caminho dos logs adicionais além do padrão. /var/log/containers/*.log
Para obter mais informações, consulte Configurações de caminhos de origem de logs.
Opcional Nenhum valor-padrão
excludeLogSourcePaths O caminho de logs adicionais que não devem ser coletados pelo agente.
Para obter mais informações, consulte Configurações de caminhos de origem de registro.
Opcional Nenhum valor-padrão
selectedLogSourcePaths O caminho dos registros que são coletados pelo agente, excluindo o caminho padrão e quaisquer arquivos configurados em additionalLogSourcePaths.
Para obter mais informações, consulte Configurações de caminhos de origem de registro.
Opcional Nenhum valor-padrão
includeAnnotations Instrua o plug-in do kubernetes a incluir as anotações do contêiner com as mensagens de registro
. Para obter mais informações, consulte [includeAnnotations#agent-helm-template-clusters-chart-options-include-annotations]).
Obrigatório false
retryLimit Limite o número de tentativas que serão tentadas
Para obter mais informações, consulte retryLimit
Obrigatório Não
loggingLevel O tipo de registros que devem ser relatados pelo próprio agente. Os valores válidos são: debug, info ou error. Obrigatório info
additionalMetadata Uma lista de tags de pares de chave/valor que podem ser adicionadas como metadados a cada linha de registro.
Para obter mais informações, consulte additionalMetadata.
Opcional Nenhum valor-padrão

env.iamMode

Configure esse parâmetro para escolher o método de autenticação a ser usado pelo agente ao enviar registros para uma instância de IBM Cloud Logs.

  • Você pode escolher uma APIKey do IAM ou uma configuração de perfil confiável.
  • Os valores válidos são: TrustedProfile ou IAMAPIKey
  • O valor padrão é uma configuração de perfil confiável.

A entrada no arquivo logs-values.yaml tem a seguinte aparência:

env:
  iamMode: IAMAPIKey

Considere as seguintes informações ao definir esse parâmetro:

  • Se env.iamMode: "TrustedProfile" for definido, a variável env.trustedProfileID também deverá ser fornecida.

  • Se env.iamMode: "IAMAPIKey" for definido, a configuração espera que seja definido um segredo que contenha uma Apikey do IAM com permissões.

    Se a variável secret.iamAPIKey for fornecida no comando helm (por exemplo, --set secret.iamAPIKey=<your iamAPIKey>), o gráfico helm criará o segredo Kubernetes.

    Como alternativa, você pode criar o segredo antecipadamente com o comando: (Certifique-se de estar conectado ao seu cluster)

    kubectl create secret generic <helm install-name> -n ibm-observe --from-literal=IAM_API_KEY=<apikey>
    

defaultMetadata

Essa seção permite que o usuário substitua o subsystemName e o applicationName padrão que são usados no ambiente. Por padrão, os valores não são definidos e o plug-in de saída definirá dinamicamente os valores para:

  • subsystemName: o namespace Kubernetes que gerou o registro
  • applicationName: o nome do contêiner que gerou o registro

A entrada no arquivo logs-values.yaml tem a seguinte aparência:

defaultMetadata:
  subsystemName: ""
  applicationName: ""

recursos

Esta seção permite que o usuário altere os recursos que são atribuídos ao contêiner Agente de criação de log.

A entrada no arquivo logs-values.yaml tem a seguinte aparência e define os seguintes valores padrão:

resources:
  limits:
    cpu: 500m
    ephemeral_storage: 10Gi
    memory: 3Gi
  requests:
    cpu: 100m
    ephemeral_storage: 2Gi
    memory: 1Gi

Se você precisar atualizar qualquer um dos valores, toda a configuração deverá ser fornecida, mesmo que você não atualize todos os valores.

Configurações de caminhos de origem de registro

Por padrão, o agente coletará os registros de /var/log/containers/*.log.

As seguintes variáveis adicionais podem ser fornecidas para incluir, excluir ou restringir o conjunto de registros a serem processados:

  • additionalLogSourcePaths adiciona locais ao conjunto padrão de registros que serão processados.
  • excludeLogSourcePaths ignora os registros nos locais especificados.
  • selectedLogSourcePaths substitui o caminho padrão /var/log/containers/*.log e ignora as configurações additionalLogSourcePaths. Somente os arquivos definidos por meio desse parâmetro são coletados pelo agente.

Você pode definir vários caminhos usando uma lista separada por vírgulas, por exemplo, "/var/log/abc/.log,/var/log/xyz/.log".

A entrada no arquivo logs-values.yaml tem a seguinte aparência:

# comma separated list, for example “/var/log/abc/*.log,/var/log/xyz/*.log”
additionalLogSourcePaths: ""
excludeLogSourcePaths: ""
selectedLogSourcePaths: ""

env.iamEnvironment

Essa configuração controla o ponto de extremidade do IAM usado pelo agente para trocar os tokens.

O valor padrão é Production.

Os valores válidos são :

  • Defina Production para usar o endpoint padrão iam.cloud.ibm.com
  • Defina PrivateProduction para usar o ponto de extremidade private.iam.cloud.ibm.com
  • Defina Custom para usar um endpoint IAM personalizado (por exemplo, private.eu-de.iam.cloud.ibm.com )

A entrada no arquivo logs-values.yaml tem a seguinte aparência:

env:
  iamEnvironment: "Production"

Para a configuração Custom iamEnvironment, o iamHost também deve ser fornecido.

env:
  iamEnvironment: "Custom"
  iamHost: "private.eu-de.iam.cloud.ibm.com"

includeAnnotations

Essa configuração altera a definição do filtro Kubernetes para incluir as anotações de Kubernetes com os registros de log.

O valor padrão para essa configuração é false.

A entrada no arquivo logs-values.yaml tem a seguinte aparência:

includeAnnotations: true

retryLimit

Essa configuração coloca um limite no número de vezes que o agente tentará enviar dados novamente se ocorrer um erro que seja considerado passível de nova tentativa.

O padrão é False.

Para obter mais informações, consulte a documentação do Fluentbit sobre tentativas para entender as implicações da definição desse valor.

Em algumas situações, essa configuração pode fazer com que os dados de registro sejam descartados pelo agente devido à incapacidade de envio.

A entrada no arquivo logs-values.yaml tem a seguinte aparência:

retryLimit: 8

additionalMetadata

Essa é uma lista de pares de chave/valor que serão adicionados ao objeto meta para permitir tags adicionais.

A entrada no arquivo logs-values.yaml tem a seguinte aparência:

additionalMetadata:
  region: ca-tor
  env: production

O exemplo acima resultará nos seguintes campos adicionais adicionados a cada linha de registro em IBM Cloud Logs:

{
  "meta": {
    "region": "ca-tor",
    "env": "production"
  }
}