Filebeat Logo

Filtrer les messages depuis un module Filebeat

Posted by

Je suis en train de mettre à jour mon monitoring. Par. la même occasion je prepare un article pour mon blog et j’ai eu un problème intéressant. Les messages étaient bien récoltés et envoyés à Elasticsearch mais impossible de supprimer ceux devant des sous-modules. Mon objectif était d’éviter de recevoir toutes les requêtes faites par Kubernetes pour le liveness/readyness.

Mon exemple, avec le module Nginx et Kubernetes

- type: kubernetes
  templates:
  - condition:
    - contains:
        kubernetes.labels.k8s-app: nginx
    config:
      - module: nginx
        access:
          input:
            type: container
            paths:
              - /var/log/containers/*-${data.kubernetes.container.id}.log
            exclude_lines: ["^\\s+[\\-`('.|_]"]
            processors:
            - add_locale: ~
            - drop_event.when.regexp.message: "kube-probe"
        error:
          input:
            type: container
            paths:
              - /var/log/containers/*-${data.kubernetes.container.id}.log
            exclude_lines: ["^\\s+[\\-`('.|_]"]

Je sais que potentiellement je vais rater des erreurs venant des vérification intégrées à Kubernetes mais cet événement est rare. De plus, en cas de problème, Kubernetes redémarrera automatiquement le pod et le module Filebeat associé détectera l’erreur.

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *