9.6. Collecte et stockage des événements Kubernetes


Le Red Hat OpenShift Service sur AWS Event Router est un pod qui regarde les événements Kubernetes et les enregistre pour la collecte par la journalisation. Il faut déployer manuellement le routeur d’événements.

Le routeur de l’événement recueille les événements de tous les projets et les écrit à STDOUT. Le collecteur transmet ensuite ces événements au magasin défini dans la ressource personnalisée ClusterLogForwarder (CR).

Important

Le routeur d’événements ajoute une charge supplémentaire à Fluentd et peut avoir un impact sur le nombre d’autres messages de journal qui peuvent être traités.

Employez les étapes suivantes pour déployer le routeur d’événements dans votre cluster. Il faut toujours déployer le routeur d’événements dans le projet openshift-logging pour s’assurer qu’il recueille les événements de l’ensemble du cluster.

Note

L’image du routeur d’événement ne fait pas partie de l’opérateur de journalisation Red Hat OpenShift et doit être téléchargée séparément.

L’objet Modèle suivant crée le compte de service, le rôle de cluster et la liaison de rôle de cluster requis pour le routeur d’événements. Le modèle configure et déploie également le pod Event Router. Il est possible d’utiliser ce modèle sans apporter de modifications ou de modifier le modèle pour modifier les requêtes CPU et mémoire de l’objet de déploiement.

Conditions préalables

  • Il vous faut des autorisations appropriées pour créer des comptes de service et mettre à jour les liaisons de rôle de cluster. À titre d’exemple, vous pouvez exécuter le modèle suivant avec un utilisateur qui a le rôle de cluster-admin.
  • Le Red Hat OpenShift Logging Operator doit être installé.

