Scénarios d'exportation Cloud Logging : Elasticsearch

Ce scénario montre comment exporter les journaux sélectionnés de Logging vers un cluster Elasticsearch. Dans ce scénario, nous partons du principe que vous disposez d'un cluster Elasticsearch disponible pour l'ingestion de journaux sur Elastic Cloud (service géré d'Elasticsearch).

Si vous êtes un client Google Cloud, vous pouvez commencer à utiliser Elasticsearch via Elastic Cloud sur Google Cloud Marketplace, qui intègre la facturation via votre compte Google Cloud.

Elasticsearch est un moteur de recherche et d'analyse RESTful distribué, offrant des fonctionnalités et des services avancés, optimisés pour l'analyse des journaux, des métriques et des méthodes de télémétrie structurés et non structurés. Elastic Cloud sur Google Cloud propose des services de surveillance et d'assistance de pointe pour Elastic et Google. Vous bénéficiez ainsi de sauvegardes automatiques, de mises à jour et des correctifs de sécurité les plus récents, avec peu de temps d'arrêt ou d'interruptions.

Vous pouvez utiliser un processus similaire pour le service autogéré d'Elastic Stack dans votre compte Google Cloud.

Ce scénario fait partie de la série Modèles de conception pour les exportations Stackdriver Logging.

Présentation

La suite Elastic Stack unifie toutes les données opérationnelles. Vous pouvez ainsi effectuer des recherches et des analyses rapides, fiables et pertinentes en temps réel. Les agents de transfert de données légers Beats se trouvent en périphérie ou s'exécutent sans serveur en tant que fonction Cloud. Ils servent à collecter et à ingérer des données. Il s'agit du moyen le plus simple d'ingérer des données dans Elasticsearch afin de les visualiser dans Kibana.

Logstash reste un outil d'ingestion utile si vous souhaitez collecter des données provenant de plusieurs sources, puis les transformer de manière significative avant de les intégrer à Elasticsearch ou de les exporter vers un grand nombre de sorties. Vous pouvez utiliser Beats et Logstash ensemble ou séparément pour envoyer les données des journaux associées à Google Cloud vers Elasticsearch en publiant ces événements dans Pub/Sub.

Beats

Beats propose des modules pré-installés permettant de surveiller les journaux et les métriques, et de créer des alertes et des rapports les concernant. Ce document porte sur Filebeat, car il constitue un bon point de départ dans une solution d'observabilité globale, en ajoutant par la suite d'autres modules et intégrations.

Voici quelques cas d'utilisation courants de Beats :

  • Examiner les données d'audit et créer des rapports à l'aide de Auditbeat
  • Analyser les fichiers journaux et les métriques à l'aide de Filebeat et de Metricbeat
  • Surveiller les données cloud à l'aide d'un agent Functionbeat sans serveur (fonction Cloud)
  • Être informé du trafic réseau à l'aide de Packetbeat

Le schéma suivant présente un exemple d'architecture de base permettant d'exporter des opérations Google Cloud Logging vers Elasticsearch à l'aide de Beats. Le module Filebeat pour Google Cloud collecte les journaux d'audit, de flux VPC et de pare-feu. Que l'environnement inclut des conteneurs, des fonctions sans serveur, des VM ou des applications, les récepteurs Cloud Logging sont configurés pour envoyer les données filtrées appropriées à un sujet Pub/Sub, que Filebeat envoie à Elasticsearch pour ingérer et agréger les données à rechercher et à signaler dans Kibana.

Exemple de flux d'ingestion de Google Cloud vers Elastic Cloud.Exemple de flux d'ingestion de Google Cloud vers Elastic Cloud.

Configurer l'exportation de la journalisation en temps réel

Dans cette section, vous créez le pipeline permettant d'exporter les journaux de Logging vers Elasticsearch en temps réel via Filebeat à l'aide de Pub/Sub. Vous allez créer un sujet Pub/Sub pour collecter les ressources de journalisation pertinentes avec un filtrage avancé, puis créer le service du récepteur, et enfin configurer Filebeat.

Configurer un sujet Pub/Sub

Suivez les instructions pour configurer un sujet Pub/Sub qui recevra les journaux exportés. Attribuez un nom au sujet (par exemple, es-auditlogs-export). Les sujets nécessitent également un abonnement. Par souci de simplicité, vous pouvez donc créer un abonnement portant le même nom. Utilisez les paramètres par défaut lorsque vous configurez l'abonnement. Vous pouvez définir les autorisations Identity and Access Management ultérieurement.

Activer les journaux d'audit pour tous les services

Les journaux d'audit pour l'accès aux données sont désactivés par défaut (sauf dans BigQuery). Pour activer tous les journaux d'audit,

vous pouvez les configurer dans Google Cloud Console.

  1. Dans Cloud Console, accédez au menu IAM & Admin (IAM et administration).

    Accéder à IAM et administration

  2. Cliquez sur Audit Logs (Journaux d'audit), puis sur Default Audit Config (Configuration de l'audit par défaut).

  3. Assurez-vous d'avoir sélectionné les types de journaux appropriés, à savoir dans le cas présent : Admin Read (Lecture administrateur), Data Read (Lecture de données) et Data Write (Écriture de données).

  4. Cliquez sur Enregistrer.

Activation des journaux d'audit Google Cloud.Activation des journaux d'audit Google Cloud.

Activation facultative des flux VPC et des journaux de pare-feu sur Google Cloud.Activation facultative des flux VPC et des journaux de pare-feu sur Google Cloud

Affiner l'exportation de journaux avec des filtres

Une fois que vous avez configuré des exportations agrégées ou l'exportation de journaux, vous devez affiner les filtres de journalisation afin d'exporter les journaux d'audit, les journaux associés aux machines virtuelles, les journaux de stockage et les journaux de base de données.

Le filtre de journalisation suivant inclut les journaux d'audit des activités d'administration, de l'accès aux données et d'événements système, ainsi que les journaux correspondant à des types de ressources spécifiques (dans le cas présent, les buckets Compute Engine et Cloud Storage, ainsi que les ressources BigQuery).

logName:"projects/PROJECT-ID/logs/cloudaudit.googleapis.com%2Factivity" OR
"projects/PROJECT-ID/logs/cloudaudit.googleapis.com%2Fdata_access" OR
"projects/PROJECT-ID/logs/cloudaudit.googleapis.com%2Fsystem_event" OR
resource.type:gce OR
resource.type=gcs_bucket OR
resource.type=bigquery_resource

Remplacez PROJECT-ID par l'ID de votre projet Google Cloud. Vous pouvez afficher l'ID de votre projet en exécutant la commande gcloud config get-value project. Remplacez SERVICE par le nom de votre service Cloud Run.

Créer un service de récepteur

Vous devez créer le récepteur du routeur de journaux pour envoyer les journaux appropriés au sujet Pub/Sub qu'Elasticsearch va ingérer. Il convient de vérifier que les filtres appropriés sont sélectionnés sur l'objet. Pour en savoir plus, consultez la page Bonnes pratiques pour utiliser les journaux d'audit Google Cloud.

Pour créer le récepteur, procédez comme suit :

  1. Dans Cloud Console, accédez au menu Operations Logging (Journalisation des opérations), puis cliquez sur Logs Router (Routeur de journaux).
  2. Assurez-vous que le bon projet Google Cloud est sélectionné, puis cliquez sur Créer un récepteur.
  3. Sélectionnez Cloud Pub/Sub topic (Sujet Cloud Pub/Sub), puis cliquez sur Next (Suivant). Création du service du récepteur.

  4. Créez un filtre avancé.

    Création d'un filtre avancé.

  5. Saisissez le texte suivant dans la zone de filtre, en supprimant tous les éléments qui ont pu être ajoutés par le système (par exemple, resource.type="global") et en remplaçant PROJECT-ID par le nom de votre projet.

    logName="projects/PROJECT-ID/logs/cloudaudit.googleapis.com%2Factivity" OR
    "projects/PROJECT-ID/logs/cloudaudit.googleapis.com%2Fdata_access" OR
    "projects/PROJECT-ID/logs/cloudaudit.googleapis.com%2Fsystem_event" OR
    resource.type:"gce" OR resource.type="gcs_bucket" OR resource.type="bigquery_resource"
    

    Ce filtre permet de commencer l'ingestion de journaux dans Elasticsearch. Vous pouvez configurer plusieurs autres filtres avec ce processus.

  6. Cliquez sur Envoyer le filtre.

    Visionneuse de journaux.

  7. Saisissez gcp_logging_sink_pubsub dans le champ Sink Name (Nom du récepteur), puis définissez le champ Sink Destination (Destination du récepteur) sur le sujet es-auditlogs-export créé précédemment.

    Création d'un récepteur de journaux.

    Après avoir cliqué sur Create Sink (Créer un récepteur), un compte de service unique s'affiche. Celui-ci est autorisé à écrire des journaux dans la destination sélectionnée. Notez ces informations, car vous en aurez besoin à l'étape suivante.

L'exemple de commande gcloud suivant crée un récepteur nommé gcp_logging_sink_pubsub pour envoyer les journaux d'audit correctement filtrés au sujet Pub/Sub es-auditlogs-export. Le récepteur inclut tous les projets enfants et spécifie le filtrage permettant de sélectionner des journaux d'audit spécifiques.

gcloud logging sinks create gcp_logging_sink_pubsub \
    pubsub.googleapis.com/projects/PROJECT-ID/topics/es-auditlogs-export \
    --log-filter='logName="projects/PROJECT-ID/logs/cloudaudit.googleapis.com%2Factivity" OR "projects/PROJECT-ID/logs/cloudaudit.googleapis.com%2Fdata_access" OR "projects/PROJECT-ID/logs/cloudaudit.googleapis.com%2Fsystem_event" OR resource.type:"gce" OR resource.type="gcs_bucket" OR resource.type="bigquery_resource"'

Le résultat ressemble à ce qui suit :

Created [https://logging.googleapis.com/v2/projects/project-id/sinks/gcp_logging_sink_pubsub].
Please remember to grant `serviceAccount:p15060-5219@service-account-id.iam.gserviceaccount.com` the Pub/Sub Publisher role on the topic.
More information about sinks can be found at https://cloud.google.com/logging/docs/export/configure_export

L'entrée serviceAccount renvoyée par l'appel d'API indique l'identité à ajouter en tant qu'éditeur au sujet Pub/Sub spécifique. Cette identité représente un compte de service Google Cloud créé pour l'exportation. Tant que vous n'accordez pas à cette identité l'autorisation de publier dans le sujet de destination, les exportations d'entrées de journal issues de ce récepteur échoueront. Pour en savoir plus, consultez la section ci-après ou la documentation suivante : Accorder l'accès pour une ressource.

Définir les autorisations de stratégie IAM pour le sujet Pub/Sub

En ajoutant le compte de service au sujet Pub/Sub es-auditlogs-export avec les autorisations de publication Pub/Sub, vous l'autorisez à publier dans le sujet.

Pour ajouter les autorisations au compte de service, procédez comme suit :

  1. Dans Cloud Console, ouvrez la page Sujets Cloud Pub/Sub :

    ACCÉDER À LA PAGE "SUJETS"

  2. Cliquez sur le nom du sujet es-auditlogs-export.

  3. Cliquez sur Afficher le panneau d'informations, puis sur Ajouter un membre pour configurer les autorisations.

  4. Assurez-vous que l'autorisation Pub/Sub Publisher (Éditeur Pub/Sub) est sélectionnée.

    Sélection de l'autorisation d'éditeur Pub/Sub.

Une fois que vous avez créé l'exportation de journalisation à l'aide de ce filtre, les fichiers journaux commencent à remplir le sujet Pub/Sub du projet configuré. Vous pouvez vérifier que le sujet reçoit des messages dans l'Explorateur de métriques de Cloud Monitoring. À l'aide du type de ressource et de la métrique ci-dessous, observez le nombre d'opérations d'envoi de messages sur une courte période. Si vous avez correctement configuré l'exportation, vous constaterez une activité supérieure à 0 sur le graphique, comme illustré dans la capture d'écran suivante.

  • Type de ressource : Cloud Pub/Sub Topic - pubsub_topic
  • Métrique : Publish message operations - pubsub.googleapis.com/topic/send_message_operation_count
  • Filtre : topic_id="es-auditlogs-export"

Explorateur de métriques.

Configuration de Filebeat

Maintenant que Google Cloud surveille les journaux d'audit et quelques autres métriques, il est temps d'installer et de configurer Filebeat, l'agent de transfert de données léger d'Elastic. Vous devez installer Filebeat sur un hôte, tel qu'une VM hébergée dans le même projet Google Cloud.

Filebeat est configuré pour collecter et envoyer les journaux publiés à Elasticsearch. Cependant, vous pouvez facilement le configurer pour effectuer d'autres tâches, telles que la surveillance d'applications, de conteneurs et de métriques système à l'aide de modules pré-installés. Beaucoup d'entre eux sont dotés d'options de visualisation et de tableaux de bord prédéfinis.

Créer un compte de service

Lorsque vous vous préparerez à configurer Filebeat, vous devrez créer un compte de service Google Cloud et un fichier de clé correspondant. Si vous ne connaissez pas ce processus, consultez la page Créer et gérer les clés de comptes de service. Exportez le fichier au format JSON et nommez-le par exemple gcp-es-service-account.json.

Vous utilisez ce fichier avec Filebeat pour vous authentifier auprès du sujet Pub/Sub approprié. Enregistrez le fichier sur l'hôte qui exécute Filebeat. Vous le déplacerez à l'emplacement approprié lors d'une prochaine étape.

Attribuez le rôle Pub/Sub Editor (Éditeur Pub/Sub) au compte. Pour en savoir plus, consultez la page Contrôle des accès Pub/Sub.

Attribution du rôle d'éditeur Pub/Sub au compte de service.

Installer Filebeat

Dans cette section, nous partons du principe que vous disposez d'un hôte pouvant exécuter Filebeat et d'un déploiement Elastic Cloud existant. Cependant, leur création ne prend que quelques minutes. Si vous n'en avez pas et que vous avez besoin de quelques conseils, consultez le guide de démarrage d'Elasticsearch.

Vous pouvez suivre le guide Démarrage rapide de Filebeat : installation et configuration ou exécutez la commande suivante dans un système yum/RPM :

sudo yum install filebeat

Mieux encore, suivez les instructions fournies directement dans Kibana.

  1. Commencez par cliquer sur Add log data (Ajouter des données de journal) sur la page d'accueil de Kibana.

    Ajout des données de journal dans Kibana.

  2. Faites défiler la page vers le bas, puis cliquez sur System logs (Journaux système) ou sur un autre module pour obtenir des instructions sur le téléchargement et la configuration de Filebeat. Vous n'avez pas besoin d'activer ce module.

    Filebeat propose de nombreux modules pré-installés. Si vous souhaitez les utiliser, il vous suffit de les activer et de les configurer. Dans cette procédure, vous n'avez pas besoin d'activer le module System logs (Journaux système). Activez plutôt le module Google Cloud.

  3. Choisissez votre système d'exploitation.

    Si votre système d'exploitation ne figure pas dans la liste, vous devez consulter le guide de démarrage rapide. Néanmoins, cette page fournit encore des informations dont vous aurez besoin ultérieurement.

  4. Téléchargez et installez Filebeat conformément aux instructions, généralement à l'aide d'une commande curl.

    Les déploiements Windows nécessitent un téléchargement.

Configurer Filebeat

Dans la procédure suivante, vous vous servez de l'utilisateur elastic prédéfini et d'un mot de passe généré. Il est recommandé de créer un rôle/utilisateur unique utilisé pour les environnements de production.

Pour savoir comment configurer le rôle et l'utilisateur, consultez la page "Attribuer les droits et les rôles requis pour la configuration{: target="external" class="external" track-type="tutorial" track-name="externalLink" track-metadata-position="body" }.

L'utilisateur elastic est un super-utilisateur, et le compte doit être réservé à des fins d'administration ou de test uniquement. Si le mot de passe de cet utilisateur doit être réinitialisé, il doit également l'être partout où il est utilisé. Pour cette raison, il est préférable de configurer un utilisateur unique pour chaque usage prévu dans les environnements de production.

Deux options permettent d'établir l'authentification entre Filebeat et Elasticsearch : configurer un keystore ou coder en dur les identifiants dans le fichier de configuration filebeat.yml.

Pour l'une des options suivantes, vous devez configurer cloud.id et cloud.auth.

Vous pouvez obtenir l'identifiant cloud.id{: target="external" class="external" track-type="tutorial" track-name="externalLink" track-metadata-position="body" } en suivant les instructions précédentes (Installer Filebeat) dans Kibana ou sur la page de gestion des déploiements du service Elasticsearch{: target="external" class="external" track-type="tutorial" track-name="externalLink" track-metadata-position="body" }.

Si vous n'avez pas déjà enregistré le mot de passe d'autorisation lors du processus de déploiement, vous pouvez le réinitialiser pour l'utilisateur elastic. Suivez les instructions de la page Réinitialiser le mot de passe de l'utilisateur elastic.

Option 1 : Utiliser le keystore

Pour authentifier Filebeat de manière sécurisée à l'aide d'Elastic Cloud, vous pouvez utiliser un keystore Filebeat afin de stocker les valeurs secrètes en toute sécurité.

Vous exécutez la commande filebeat keystore sur l'hôte qui exécute Filebeat. Ce keystore chiffre l'ID cloud et le mot de passe utilisateur, et offre la possibilité de les utiliser en tant que variables dans Filebeat ou dans n'importe quel autre agent Beats.

Les étapes suivantes s'appliquent aux machines Linux. Si vous avez besoin d'aide pour votre système d'exploitation, consultez le guide de démarrage rapide, car les commandes peuvent différer légèrement.

  1. Créez le keystore :

    sudo filebeat keystore add ES_PWD

    Lorsque vous y êtes invité, collez le mot de passe qui vous a été fourni pour l'utilisateur elastic lors du déploiement ou de sa réinitialisation. Sinon, si vous avez créé un utilisateur, saisissez son mot de passe.

  2. Ajoutez le déploiement cloud.id :

    sudo filebeat keystore add CLOUD_ID

    Lorsque vous y êtes invité, collez l'ID cloud. (N'incluez pas les guillemets si vous vous référez à la procédure décrite dans la section Installer Filebeat.)

  3. Mettez à jour le fichier filebeat.yml pour utiliser ces nouvelles variables. Vérifiez que vous vous trouvez dans le répertoire où se trouve le fichier filebeat.yml ou que vous saisissez le chemin d'accès complet au répertoire du fichier existant.

    echo cloud.id: \"\$\{CLOUD_ID\}\" >> filebeat.yml
    echo cloud.auth: \"elastic:\$\{ES_PWD\}\" >> filebeat.yml
    
  4. Autres commandes utiles du keystore :

    sudo filebeat keystore list : répertorie tous les keystores

    sudo filebeat keystore --help : permet d'obtenir de l'aide sur les commandes

  5. Passez à l'étape Configurer le module Google Cloud.

Pour en savoir plus, consultez la documentation sur les keystores{: target="external" class="external" track-type="tutorial" track-name="externalLink" track-metadata-position="body" }.

Option 2 : Modifier directement le fichier

Vous pouvez également suivre les instructions de la page d'installation figurant dans la section Installer Filebeat ou du guide de démarrage rapide, qui décrit la configuration du fichier filebeat.yml (l'arborescence du répertoire dépend de votre environnement) en y ajoutant directement les informations d'identification.

  1. Pour que Filebeat puisse envoyer des données à Elasticsearch, vous devez définir deux variables, cloud.id et cloud.auth, figurant dans le fichier filebeat.yml.

    Exemple :

    # ====== Elastic Cloud =================
    cloud.id: "gcp_filebeat:dXMtY2VudHJhjQZjJkODdkOGJjNmJi" cloud.auth: "elastic:<password>"
    

    gcp_filebeat est le nom du déploiement et <password> doit être remplacé par le mot de passe que vous avez attribué.

Configurer le module Google Cloud

Après avoir configuré le fichier filebeat.yml pour qu'il se connecte à votre service Elasticsearch, vous devez activer le module Google Cloud et le configurer.

  1. Activez le module googlecloud. Par exemple, sous Linux :

    sudo filebeat modules enable googlecloud

    Conseil : Pour identifier les modules activés, vous pouvez exécuter la commande suivante :

    sudo filebeat modules list

  2. Après avoir activé le module googlecloud, vous devez configurer le fichier de configuration YAML spécifique qui se trouve dans le répertoire modules.d. Il peut s'agir de /usr/share/filebeat ou de l'emplacement où les fichiers ont été extraits.

Exemple de configuration googlecloud.yml permettant d'activer les journaux d'audit :

# open {path}/modules.d/googlecloud.yml, add the following

- module: googlecloud
  audit:
    enabled: true
    var.project_id: project-id
    var.topic: es-auditlogs-export
    var.subscription_name: es-auditlogs-export
    var.credentials_file: ${path.config}/gcp-es-service-account.json

L'emplacement du fichier var.credentials_file dépend du système. Vous pouvez exécuter la commande test config suivante pour afficher l'emplacement vers lequel pointe le chemin d'accès au fichier de configuration et celui dans lequel doit se trouver le fichier d'identifiants. Consultez également la page Arborescence des répertoires sur le site d'Elastic.

  1. Assurez-vous que les paramètres de récupération vpcflow et firewall sont désactivés.

    - module: googlecloud
      vpcflow:
        enabled: false
      firewall:
        enabled: false
    
  2. Testez la configuration en exécutant une commande semblable à la suivante :

    sudo filebeat test config -e

  3. Placez le fichier JSON exporté à l'étape Créer un compte de service à l'emplacement déterminé par la commande précédente pour Config path.

    Sous Linux CentOs, avec la version 7.9.2 de Filebeat, l'emplacement correspond à l'emplacement extrait :

    Chemin d'accès au fichier de configuration : [/home/UserName/filebeat-7.9.2-linux-x86_64]

    S'il est installé à l'aide d'un système d'empaquetage, l'emplacement est /etc/filebeat.

  4. Exécutez la commande de configuration pour vous assurer que les journaux importés peuvent être analysés et indexés correctement, et qu'ils fournissent des visualisations prédéfinies, y compris des tableaux de bord.

    sudo filebeat setup

  5. Lancez filebeat :

    sudo filebeat -e

