Tous les produits
Search
Centre de documentation

Elasticsearch:Utiliser le plug-in logstash-input-oss

Dernière mise à jour :Aug 09, 2026

Le plug-in logstash-input-oss connecte Alibaba Cloud Logstash à Object Storage Service (OSS) via Simple Message Queue (anciennement MNS, désormais SMQ). Lorsqu'un objet OSS est mis à jour, SMQ transmet une notification au plug-in, ce qui déclenche la lecture des dernières données depuis OSS par Logstash.

logstash-input-oss est un plug-in open source. Pour plus d'informations, consultez le dépôt GitHub .

Fonctionnement

  1. Un objet OSS est créé ou mis à jour (par exemple, via PutObject ou AppendObject).

  2. OSS envoie une notification d'événement à une file d'attente SMQ.

  3. Le plug-in reçoit la notification SMQ et extrait la clé de l'objet.

  4. Logstash lit toutes les données contenues dans l'objet et les transmet en aval via le pipeline.

Remarques sur l'utilisation

  • Après réception d'une notification SMQ, Logstash synchronise toutes les données de l'objet associé, et non pas seulement les différences.

  • Les objets au format .gz ou .gzip sont traités comme des fichiers gzip. Tous les autres formats sont traités comme du texte brut.

  • Les objets au format binaire (tels que .jar ou .bin) peuvent être lus sous forme de caractères illisibles.

Prérequis

Avant de commencer, assurez-vous d'avoir :

Créer un pipeline

Créez un pipeline à l'aide de fichiers de configuration, comme décrit dans la rubrique Gérer les pipelines à l'aide de fichiers de configuration. Configurez les paramètres indiqués dans la section Paramètres, puis enregistrez et déployez le pipeline.

L'exemple suivant lit les données d'un bucket OSS et les écrit dans Alibaba Cloud Elasticsearch.

input {
  oss {
    endpoint => "oss-cn-hangzhou-internal.aliyuncs.com"
    bucket => "zl-ossou****"
    access_key_id => "******"
    access_key_secret => "*********"
    prefix => "file-sample-prefix"
    mns_settings => {
      endpoint => "******.mns.cn-hangzhou-internal.aliyuncs.com"
      queue => "aliyun-es-sample-mns"
    }
    codec => json {
      charset => "UTF-8"
    }
  }
}

output {
  elasticsearch {
    hosts => ["http://es-cn-***.elasticsearch.aliyuncs.com:9200"]
    index => "aliyun-es-sample"
    user => "elastic"
    password => "changeme"
  }
}
Important

L'endpoint SMQ doit être un endpoint interne et ne doit pas être préfixé par http. L'utilisation d'un endpoint externe provoque une erreur.

Paramètres

Paramètres obligatoires

Paramètre Type Description
endpoint string L'endpoint utilisé pour accéder à OSS. Consultez la rubrique Régions, endpoints et ports ouverts.
bucket string Le nom du bucket OSS.
access_key_id string L'ID AccessKey de votre compte Alibaba Cloud.
access_key_secret string Le secret AccessKey de votre compte Alibaba Cloud.
mns_settings hash La configuration SMQ. Consultez les sous-paramètres mns_settings.

Paramètres facultatifs

Paramètre Type Valeur par défaut Description
prefix string Filtre les objets selon le préfixe de leur nom. Logstash lit uniquement les objets dont le nom commence par cette valeur. Il ne s'agit pas d'une expression régulière. Utilisez ce paramètre pour lire les données de répertoires spécifiques dans le bucket.
additional_oss_settings hash Paramètres supplémentaires du client OSS. Sous-paramètres pris en charge : secure_connection_enabled (activer les connexions sécurisées) et max_connections_to_oss (nombre maximal de connexions à OSS).
delete boolean false Indique si les objets traités doivent être supprimés du bucket OSS source après lecture.
backup_to_bucket string Le nom du bucket OSS dans lequel les objets traités sont sauvegardés.
backup_to_dir string Le répertoire local dans lequel les fichiers traités sont sauvegardés.
backup_add_prefix string Un préfixe ajouté à la clé de l'objet après traitement. La clé correspond au chemin complet incluant le nom de l'objet dans OSS. Utilisez ce paramètre pour stocker les sauvegardes dans un dossier spécifique au sein du même bucket ou d'un bucket différent.
include_object_properties boolean Indique si les propriétés de l'objet OSS (last_modified, content_type et metadata) doivent être incluses dans [@metadata][oss]. Si ce paramètre n'est pas défini, seule la clé [@metadata][oss][key] est disponible.
exclude_pattern string Une expression régulière Ruby correspondant aux clés d'objets à ignorer. Par exemple, "\/logs\/debug\/" exclut tous les objets contenant /logs/debug/ dans leur chemin.

Sous-paramètres mns_settings

Sous-paramètre Obligatoire Valeur par défaut Description
endpoint Oui L'endpoint SMQ. Il doit s'agir d'un endpoint interne et ne doit pas inclure http.
queue Oui Le nom de la file d'attente SMQ.
poll_interval_seconds Non 10 Le temps d'attente maximal (en secondes) pour une requête ReceiveMessage lorsque la file d'attente est vide. Consultez la rubrique ReceiveMessage.
wait_seconds Non Le temps d'attente maximal du sondage (en secondes) pour une requête ReceiveMessage.

Métadonnées d'objet

Lorsque include_object_properties est activé, le plug-in expose les champs suivants dans [@metadata][oss]. Utilisez ces champs dans vos étapes de filtrage ou de sortie pour enrichir les événements ou appliquer une logique conditionnelle.

Champ Type Description
[@metadata][oss][key] string La clé complète de l'objet (chemin) dans OSS. Toujours disponible, indépendamment de la valeur de include_object_properties.
[@metadata][oss][last_modified] string L'horodatage de la dernière modification de l'objet. Disponible lorsque include_object_properties est défini sur true.
[@metadata][oss][content_type] string Le type MIME de l'objet. Disponible lorsque include_object_properties est défini sur true.
[@metadata][oss][metadata] hash Métadonnées personnalisées définies par l'utilisateur et associées à l'objet. Disponible lorsque include_object_properties est défini sur true.

FAQ

Pourquoi le plug-in est-il basé sur SMQ plutôt que sur un sondage direct d'OSS ?

Les événements de mise à jour des objets OSS s'intègrent parfaitement à SMQ, ce qui fait de la notification par message une solution naturelle. L'alternative, consistant à utiliser l'API ListObjects, nécessite de suivre localement les objets déjà traités et ceux qui ne le sont pas. À mesure que le nombre d'objets augmente, les performances de ListObjects se dégradent. L'écosystème plus large du stockage d'objets (y compris la communauté open source Amazon S3) a également abandonné ListObjects au profit des mécanismes de notification par message.

Que se passe-t-il si Logstash est déclenché alors qu'OSS est encore en train d'écrire des données dans un objet ?

Le plug-in enregistre dans la file d'attente SMQ les objets qui ont été écrits et les transmet via le pipeline Logstash. Toutes les données qui n'ont pas encore été écrites dans OSS continuent d'être écrites. Lors du prochain déclenchement de Logstash, le plug-in lit les données restantes depuis OSS.

Étapes suivantes