J'ai configuré la pile élastique (Logstash + Elastic search + Kibana) avec filebeat. Donc, ma question est que j'ai plusieurs serveurs où j'ai déployé mes instances d'application (applications Microservices). Je veux capturer des logs de tous les serveurs mais pour cela je dois installer filebeat dans chaque serveur. Est-ce la bonne compréhension? ou Pouvons-nous configurer quelque chose comme cette instance de fichier unique capable d'extraire les journaux de tous les serveurs (les serveurs peuvent être le même réseau) et d'envoyer des journaux via TCP ou n'importe quel protocole?Filebeat - Configuration d'instance de serveur multiple
Répondre
Oui, vous devrez déployer le fichier sur tous les serveurs à partir desquels vous souhaitez supprimer les journaux.
Une autre option consiste à configurer votre logstash pour écouter sur un port TCP, puis configurer vos applications pour se connecter à un socket au lieu d'un fichier.
input {
tcp {
port => 8192
codec => json
tags => [ "micrologs" ]
}
}
Ceci met en place un écouteur sur la boîte Logstash sur le port 8192. journaux arrivent un à la fois, avec une connexion à chaque fois, au format JSON.
input {
tcp {
port => 8192
codec => json_lines
tags => [ "micrologs" ]
}
}
Cela fait la même chose, sauf que la connexion est persistante, et le codec json_lines
est utilisé pour briser log-événements basés sur les lignes de JSON à la connexion entrante.
Vous ne devez pas utiliser json
ici, ce peut être du texte brut si vous en avez besoin. J'ai utilisé JSON comme exemple de journal structuré.