2016-05-23 3 views
1

Ich versuche, Rails-Protokolle zu einem Kollektor über fluentd senden. Ich benutze die act-fluent-logger-rails, lograge und fluent-plugin-parser gems. Wenn ich auf meiner Site navigiere, werden GET- und POST-Anfragen korrekt abgeglichen, analysiert, markiert und zum Collector geschickt, aber ich kann nichts, was ich während einer Anfrage über Rails.logger protokolliere, durch fluentd weiterleiten, weil die Anweisungen nicht funktionieren Ich habe kein Etikett.Rails.logger Anweisungen haben keine fließenden Tags

Zum Beispiel in der Schienen-Konsole der App:

irb(main):003:0> logger.info("Test")

Ergebnisse in der folgenden in meinem td-agent.log:

2016-05-23 20:01:45 +0000 [warn]: pattern not match with data 'Test' 2016-05-23 20:01:45 +0000 fluent.warn: {"message":"pattern not match with data 'Test'"}

Die entsprechende Konfiguration:

/etc/td-agent/td-agent.conf

<match tv.app> 
     @type forward 

     # primary host 
     <server> 
     host 10.0.0.0 
     port 24224 
     </server> 

     flush_interval 60s 
    </match> 

    <match rails.app> 
     @type parser 
     key_name messages 
     format json 
     tag tv.app 
    </match> 

config/application.rb

config.logger = ActFluentLoggerRails::Logger. 
      new(settings: { 
       host: '127.0.0.1', 
       port: 24224, 
       tag: 'rails.app', 
       messages_type: 'string' 
      }) 
config.lograge.enabled = true 
config.lograge.formatter = Lograge::Formatters::Json.new 

Wer irgendwelche Ideen, was ich falsch mache?

Antwort

0

Sie haben lograge formatter auf JSON gesetzt, und Ihre fluentd.conf gibt auch JSON an. Ihr Code von der Konsole ist jedoch eine Zeichenfolge.

Haben Sie

logger.info({:test => true}.to_json) 
versucht
Verwandte Themen