For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/manage-and-operate/observability/logs-data-platform/filebeat-logs.md.

Envoyer des logs avec un forwarder - Filebeat (Linux)

Voir en Markdown

Installez et configurez Filebeat sur Linux pour transférer vos fichiers de logs vers Logs Data Platform.

Objectif

Filebeat est un collecteur de fichiers open source, utilisé pour récupérer des fichiers de logs et qui peut facilement être configuré pour les transmettre à Logs Data Platform.

Les principaux atouts de Filebeat sont son protocole résilient d'envoi des logs et la variété de ses modules prêts à l'emploi pour la plupart des applications courantes.

Ce guide décrira comment installer Filebeat OSS sur votre système afin de transférer vos logs vers Logs Data Platform. Il vous présentera également quelques éléments de configuration utiles pour structurer davantage vos logs.

Prérequis

Notez que pour réaliser ce tutoriel, vous devez au minimum :

En pratique

Installer Filebeat OSS 7.X sur votre système

Filebeat prend en charge de nombreuses plateformes, listées ici : https://www.elastic.co/downloads/beats/filebeat

Vous pouvez choisir d'installer Filebeat OSS depuis un paquet, de le compiler depuis les sources (vous aurez besoin du dernier compilateur go pour cela) ou simplement de télécharger le binaire pour démarrer immédiatement.

Pour cette partie, rendez-vous sur le site de téléchargement de Filebeat OSS afin de télécharger la version la plus adaptée à votre distribution.

Les fichiers de configuration suivants ont été testés sur la dernière version de Filebeat OSS compatible avec OpenSearch (7.12.1).

Le paquet installera le fichier de configuration dans le répertoire suivant : /etc/filebeat/filebeat.yml.

Warning

N'utilisez pas une version supérieure à la version 7.12. Celles-ci ne sont actuellement pas compatibles avec OpenSearch. Vous trouverez davantage d'informations dans la documentation sur la matrice de compatibilité.

Configurer Filebeat OSS 7.X sur votre système

Dans l'exemple suivant, nous allons activer la prise en charge d'Apache et de Syslog, mais vous pouvez facilement collecter tout autre type de source.

Filebeat attend un fichier de configuration nommé filebeat.yml.

  1. Pour que la configuration fonctionne, il est obligatoire de remplacer hosts: ["<your_cluster>.logs.ovh.com:5044"] par le nom d'hôte fourni par Logs Data Platform.
  2. Vous devez également veiller à indiquer le X-OVH-TOKEN du flux concerné.

Configuration de Filebeat

###################### Filebeat Configuration Example #########################

# This file is an example configuration file highlighting only the most common
# options. The filebeat.reference.yml file from the same directory contains all the
# supported options with more comments. You can use it as a reference.
#
# You can find the full configuration reference here:
# https://www.elastic.co/guide/en/beats/filebeat/index.html

# For more available modules and options, please see the filebeat.reference.yml sample
# configuration file.

#=========================== Filebeat inputs =============================

filebeat.inputs:

# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.

