Modèle pour déployer le Agent de journalisation en utilisant un Helm graphique

Vous pouvez utiliser une carte Helm pour déployer Agent de journalisation afin de collecter et d'acheminer les journaux d'infrastructure et d'application d'un cluster Red Hat OpenShift on IBM Cloud (OpenShift) ou d'un cluster Kubernetes vers une instance IBM Cloud Logs.

Modèle de déploiement du Agent de journalisation à l'aide d'un graphique Helm sur un 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

Modèle de déploiement du Agent de journalisation utilisant un Helm chart sur un Kubernetes cluster

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 Options de configuration de la carte

Le tableau suivant contient une liste des paramètres que vous pouvez configurer dans le fichier logs-values.yaml pour ajuster les configurations Agent de journalisation:

Paramètres de la carte deHelm
Paramètre Description Statut Valeur par défaut
metadata.name Le nom de l'agent utilisé pour toutes les ressources Kubernetes Obligatoire logs-agent
image.version La version de l'image du conteneur de l'agent (par exemple, 1.3.0) Obligatoire Aucune valeur par défaut
env.ingestionHost L'hôte IBM Cloud Logs auquel envoyer les logs Obligatoire Aucune valeur par défaut
env.ingestionPort Le port IBM Cloud Logs vers lequel envoyer les journaux Obligatoire Aucune valeur par défaut
env.iamMode Indiquer le mécanisme d'authentification IAM utilisé. Les valeurs valides sont : TrustedProfile ou IAMAPIKey Obligatoire TrustedProfile
env.trustedProfileID L'ID du profil de confiance. Ce paramètre est requis lorsque iamMode=TrustedProfile Aucune valeur par défaut
env.iamEnvironment Contrôle le point de terminaison IAM utilisé par l'agent pour échanger les jetons.
Pour plus d'informations, voir iamEnvironment.
Obligatoire Production
env.iamHost Nom d'hôte utilisé pour l'environnement IAM personnalisé. Requis si iamEnviroment est défini sur Custom. Aucune valeur par défaut
secret.iamAPIKey L'ID de l'APIKey. Vous ne devez fournir cette valeur que par l'intermédiaire de l'interface de programmation. Pour plus d'informations, voir env.iamMode. Ce paramètre est requis lorsque iamMode=IAMAPIKey Aucune valeur par défaut
clusterName Le nom du cluster kubernetes Facultatif Aucune valeur par défaut
scc.create Indique quand créer les contraintes de contexte sécurisées dans Openshift Requis pour les déploiements de clusters Openshift uniquement. false
defaultMetadata.subsystemName Chaîne statique pour remplacer le subsystemName dans IBM Cloud Logs Facultatif La valeur par défaut est l'espace de noms qui a généré le journal
defaultMetadata.applicationName Chaîne statique pour remplacer le applicationName dans IBM Cloud Logs Facultatif La valeur par défaut est le nom du conteneur qui a généré le journal
resources Remplacer les ressources kubernetes allouées à l'agent logs Facultatif Voir Ressources pour connaître les valeurs par défaut
additionalLogSourcePaths Le chemin d'accès aux journaux supplémentaires au-delà de la valeur par défaut. /var/log/containers/*.log
Pour plus d'informations, voir Configurations des chemins d'accès aux sources de logs.
Facultatif Aucune valeur par défaut
excludeLogSourcePaths Chemin d'accès aux journaux supplémentaires qui ne doivent pas être collectés par l'agent.
Pour plus d'informations, voir Configurations des chemins d'accès aux sources de logs.
Facultatif Aucune valeur par défaut
selectedLogSourcePaths Le chemin des journaux collectés par l'agent, à l'exclusion du chemin par défaut et de tout fichier configuré dans additionalLogSourcePaths.
Pour plus d'informations, voir Configurations des chemins d'accès aux sources de logs.
Facultatif Aucune valeur par défaut
includeAnnotations Demander au plugin kubernetes d'inclure les annotations du conteneur dans les messages de journal
Pour plus d'informations, voir [includeAnnotations#agent-helm-template-clusters-chart-options-include-annotations]).
Obligatoire false
retryLimit Limite le nombre de tentatives qui seront effectuées
Pour plus d'informations, voir retryLimit
Obligatoire Faux
loggingLevel Le type de journaux qui doivent être signalés par l'agent lui-même. Les valeurs valides sont : debug, info, ou error. Obligatoire info
additionalMetadata Une liste de balises clés/valeurs qui peuvent être ajoutées en tant que métadonnées à chaque ligne de journal.
Pour plus d'informations, voir additionalMetadata.
Facultatif Aucune valeur par défaut

env.iamMode

Ce paramètre permet de choisir la méthode d'authentification à utiliser par l'agent lors de l'envoi de journaux à une instance IBM Cloud Logs.

  • Vous pouvez choisir une configuration IAM APIKey ou un profil de confiance.
  • Les valeurs valides sont : TrustedProfile ou IAMAPIKey
  • La valeur par défaut est une configuration de profil de confiance.

