2017-01-20 2 views
1

Ich versuche derzeit, ein System von Forwarder und Aggregator Instanzen von fluentd einzurichten. Mein Spediteur config ->fluentd Aggregator keine Protokolle von Forwarder erhalten, ist die Konfig korrekt?

<source> 
    @type tail 
    format json 
    path /app/node-apps/something-fe/logs/itt-logs.log 
    tag td.pm2.access 
</source> 

## File output 
## match tag=local.** and write to file 
<match td.pm2.*> 
    @type file 
    path /opt/td-agent/forward/log/fluentd.log 
</match> 

## Forwarding 
## match tag=system.** and forward to another td-agent server 
<match td.pm2.*> 
    @type forward 
    host <hostname>.bc 

dies tun kann ich das t sehen Spediteur Protokolldateien im Speditions Standort ausgibt hier: /opt/td-agent/forward/log/fluentd.log Alles gut so weit!!! Aber wenn ich versuche, dies im Aggregator über die oben genannten Match-Forward-Syntax zu importieren, bekomme ich nichts in den Aggregator-Maschinen. Bitte finden teh Aggregator Config für fluentd hier, dass ich verwende ->

<source> 
    @type forward 
     port 24224 
</source> 

<match td.pm2.*> 
    type copy 
    <store> 
    @type file 
    path /opt/td-agent/log/forward.log 
    </store> 
    <store> 
    type elasticsearch 
    host <aggreatorhost>.bc 
    port 9200 
    logstash_format true 
    flush_interval 10s 
    </store> 
</match> 

ich einen Speicher zu verwenden, versuchen die Protokolle dort zu kopieren und sie auch Elasticsearch weiterleiten. Vergiss ElasticSearch insgesamt, scheint es, dass sogar die Logs nicht vom Forwarder zum Aggregator bevölkert werden. Mache ich etwas falsch? Die Aggregator-Protokolle geben an, dass sie alle Adressen auf Port 24224 abgehört.

Antwort

0

Auf Ihrem Forwarder haben Sie zwei identische Übereinstimmungsmuster und nur die erste Übereinstimmung wird ausgeführt (die Konfiguration wird von oben nach unten ausgeführt). Die Protokolle werden in das Dateisystem (/opt/td-agent/forward/log/fluentd.log) geschrieben, aber nicht an den Aggregator weitergeleitet.

Sie haben tatsächlich verwendet die richtige Kopie Syntax auf den Aggregator, die Sie in Ihren Absender kopieren soll und die Elasticsearch mit dem @forward config Aggregator

<match td.pm2.*> 
    type copy 
    <store> 
    @type file 
    path /opt/td-agent/log/forward.log 
    </store> 
    <store> 
    @type forward 
    host <hostname>.bc 
    </store> 
</match> 

Weiterführende Literatur ersetzen: http://docs.fluentd.org/articles/out_copy

+0

Es geholfen, Danke, jetzt kann ich sehen, dass die Protokolle an fluentd weitergeleitet werden. Aber ich habe den Eingabe-Log-Parser im JSON-Format eingefügt. Aber es scheint, dass fluentd die json-Nachricht abschneidet, wenn sie es speichert/überträgt. Irgendeine Idee dazu? – Mainak90

+0

Es sei denn, Sie haben auch eine Filteraktion in Ihrer fluentd-Konfiguration, es sollte keinen Teil Ihrer Nachricht abschneiden/löschen. –