- type: log

  # Change to true to enable this input configuration.
  enabled: false

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /var/log/*.log
    #- c:\programdata\elasticsearch\logs\*

  # Exclude lines. A list of regular expressions to match. It drops the lines that are
  # matching any regular expression from the list.
  #exclude_lines: ['^DBG']

  # Include lines. A list of regular expressions to match. It exports the lines that are
  # matching any regular expression from the list.
  #include_lines: ['^ERR', '^WARN']

  # Exclude files. A list of regular expressions to match. Filebeat drops the files that
  # are matching any regular expression from the list. By default, no files are dropped.
  #exclude_files: ['.gz$']

  # Optional additional fields. These fields can be freely picked
  # to add additional information to the crawled log files for filtering
  #fields:
  #  level: debug
  #  review: 1

  ### Multiline options

  # Multiline can be used for log messages spanning multiple lines. This is common
  # for Java Stack Traces or C-Line Continuation

  # The regexp Pattern that has to be matched. The example pattern matches all lines starting with [
  #multiline.pattern: ^\[

  # Defines if the pattern set under pattern should be negated or not. Default is false.
  #multiline.negate: false

  # Match can be set to "after" or "before". It is used to define if lines should be append to a pattern
  # that was (not) matched before or after or as long as a pattern is not matched based on negate.
  # Note: After is the equivalent to previous and before is the equivalent to next in Logstash
  #multiline.match: after

#============================= Filebeat modules ===============================

filebeat.config.modules:
  # Glob pattern for configuration loading
  path: ${path.config}/modules.d/*.yml

  # Set to true to enable config reloading
  reload.enabled: false

  # Period on which files under path should be checked for changes
  #reload.period: 10s

#================================ General =====================================

# The name of the shipper that publishes the network data. It can be used to group
# all the transactions sent by a single shipper in the web interface.
#name:

# The tags of the shipper are included in their own field with each
# transaction published.
#tags: ["service-X", "web-tier"]

# Optional fields that you can specify to add additional information to the
# output.
fields_under_root: true
fields:
  X-OVH-TOKEN: 'xxxxxxxxxxxxxxxxxxxxx'

#================================ Outputs =====================================

# Configure what output to use when sending the data collected by the beat.

#----------------------------- Logstash output --------------------------------
output.logstash:
  # Boolean flag to enable or disable the output module.
  enabled: true

  # The Logstash hosts
  hosts: ["<your_cluster>.logs.ovh.com:5044"]

  # Set gzip compression level.
  compression_level: 3

  # Enable SSL support. SSL is automatically enabled if any SSL setting is set.
  ssl.enabled: true

  # Optional SSL configuration options. SSL is off by default.
  # List of root certificates for HTTPS server verifications
  # ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]

#================================ Processors =====================================

# Configure processors to enhance or manipulate events generated by the beat.

processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~

#================================ Logging =====================================

# Sets log level. The default log level is info.
# Available log levels are: error, warning, info, debug
#logging.level: debug

# At debug level, you can selectively enable logging only for some components.
# To enable all selectors use ["*"]. Examples of other selectors are "beat",
# "publish", "service".
#logging.selectors: ["*"]

Vous pouvez également utiliser notre endpoint OpenSearch pour envoyer vos logs. Cet endpoint prend en charge l'ingest, ce qui garantit de meilleures performances et une meilleure compatibilité avec les modules sélectionnés. Pour des raisons légales, nous ne prenons pas en charge les modules X-Pack sur cet endpoint, mais tout module OSS est pris en charge. Pour activer cet endpoint, remplacez la configuration de sortie Logstash par l'extrait suivant :

#==================== Output template setting ==========================

setup.template.enabled: false
setup.ilm.enabled: false

#-------------------------- OpenSearch output ------------------------------
output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["`<your-cluster>`.logs.ovh.com:9200"]

  # Protocol - either `http` (default) or `https`.
  protocol: "https"

  # Authentication credentials - either API key or username/password.
  username: "pat_jwt_`<your_suffix>`"
  password: "`<iam-token>`"
  index: "ldp-logs"
  # Header for OpenSearch 2.X
  headers:
    X-Es-Compat: "7.10"
Warning

La section headers de la configuration de sortie est obligatoire afin de garantir la compatibilité avec OpenSearch 2.X.

Cette configuration désactive la configuration de template (inutile pour notre endpoint). Vous devez fournir vos identifiants IAM pat_jwt_<your_suffix> et <iam-token> de votre compte. Comme pour toutes les API backend de Logs Data Platform, vous pouvez utiliser des jetons IAM. Ne modifiez pas ldp-logs, car il s'agit de notre index de destination spécifique.

Lorsque vous utilisez notre endpoint OpenSearch avec Filebeat, celui-ci utilisera le module ingest afin d'analyser et de structurer les logs.

Activer le module Apache de Filebeat

Pour activer la prise en charge d'apache2 dans Filebeat, exécutez la commande suivante :

$ ldp@ubuntu:~$ sudo filebeat modules enable apache

Cela générera un nouveau fichier de module : /etc/filebeat/modules.d/apache.yml. Modifiez-le afin d'y inclure tous les chemins de vos fichiers d'accès et d'erreurs apache2 :

- module: apache
  # Access logs
  access:
    enabled: true

    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    var.paths: ["/var/log/apache2/access.log*","/var/log/apache2/ssl_access.log*"]

  # Error logs
  error:
    enabled: true

    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    var.paths: ["/var/LOG/apache2/error_log*","/var/log/apache2/ssl_error_log*"]

Activer le module System de Filebeat

La prise en charge de Syslog et de l'authentification fait partie du module system de Filebeat. Pour l'activer :

$ ldp@ubuntu:~$ sudo filebeat modules enable system

Une fois encore, cela générera un fichier /etc/filebeat/modules.d/system.yml

- module: system
  # Syslog
  syslog:
    enabled: true

    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    var.paths: ["/var/log/syslog*"]

  # Authorization logs
  auth:
    enabled: true

    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    var.paths: ["/var/log/auth.log*"]

Assurez-vous que les deux chemins de fichiers existent sur votre système.

Activer les pipelines

Si vous utilisez la sortie « Elasticsearch », veillez à configurer les pipelines à l'aide de la commande suivante :

$ filebeat setup --pipelines --modules apache,system

Filebeat se connectera alors à OpenSearch et configurera les pipelines requis par vos modules.

Lancer Filebeat

Lancez le binaire ou le service Filebeat afin de tester votre fichier de configuration, puis rendez-vous sur votre site apache pour un exemple d'envoi de logs. Vous verrez ce type de log dans Graylog :

$ ldp@ubuntu:~$ sudo systemctl restart filebeat.service

ou

$ ldp@ubuntu:~$ sudo /etc/init.d/filebeat restart
logs beat dans Graylog

Notez la valeur type (apache, syslog ou apache-error) qui indique le fichier source du message de log. Vous pouvez par exemple afficher facilement uniquement vos logs d'accès apache en saisissant fileset_module:apache2 dans la barre de recherche.

Conclusion et ressources utiles

Filebeat est un outil pratique pour envoyer le contenu de vos fichiers de logs actuels vers Logs Data Platform. Il offre un moyen simple et propre d'envoyer vos logs sans modifier la configuration de vos logiciels. N'hésitez pas à consulter les liens ci-dessous pour maîtriser cet outil.

Aller plus loin

Cette page vous a-t-elle aidé ?