2017-06-26 1 views
0

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

0

Oui, vous devrez déployer le fichier sur tous les serveurs à partir desquels vous souhaitez supprimer les journaux.

0

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é.