Si des erreurs se produisent au démarrage du service, les journaux doivent fournir des informations utiles. L'emplacement du fichier de configuration pose souvent problème. L'erreur indique où se trouve le fichier de configuration dans ce scénario. D'autres problèmes courants sont liés à l'authentification avec le compte de service que vous avez créé.

En cas de problème de configuration, vous pouvez poser des questions et rechercher des situations similaires dans le forum de discussion Elastic.

Utiliser les journaux exportés

Une fois les journaux exportés ingérés dans Elasticsearch, vous pouvez vous connecter à Kibana et consulter le tableau de bord Filebeat GoogleCloud Audit, qui vous permet d'obtenir des informations sur les éléments suivants :

  • Emplacements des sources d'audit, représentés par une carte de coordonnées
  • Résultat des événements d'audit au fil du temps, représenté par un graphique à barres verticales
  • Action d'événement d'audit, représentée par un graphique à secteurs
  • Adresse e-mail des principaux utilisateurs : représentée par un nuage de mots clés
  • user-agent de l'audit : représenté par un graphique à secteurs
  • Nom des ressources d'audit, représenté par un graphique à secteurs
  • Événements d'audit, répertoriés dans une table de données ou au format JSON

Tableau de bord du journal d&#39;audit.

Logstash

Si vous souhaitez installer et utiliser Logstash, transformer vos données, puis les envoyer vers Elasticsearch, suivez la procédure ci-dessous. Pour commencer, ou si vous essayez un scénario de test, vous pouvez utiliser la VM qui exécute Beats. En revanche, il est préférable d'avoir un serveur dédié dans un environnement de production.

