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è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 :
TrustedProfileouIAMAPIKey - 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 variableenv.trustedProfileIDdoit é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.iamAPIKeyest 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 :
additionalLogSourcePathsajoute des emplacements à l'ensemble par défaut des enregistrements qui seront traités.excludeLogSourcePathsignore les journaux dans les emplacements spécifiés.selectedLogSourcePathsremplace le chemin par défaut/var/log/containers/*.loget ignore les configurationsadditionalLogSourcePaths. 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
Productionpour utiliser le point de terminaison par défautiam.cloud.ibm.com - Définir
PrivateProductionpour utiliser le point de terminaisonprivate.iam.cloud.ibm.com - Configurer
Custompour 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"
}
}