Ce tutoriel explique comment utiliser Filebeat pour collecter des données de journal Apache, les filtrer avec Alibaba Cloud Logstash, puis les envoyer vers Alibaba Cloud Elasticsearch pour analyse.
Procédure
Étape 1 : Prérequis
-
Créez une instance Alibaba Cloud Elasticsearch et une instance Logstash. Les deux instances doivent être de la même version et se trouver dans le même Virtual Private Cloud (VPC).
Pour plus d'informations, consultez les rubriques Créer une instance Alibaba Cloud Elasticsearch et Créer une instance Alibaba Cloud Logstash.
-
Activez la création automatique d'index pour votre instance Alibaba Cloud Elasticsearch.
Si votre shipper envoie des données vers Elasticsearch, vous devez activer la création automatique d'index. Pour plus d'informations, consultez la rubrique Configurer les paramètres YML.
-
Créez une instance ECS Alibaba Cloud. Cette instance ECS doit se trouver dans le même VPC que vos instances Elasticsearch et Logstash.
Pour plus d'informations, consultez la rubrique Créer une instance à l'aide de l'assistant.
ImportantBeats prend uniquement en charge les systèmes d'exploitation Alibaba Cloud Linux, Red Hat et CentOS.
Alibaba Cloud Filebeat collecte les journaux uniquement depuis les serveurs ECS situés dans la même région et le même VPC que l'instance Alibaba Cloud Elasticsearch ou Logstash. La collecte de journaux depuis Internet public n'est pas prise en charge.
-
Configurez un service httpd sur l'instance ECS.
Pour simplifier l'analyse et la visualisation des journaux, nous vous recommandons de définir le format des journaux Apache au format JSON dans le fichier httpd.conf. Pour plus d'informations, consultez la rubrique Construire manuellement un site e-commerce Magento 2 (Ubuntu). La configuration suivante est utilisée dans l'environnement de test de cette rubrique.
LogFormat "{\"@timestamp\":\"%{%Y-%m-%dT%H:%M:%S%z}t\",\"client_ip\":\"%{X-Forwa rded-For}i\",\"direct_ip\": \"%a\",\"request_time\":%T,\"status\":%>s,\"url\":\"%U%q\",\"method\":\"%m\",\"http_host\":\"%{Host}i\",\"server_ip\":\"%A\",\"http_referer\":\"%{Referer}i\",\"http_user_agent\":\"%{User-agent}i\",\"body_bytes_sent\":\"%B\",\"total_bytes_sent\":\"%O\"}" access_log_json # Comment out the original CustomLog line and replace it with: CustomLog "logs/access_log" access_log_json -
Installez Cloud Assistant et Docker sur l'instance ECS cible.
Pour plus d'informations, consultez les rubriques Installer l'agent Cloud Assistant et Installer et utiliser Docker et Docker Compose.
Étape 2 : Configurer et installer le shipper Filebeat
Connectez-vous à la console Alibaba Cloud Elasticsearch.
-
Accédez à la page Beats Data Shippers.
Dans la barre de navigation supérieure, sélectionnez une région.
Dans le volet de navigation de gauche, cliquez sur Beats Data Shippers.
-
Facultatif :Si vous accédez pour la première fois à la page Beats Data Shippers, consultez les informations affichées dans le message qui apparaît, puis cliquez sur OK pour autoriser le système à créer un rôle lié au service pour votre compte.
RemarqueLorsque Beats collecte des données depuis diverses sources, il dépend du rôle lié au service et des règles spécifiées pour ce rôle. Ne supprimez pas le rôle lié au service, sous peine d'affecter le fonctionnement de Beats. Pour plus d'informations, consultez la rubrique Rôles liés au service Elasticsearch.
Dans la section Create Shipper, cliquez sur ECS Logs.
-
Configurez et installez le shipper.
Pour plus d'informations, consultez les rubriques Collecter les journaux de service ECS à l'aide de Filebeat et Configuration YML du shipper. Cette rubrique utilise la configuration suivante :
Shipper Name :
filebeat-apacheInstallation Version :
6.8.5Shipper Output : Sélectionnez Logstash, spécifiez l'ID de l'instance cible et définissez le port sur
8000.Filebeat File Directory :
/etc/httpd/logs/access_logShipper YML Configuration (filebeat.yml) : Définissez
typesurlog,enabledsurtrueetpathssur/etc/httpd/logs/access_log.
RemarqueLa sortie du shipper doit être définie sur l'ID de l'instance Alibaba Cloud Logstash cible. Vous n'avez pas besoin de spécifier à nouveau la sortie dans la configuration YML.
Le répertoire de fichiers Filebeat doit correspondre au répertoire de votre source de données. Vous devez également activer la collecte des données de journal et configurer le chemin d'accès aux journaux dans la configuration YML.
Cliquez sur Next.
-
Dans l'assistant Install Shipper, sélectionnez l'instance ECS sur laquelle vous souhaitez installer le shipper.
RemarqueSélectionnez l'instance ECS que vous avez préparée lors des prérequis.
-
Démarrez le shipper et vérifiez son état d'installation.
-
Cliquez sur Start.
Une fois le shipper démarré, une boîte de dialogue Start Shipper s'affiche.
Cliquez sur Back to Beats Shippers pour revenir à la page Beats Data Shippers. Dans la section Manage Shippers, consultez le shipper Filebeat que vous avez démarré.
Attendez que l'état Shipper Status passe à Enabled 1/1. Ensuite, dans la colonne Actions, cliquez sur View Instances.
Sur la page View Instances, vérifiez les shippers installés dans la section Installed Shippers. Un statut Normal Heartbeat indique que le shipper est installé.
-
Étape 3 : Configurer le pipeline Logstash
Dans le volet de navigation de gauche de la console Alibaba Cloud Elasticsearch, cliquez sur Logstash Clusters.
Dans la colonne Actions de votre instance Logstash, cliquez sur Manage Pipeline.
Sur la page Pipelines, cliquez sur Create Pipeline.
-
Configurez le pipeline.
Configurez le pipeline à l'aide de l'exemple suivant. Pour plus d'informations sur la configuration d'un pipeline, consultez la rubrique Gérer les pipelines à l'aide de fichiers de configuration.
input { beats { port => 8000 } } filter { json { source => "message" remove_field => ["@version", "prospector", "beat", "source", "input", "offset", "fields", "host", "message"] } } output { elasticsearch { hosts => ["http://es-cn-mp91cbxsm00******.elasticsearch.aliyuncs.com:9200"] user => "elastic" password => "<YOUR_PASSWORD>" index => "<YOUR_INDEX>" } }Paramètre
Description
input
Reçoit les données collectées par Beats.
filter
Filtre les données collectées. Cette configuration utilise le plugin JSON pour décoder les données du message et l'option remove_field pour supprimer les champs spécifiés.
RemarqueLa configuration filter de cette rubrique est fournie à des fins de test uniquement et peut ne pas s'appliquer à tous les scénarios métier. Vous devez adapter la configuration filter à vos besoins métier. Pour plus d'informations sur les plugins filter pris en charge et leur utilisation, consultez la documentation Filter plugins.
output
Envoie les données vers votre instance Alibaba Cloud Elasticsearch. Les paramètres sont décrits ci-dessous :
-
hosts : Remplacez la valeur par l'endpoint de votre instance Alibaba Cloud Elasticsearch. Vous pouvez obtenir l'endpoint depuis la page Informations de base de l'instance. Pour plus d'informations, consultez la rubrique Afficher les informations de base d'une instance.
-
<YOUR_PASSWORD> : Remplacez la valeur par le mot de passe de votre instance Alibaba Cloud Elasticsearch.
-
<YOUR_INDEX> : Remplacez la valeur par le nom d'index souhaité.
-
Étape 4 : Consulter les résultats de la collecte de données
-
Connectez-vous à la console Kibana de votre cluster Elasticsearch.
Pour obtenir des instructions, consultez la rubrique Se connecter à la console Kibana.
RemarqueLes exemples présentés ici utilisent Elasticsearch V6.7.0. Les opérations peuvent varier légèrement selon les versions.
Dans le menu de navigation de gauche, choisissez .
-
Dans la Console, exécutez la commande suivante pour afficher les données collectées.
GET <YOUR_INDEX>/_searchRemarqueRemplacez <YOUR_INDEX> par le nom d'index que vous avez défini dans la section output du pipeline Logstash.
-
Dans le volet de navigation de gauche, cliquez sur Discover. Sélectionnez une plage horaire pour afficher les données collectées.
Par exemple, cliquez sur le sélecteur de temps dans le coin supérieur droit et sélectionnez Last 4 hours. La page affiche le nombre de résultats et les détails des champs de chaque document pour l'index filebeat-212 dans la plage horaire sélectionnée.
RemarqueAvant d'exécuter une requête, assurez-vous qu'un modèle d'index existe pour <YOUR_INDEX>. Si ce n'est pas le cas, accédez à Management dans la console Kibana et, dans la section Kibana, cliquez sur pour en créer un.