Configurer Logstash

  1. Téléchargez et installez Logstash en suivant le guide Premiers pas avec Logstash. Ce guide propose plusieurs options de déploiement en fonction de votre environnement, tout en fournissant les dernières conditions préalables et requises, telles que la version Java et la définition de savariable d'environnement d'accueil.

  2. Vous pouvez utiliser Logstash pour ingérer des journaux depuis Filebeat (option 1) ou directement depuis Pub/Sub (option 2). Dans les deux cas, vous devez connaître le point de terminaison Elasticsearch et le mot de passe de l'utilisateur elastic. Tous deux sont accessibles dans la console Elastic Cloud.

    Vous avez probablement enregistré le mot de passe elastic lors du déploiement. Si nécessaire, vous pouvez le réinitialiser en cliquant sur le lien Security (Sécurité) dans la même console.

    Point de terminaison Logstash.

Option 1

Étant donné que Filebeat a déjà été configuré pour extraire les données de Pub/Sub, vous pouvez importer ces données de Filebeat dans un pipeline Logstash, les transformer, puis les transférer vers Elasticsearch.

  1. Modifiez le fichier /etc/filebeat/filebeat.yml en mettant les variables cloud.id et cloud.auth configurées précédemment en commentaire.

    # ====== Elastic Cloud =================
    #cloud.id: "xxx"
    #cloud.auth: "xxx"
    
  2. Mettez les lignes output.elasticsearch et hosts en commentaire sous "Elasticsearch Output".

    # ------ Elasticsearch Output -------------------
    #output.elasticsearch:
    # Array of hosts to connect to.
    #hosts: ["localhost:9200"]
    
  3. Supprimez le signe de hachage (#) devant hosts sous "Logstash Output".

    # ------ Logstash Output -------------------
    #output.logstash:
    # The Logstash hosts
    hosts: ["localhost:5044"]
    

    La sortie Filebeat sera envoyée à l'hôte local qui exécute Logstash à l'aide du port 5044 dans ce scénario. Logstash écoute ce port par défaut. Vous n'avez donc pas besoin de le modifier.

  4. Créez le fichier de configuration du pipeline Logstash.

    sudo vim /etc/logstash/conf.d.beats.conf

    Ce fichier contient les éléments suivants :

    input {
      beats {
        port => 5044
      }
    }
    
    output {
      stdout { codec => rubydebug } #Used to validate/troubleshoot
      elasticsearch {
        hosts => ["https://f3041.us-central1.gcp.cloud.es.io:9243"]
        user => "elastic"
        password => "glnvy8k27gwQE8pVPaxW35a"
        index => "logstash-%{+YYYY.MM.dd}"
      }
    }
    

Option 2

Si vous préférez utiliser directement Logstash plutôt que Filestore, suivez la procédure ci-dessous pour configurer le plug-in d'entrée Pub/Sub pour Logstash.

  1. Conformément à l'instruction, vous devez d'abord installer le plug-in en exécutant la commande suivante ou une commande similaire dans votre environnement. Le répertoire d'un environnement Linux est /usr/share/logstash, mais il peut varier en fonction de votre système.

    bin/logstash-plugin install logstash-input-google_pubsub

  2. L'authentification Google Cloud est la même pour l'installation de Filebeat. Vous pouvez consulter la procédure de la section précédente Créer un compte de service de ce document. Vous trouverez ci-dessous une entrée pour le fichier de clé JSON.

  3. Créez un fichier de configuration Pub/Sub nommé pub_sub.conf à enregistrer dans le répertoire logstash (en général, /etc/logstash/conf.d).

    Le fichier de configuration doit ressembler à ce qui suit. L'élément hosts correspond au point de terminaison Elasticsearch.

    input { google_pubsub { project_id => "project-id" topic => "es-auditlogs-export" subscription => "es-auditlogs-export" json_key_file => "gcp-es-service-account.json" } }

    output { stdout { codec => rubydebug } #Used to validate/troubleshoot elasticsearch { hosts => ["https://f3041.us-central1.gcp.cloud.es.io:9243"] user => "elastic" password => "glnvy8k27gwQE8pVPaxW35a" index => "logstash-%{+YYYY.MM.dd}" } }

Pour les deux options, démarrez Logstash, puis utilisez Kibana pour obtenir des informations.

  1. Vous devez exécuter Logstash en tant que service sur des systèmes tels que Linux, où le gestionnaire de packages a été utilisé pour installer Logstash. Vous devez l'exécuter en tant que service, par exemple sudo service logstash start. Pour en savoir plus sur les autres systèmes, consultez la page Exécuter Logstash en tant que service sur Debian ou RPM.
  2. Vous pouvez valider le service en exécutant une commande semblable à la commande Linux suivante :

    sudo journalctl -u logstash -f
    

Afficher la collection Logstash dans Kibana

Une fois les journaux Pub/Sub envoyés à Elasticsearch à l'aide de Logstash, vous devez effectuer quelques opérations dans Kibana pour afficher les données.

  1. Ouvrez Kibana et accédez à Stack Management (Gestion de la pile).

    Gestion de la pile Kibana.

  2. Cliquez sur Kibana > Index Patterns (Schémas d'index).

    Schéma d&#39;index Kibana.

  3. Cliquez sur Create index pattern (Créer un schéma d'index).

    Création d&#39;un schéma d&#39;index dans Kibana.

  4. Saisissez logstash-* dans le champ Index pattern name (Nom du schéma d'index). Vous devriez voir la correspondance du schéma d'index du fait d'avoir exécuté Logstash lors des étapes précédentes.

    Définition du schéma d&#39;index dans Kibana.

  5. Cliquez sur Next step (Étape suivante).

  6. Sélectionnez @timestamp pour le filtre Time field (Champ date/heure), puis cliquez sur Create index pattern (Créer un schéma d'index).

    Sélection de l&#39;horodatage dans Kibana.

  7. Cliquez sur Discover (Découvrir).

    Option &quot;Discover&quot; (Découvrir) dans Kibana.

  8. Assurez-vous que le schéma d'index logstash-* est sélectionné.

    Sélection de l&#39;index dans Kibana.

  9. Vous pouvez maintenant visualiser les données ingérées. Découvrez ce que vous pouvez faire avec Kibana en utilisant, par exemple, Logs, qui peut mettre en corrélation les journaux et les métriques.

    Par exemple, ajoutez l'index logstash-* à la liste de schémas séparés par une virgule, comme illustré dans la capture d'écran suivante.

    Visualisation des données dans Kibana.

Étapes suivantes avec Logstash

Inscrivez-vous pour regarder la vidéo du webinaire Getting Started with Logstash (Premiers pas avec Logstash). Celle-ci explique l'histoire de Logstash, son architecture, ainsi que la manière dont il met en page les fichiers importants, configure les pipelines avec des filtres, et utilise des techniques de transformation et d'enrichissement de données.

Étapes suivantes