8.3. Journalisation des clusters


8.3.1. Utiliser OpenShift Logging avec OpenShift Serverless

8.3.1.1. À propos du déploiement du sous-système de journalisation pour Red Hat OpenShift

Les administrateurs de cluster d'OpenShift Container Platform peuvent déployer le sous-système de journalisation en utilisant la console web d'OpenShift Container Platform ou le CLI pour installer l'OpenShift Elasticsearch Operator et le Red Hat OpenShift Logging Operator. Lorsque les opérateurs sont installés, vous créez une ressource personnalisée (CR) ClusterLogging pour planifier les pods du sous-système de journalisation et les autres ressources nécessaires à la prise en charge du sous-système de journalisation. Les opérateurs sont responsables du déploiement, de la mise à niveau et de la maintenance du sous-système de journalisation.

Le CR ClusterLogging définit un environnement de sous-système de journalisation complet qui inclut tous les composants de la pile de journalisation pour collecter, stocker et visualiser les journaux. L'opérateur de journalisation de Red Hat OpenShift surveille le CR du sous-système de journalisation et ajuste le déploiement de la journalisation en conséquence.

Les administrateurs et les développeurs d'applications peuvent consulter les journaux des projets pour lesquels ils ont un accès de visualisation.

8.3.1.2. À propos du déploiement et de la configuration du sous-système de journalisation pour Red Hat OpenShift

Le sous-système de journalisation est conçu pour être utilisé avec la configuration par défaut, qui est adaptée aux clusters OpenShift Container Platform de petite et moyenne taille.

Les instructions d'installation qui suivent comprennent un exemple de ressource personnalisée (CR) ClusterLogging, que vous pouvez utiliser pour créer une instance de sous-système de journalisation et configurer votre environnement de sous-système de journalisation.

Si vous souhaitez utiliser l'installation par défaut du sous-système de journalisation, vous pouvez utiliser directement l'exemple de CR.

Si vous souhaitez personnaliser votre déploiement, apportez des modifications à l'exemple de CR selon vos besoins. Ce qui suit décrit les configurations que vous pouvez faire lors de l'installation de votre instance OpenShift Logging ou modifier après l'installation. Consultez les sections Configuration pour plus d'informations sur l'utilisation de chaque composant, y compris les modifications que vous pouvez apporter en dehors de la ressource personnalisée ClusterLogging.

8.3.1.2.1. Configuration et réglage du sous-système de journalisation

Vous pouvez configurer votre sous-système de journalisation en modifiant la ressource personnalisée ClusterLogging déployée dans le projet openshift-logging.

Vous pouvez modifier n'importe lequel des composants suivants lors de l'installation ou après l'installation :

Mémoire et CPU
Vous pouvez ajuster les limites de CPU et de mémoire pour chaque composant en modifiant le bloc resources avec des valeurs de mémoire et de CPU valides :
spec:
  logStore:
    elasticsearch:
      resources:
        limits:
          cpu:
          memory: 16Gi
        requests:
          cpu: 500m
          memory: 16Gi
      type: "elasticsearch"
  collection:
    logs:
      fluentd:
        resources:
          limits:
            cpu:
            memory:
          requests:
            cpu:
            memory:
        type: "fluentd"
  visualization:
    kibana:
      resources:
        limits:
          cpu:
          memory:
        requests:
          cpu:
          memory:
      type: kibana
Stockage Elasticsearch
Vous pouvez configurer une classe et une taille de stockage persistant pour le cluster Elasticsearch à l'aide des paramètres storageClass name et size. L'opérateur de journalisation de Red Hat OpenShift crée une réclamation de volume persistant (PVC) pour chaque nœud de données dans le cluster Elasticsearch en fonction de ces paramètres.
  spec:
    logStore:
      type: "elasticsearch"
      elasticsearch:
        nodeCount: 3
        storage:
          storageClassName: "gp2"
          size: "200G"

Cet exemple spécifie que chaque nœud de données du cluster sera lié à un PVC qui demande 200 Go de stockage. Chaque groupe de données primaire sera soutenu par une seule réplique.

Note

L'omission du bloc storage se traduit par un déploiement qui ne comprend que le stockage éphémère.

  spec:
    logStore:
      type: "elasticsearch"
      elasticsearch:
        nodeCount: 3
        storage: {}
Politique de réplication Elasticsearch

