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â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:
TrustedProfileouIAMAPIKey - 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ávelenv.trustedProfileIDtambé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.iamAPIKeyfor 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:
additionalLogSourcePathsadiciona locais ao conjunto padrão de registros que serão processados.excludeLogSourcePathsignora os registros nos locais especificados.selectedLogSourcePathssubstitui o caminho padrão/var/log/containers/*.loge ignora as configuraçõesadditionalLogSourcePaths. 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
Productionpara usar o endpoint padrãoiam.cloud.ibm.com - Defina
PrivateProductionpara usar o ponto de extremidadeprivate.iam.cloud.ibm.com - Defina
Custompara 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"
}
}