2

仮想マシンにELKスタックをインストールしました。いくつかのRuby on Railsアプリケーションからログを収集したいと思います。私はこの設定でFilebeatをインストールしたRailsアプリケーションを持って、各VM上ELKスタック+ Railsログを収集するためのFilebeat

:VM上で

filebeat: 
    prospectors: 
    - 
     paths: 
     - path_to_rails_log_file.log 
     input_type: log 
     fields_under_root: true 
     fields: 
     tags: ['json'] 

output: 
    logstash: 
    hosts: ["192.168.1.232:5044"] 
    bulk_max_size: 1024 
    tls: 
     certificate_authorities: ["path_to_certificate.crt"] 

shipper: 
logging: 
    files: 
    rotateeverybytes: 10485760 # = 10MB 

ELKスタックと私はこの02-beats-input.conf持っている:

input { 
    beats { 
    port => 5044 
    ssl => true 
    ssl_certificate => "/etc/pki/tls/certs/filebeat-forwarder.crt" 
    ssl_key => "/etc/pki/tls/private/filebeat-forwarder.key" 
    } 
} 

filter { 
if [tag][json] { 
    json { 
    source => "message" 
    } 
} 
} 
output { 
elasticsearch { 
    hosts => "localhost:9200" 
    manage_template => false 
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" 
    document_type => "%{[@metadata][type]}" 
} 
} 

を私は理解していませんなぜ木場のウェブインターフェイスで私のログは次のようになります:

message: {"method":"GET","path":"/","format":"html","controller":"application","action":"index","status":200, "duration":7.91,"view":0.31,"db":0.0,"ip":"req_ip","route":"application#index","request_id":"some_id","source":"127.0.1.1","tags":["request"],"@timestamp":"2017-02-10T06:52:01.984Z","@version":"1"} @version:1 @timestamp:February 10th 2017, 08:52:10.451 offset:25,747 type:log tags:json, beats_input_codec_plain_applied beat.hostname:deployer-VirtualBox 

私はliです可能であれば、各エントリはこのキーなしでキー "メッセージ"の下にあるコンテンツになる。

私は間違っていますか? :(

P.S.私のRailsのログがJSON形式で、私はFilebeatからそのファイルを読んでいます。Logstashの設定で

答えて

1

あなたはおそらくif [tags][json] {

if [tag][json] {を交換する必要があります
関連する問題