Vous pouvez définir la politique qui définit comment les shards Elasticsearch sont répliqués entre les nœuds de données dans le cluster :

  • FullRedundancy. Les fichiers de chaque index sont entièrement répliqués sur chaque nœud de données.
  • MultipleRedundancy. Pour chaque index, les fragments sont répartis sur la moitié des nœuds de données.
  • SingleRedundancy. Une copie unique de chaque morceau de données (shard). Les journaux sont toujours disponibles et récupérables tant qu'il existe au moins deux nœuds de données.
  • ZeroRedundancy. Il n'y a pas de copies des morceaux. Les journaux peuvent être indisponibles (ou perdus) en cas de panne ou de défaillance d'un nœud.
8.3.1.2.2. Exemple de ressource personnalisée ClusterLogging modifiée

Voici un exemple de ressource personnalisée ClusterLogging modifiée à l'aide des options décrites précédemment.

Exemple de ressource personnalisée ClusterLogging modifiée

apiVersion: "logging.openshift.io/v1"
kind: "ClusterLogging"
metadata:
  name: "instance"
  namespace: "openshift-logging"
spec:
  managementState: "Managed"
  logStore:
    type: "elasticsearch"
    retentionPolicy:
      application:
        maxAge: 1d
      infra:
        maxAge: 7d
      audit:
        maxAge: 7d
    elasticsearch:
      nodeCount: 3
      resources:
        limits:
          memory: 32Gi
        requests:
          cpu: 3
          memory: 32Gi
        storage:
          storageClassName: "gp2"
          size: "200G"
      redundancyPolicy: "SingleRedundancy"
  visualization:
    type: "kibana"
    kibana:
      resources:
        limits:
          memory: 1Gi
        requests:
          cpu: 500m
          memory: 1Gi
      replicas: 1
  collection:
    logs:
      type: "fluentd"
      fluentd:
        resources:
          limits:
            memory: 1Gi
          requests:
            cpu: 200m
            memory: 1Gi

8.3.2. Recherche de logs pour les composants Knative Serving

Vous pouvez trouver les journaux des composants Knative Serving en suivant la procédure suivante.

8.3.2.1. Utiliser OpenShift Logging pour trouver les logs des composants Knative Serving

Conditions préalables

  • Installez le CLI OpenShift (oc).

Procédure

  1. Obtenir l'itinéraire Kibana :

    $ oc -n openshift-logging get route kibana
  2. Utilisez l'URL de l'itinéraire pour naviguer vers le tableau de bord Kibana et vous connecter.
  3. Vérifiez que l'index est défini sur .all. Si l'index n'est pas défini sur .all, seuls les journaux du système OpenShift Container Platform seront listés.
  4. Filtrez les journaux en utilisant l'espace de noms knative-serving. Saisissez kubernetes.namespace_name:knative-serving dans le champ de recherche pour filtrer les résultats.
Note

Knative Serving utilise par défaut une journalisation structurée. Vous pouvez activer l'analyse de ces logs en personnalisant les paramètres OpenShift Logging Fluentd. Cela rend les logs plus consultables et permet de filtrer au niveau des logs pour identifier rapidement les problèmes.

8.3.3. Trouver des logs pour les services Knative Serving

Vous pouvez trouver les journaux des services Knative Serving en suivant la procédure suivante.

8.3.3.1. Utiliser OpenShift Logging pour trouver les logs des services déployés avec Knative Serving

Avec OpenShift Logging, les logs que vos applications écrivent à la console sont collectés dans Elasticsearch. La procédure suivante explique comment appliquer ces fonctionnalités aux applications déployées à l'aide de Knative Serving.

Conditions préalables

  • Installez le CLI OpenShift (oc).

Procédure

  1. Obtenir l'itinéraire Kibana :

    $ oc -n openshift-logging get route kibana
  2. Utilisez l'URL de l'itinéraire pour naviguer vers le tableau de bord Kibana et vous connecter.
  3. Vérifiez que l'index est défini sur .all. Si l'index n'est pas défini sur .all, seuls les journaux du système OpenShift seront listés.
  4. Filtrez les journaux en utilisant l'espace de noms knative-serving. Entrez un filtre pour le service dans la boîte de recherche pour filtrer les résultats.

    Exemple de filtre

    kubernetes.namespace_name:default AND kubernetes.labels.serving_knative_dev\/service:{service_name}

    Vous pouvez également filtrer en utilisant /configuration ou /revision.

  5. Affinez votre recherche en utilisant kubernetes.container_name:<user_container> pour n'afficher que les journaux générés par votre application. Sinon, vous verrez les journaux du proxy de file d'attente.
Note

Utilisez la journalisation structurée basée sur JSON dans votre application pour permettre un filtrage rapide de ces journaux dans les environnements de production.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.