L'entrée dans le fichier logs-values.yaml se présente comme suit :

env:
  iamMode: IAMAPIKey

Tenez compte des informations suivantes lors du réglage de ce paramètre :

  • Si env.iamMode: "TrustedProfile" est défini, la variable env.trustedProfileID doit également être fournie.

  • Si env.iamMode: "IAMAPIKey" est défini, la configuration s'attend à ce qu'un secret soit défini et qu'il contienne un Apikey IAM avec des autorisations.

    Si la variable secret.iamAPIKey est fournie sur la commande helm (par exemple --set secret.iamAPIKey=<your iamAPIKey>), alors le tableau helm créera le secret Kubernetes.

    Vous pouvez également créer le secret à l'avance à l'aide de la commande : (Assurez-vous d'être connecté à votre cluster)

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

defaultMetadata

Cette section permet à l'utilisateur de remplacer les paramètres par défaut subsystemName et applicationName utilisés dans l'environnement. Par défaut, les valeurs ne sont pas définies et le plugin de sortie définira dynamiquement les valeurs :

  • subsystemName: l'espace de noms Kubernetes qui a généré le journal
  • applicationName: le nom du conteneur qui a généré le journal

L'entrée dans le fichier logs-values.yaml se présente comme suit :

defaultMetadata:
  subsystemName: ""
  applicationName: ""

ressources

Cette section permet à l'utilisateur de modifier les ressources affectées au conteneur Agent de journalisation.

L'entrée dans le fichier logs-values.yaml se présente comme suit et définit les valeurs par défaut suivantes :

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

Si vous devez mettre à jour l'une des valeurs, la configuration entière doit être fournie, même si vous ne mettez pas à jour toutes les valeurs.

Configurations des chemins d'accès à la source du journal

Par défaut, l'agent collecte les journaux à partir de /var/log/containers/*.log.

Les variables supplémentaires suivantes peuvent être fournies pour inclure, exclure ou restreindre l'ensemble des enregistrements à traiter :

  • additionalLogSourcePaths ajoute des emplacements à l'ensemble par défaut des enregistrements qui seront traités.
  • excludeLogSourcePaths ignore les journaux dans les emplacements spécifiés.
  • selectedLogSourcePaths remplace le chemin par défaut /var/log/containers/*.log et ignore les configurations additionalLogSourcePaths. Seuls les fichiers définis par ce paramètre sont collectés par l'agent.

Vous pouvez définir plusieurs chemins en utilisant une liste séparée par des virgules, par exemple "/var/log/abc/.log,/var/log/xyz/.log".

L'entrée dans le fichier logs-values.yaml se présente comme suit :

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

env.iamEnvironment

Cette configuration contrôle le point de terminaison IAM utilisé par l'agent pour échanger les jetons.

La valeur par défaut est Production.

Les valeurs valides sont :

  • Définir Production pour utiliser le point de terminaison par défaut iam.cloud.ibm.com
  • Définir PrivateProduction pour utiliser le point de terminaison private.iam.cloud.ibm.com
  • Configurer Custom pour utiliser un point de terminaison IAM personnalisé (par exemple private.eu-de.iam.cloud.ibm.com )

L'entrée dans le fichier logs-values.yaml se présente comme suit :

env:
  iamEnvironment: "Production"

Pour un paramétrage d' Custom iamEnvironment, l' iamHost doit également être fournie.

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

includeAnnotations

Cette configuration modifie le paramètre du filtre Kubernetes afin d'inclure les annotations de Kubernetes dans les enregistrements du journal.

La valeur par défaut de ce paramètre est false.

L'entrée dans le fichier logs-values.yaml se présente comme suit :

includeAnnotations: true

retryLimit

Cette configuration limite le nombre de tentatives d'envoi de données par l'agent en cas d'erreur considérée comme pouvant être tentée à nouveau.

La valeur par défaut est False.

Pour plus d'informations, consultez la documentation de Fluentbit sur les tentatives pour comprendre les implications de la définition de cette valeur.

Dans certaines situations, ce paramètre peut entraîner l'abandon de données d'enregistrement par l'agent en raison de l'impossibilité de les envoyer.

L'entrée dans le fichier logs-values.yaml se présente comme suit :

retryLimit: 8

additionalMetadata

Il s'agit d'une liste de paires clé/valeur qui seront ajoutées sous l'objet meta pour permettre l'ajout de balises supplémentaires.

L'entrée dans le fichier logs-values.yaml se présente comme suit :

additionalMetadata:
  region: ca-tor
  env: production

Dans l'exemple ci-dessus, les champs suivants seront ajoutés à chaque ligne de journal dans IBM Cloud Logs:

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