Procédure

  1. Créer un modèle pour le routeur d’événements:

    apiVersion: template.openshift.io/v1
    kind: Template
    metadata:
      name: eventrouter-template
      annotations:
        description: "A pod forwarding kubernetes events to OpenShift Logging stack."
        tags: "events,EFK,logging,cluster-logging"
    objects:
      - kind: ServiceAccount 
    1
    
        apiVersion: v1
        metadata:
          name: eventrouter
          namespace: ${NAMESPACE}
      - kind: ClusterRole 
    2
    
        apiVersion: rbac.authorization.k8s.io/v1
        metadata:
          name: event-reader
        rules:
        - apiGroups: [""]
          resources: ["events"]
          verbs: ["get", "watch", "list"]
      - kind: ClusterRoleBinding 
    3
    
        apiVersion: rbac.authorization.k8s.io/v1
        metadata:
          name: event-reader-binding
        subjects:
        - kind: ServiceAccount
          name: eventrouter
          namespace: ${NAMESPACE}
        roleRef:
          kind: ClusterRole
          name: event-reader
      - kind: ConfigMap 
    4
    
        apiVersion: v1
        metadata:
          name: eventrouter
          namespace: ${NAMESPACE}
        data:
          config.json: |-
            {
              "sink": "stdout"
            }
      - kind: Deployment 
    5
    
        apiVersion: apps/v1
        metadata:
          name: eventrouter
          namespace: ${NAMESPACE}
          labels:
            component: "eventrouter"
            logging-infra: "eventrouter"
            provider: "openshift"
        spec:
          selector:
            matchLabels:
              component: "eventrouter"
              logging-infra: "eventrouter"
              provider: "openshift"
          replicas: 1
          template:
            metadata:
              labels:
                component: "eventrouter"
                logging-infra: "eventrouter"
                provider: "openshift"
              name: eventrouter
            spec:
              serviceAccount: eventrouter
              containers:
                - name: kube-eventrouter
                  image: ${IMAGE}
                  imagePullPolicy: IfNotPresent
                  resources:
                    requests:
                      cpu: ${CPU}
                      memory: ${MEMORY}
                  volumeMounts:
                  - name: config-volume
                    mountPath: /etc/eventrouter
                  securityContext:
                    allowPrivilegeEscalation: false
                    capabilities:
                      drop: ["ALL"]
              securityContext:
                runAsNonRoot: true
                seccompProfile:
                  type: RuntimeDefault
              volumes:
              - name: config-volume
                configMap:
                  name: eventrouter
    parameters:
      - name: IMAGE 
    6
    
        displayName: Image
        value: "registry.redhat.io/openshift-logging/eventrouter-rhel9:v0.4"
      - name: CPU 
    7
    
        displayName: CPU
        value: "100m"
      - name: MEMORY 
    8
    
        displayName: Memory
        value: "128Mi"
      - name: NAMESPACE
        displayName: Namespace
        value: "openshift-logging" 
    9
    Copy to Clipboard Toggle word wrap
    1
    Crée un compte de service dans le projet openshift-logging pour le routeur d’événements.
    2
    Crée un ClusterRole pour surveiller les événements dans le cluster.
    3
    Crée un ClusterRoleBinding pour lier le ClusterRole au compte de service.
    4
    Crée une carte de configuration dans le projet openshift-logging pour générer le fichier config.json requis.
    5
    Crée un déploiement dans le projet openshift-logging pour générer et configurer le pod Event Router.
    6
    Indique l’image, identifiée par une balise telle que v0.4.
    7
    Indique la quantité minimale de CPU à allouer à la pod de routeur d’événement. Défaut à 100m.
    8
    Indique la quantité minimale de mémoire à allouer à la pod de routeur d’événements. Défaut à 128Mi.
    9
    Spécifie le projet openshift-logging pour installer des objets dans.
  2. Utilisez la commande suivante pour traiter et appliquer le modèle:

    $ oc process -f <templatefile> | oc apply -n openshift-logging -f -
    Copy to Clipboard Toggle word wrap

    À titre d’exemple:

    $ oc process -f eventrouter.yaml | oc apply -n openshift-logging -f -
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    serviceaccount/eventrouter created
    clusterrole.rbac.authorization.k8s.io/event-reader created
    clusterrolebinding.rbac.authorization.k8s.io/event-reader-binding created
    configmap/eventrouter created
    deployment.apps/eventrouter created
    Copy to Clipboard Toggle word wrap

  3. De valider que le routeur d’événement installé dans le projet openshift-logging:

    1. Consultez le nouveau module de routeur d’événements:

      $ oc get pods --selector  component=eventrouter -o name -n openshift-logging
      Copy to Clipboard Toggle word wrap

      Exemple de sortie

      pod/cluster-logging-eventrouter-d649f97c8-qvv8r
      Copy to Clipboard Toggle word wrap

    2. Consultez les événements recueillis par le routeur de l’événement:

      $ oc logs <cluster_logging_eventrouter_pod> -n openshift-logging
      Copy to Clipboard Toggle word wrap

      À titre d’exemple:

      $ oc logs cluster-logging-eventrouter-d649f97c8-qvv8r -n openshift-logging
      Copy to Clipboard Toggle word wrap

      Exemple de sortie

      {"verb":"ADDED","event":{"metadata":{"name":"openshift-service-catalog-controller-manager-remover.1632d931e88fcd8f","namespace":"openshift-service-catalog-removed","selfLink":"/api/v1/namespaces/openshift-service-catalog-removed/events/openshift-service-catalog-controller-manager-remover.1632d931e88fcd8f","uid":"787d7b26-3d2f-4017-b0b0-420db4ae62c0","resourceVersion":"21399","creationTimestamp":"2020-09-08T15:40:26Z"},"involvedObject":{"kind":"Job","namespace":"openshift-service-catalog-removed","name":"openshift-service-catalog-controller-manager-remover","uid":"fac9f479-4ad5-4a57-8adc-cb25d3d9cf8f","apiVersion":"batch/v1","resourceVersion":"21280"},"reason":"Completed","message":"Job completed","source":{"component":"job-controller"},"firstTimestamp":"2020-09-08T15:40:26Z","lastTimestamp":"2020-09-08T15:40:26Z","count":1,"type":"Normal"}}
      Copy to Clipboard Toggle word wrap

      Il est également possible d’utiliser Kibana pour afficher les événements en créant un modèle d’index à l’aide de l’indice Elasticsearch infra.

Retour au début
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. Découvrez nos récentes mises à jour.

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 le Blog 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.

Theme

© 2025 Red Hat