2016-09-21 10 views
0

私はlogstashに書き込むためにpython-logstashを使用しています。余分なフィールドを追加するオプションがありますが、問題はすべてのフィールドがmessageフィールドの下にあることです。私が達成したいのは、より高いレベルで新しいフィールドを追加することです。logstash/kibanaにカスタムフィールドを追加するにはどうすればよいですか?

私はlogstash.configから(ruby/grok/mutateプラグインを使用して)それを行うためのオプションが見つかりましたが、このソリューションは、スケーラブルなものではありません(すべてのマシンインスタンス用に設定する必要があります)などの

何か:

logger.info('my message') 

そしてKibanaに私が表示されます。

{ 
'@timestamp': ... 
... 
... 
'message': 'my message' 
'new_field' : 'new_field_value' 
} 

はどのように私はそれを行うのですか?

ありがとうございました。

答えて

0

python-logstashのドキュメントを読んでから、「余分な」フィールドを参照し、「logstashメッセージに余分なフィールドを追加する」と言います。その後、

# add extra field to logstash message 
extra = { 
    'test_string': 'python version: ' + repr(sys.version_info), 
    'test_boolean': True, 
    'test_dict': {'a': 1, 'b': 'c'}, 
    'test_float': 1.23, 
    'test_integer': 123, 
    'test_list': [1, 2, '3'], 
} 
test_logger.info('python-logstash: test extra fields', extra=extra) 

そして、あなたはこのようなlogstash入力ブロック内の「JSON」コーデックを持っていることを確認してください。

input { 
    udp { 
    port => 5959 
    codec => json 
    } 
} 

EDIT: 私はサンプルスクリプトでこれをテストして、次のLogstashを取得出力:

{ 
      "host" => "xxx", 
      "path" => "pylog.py", 
     "test_float" => 1.23, 
      "type" => "logstash", 
      "tags" => [], 
     "test_list" => [ 
     [0] 1, 
     [1] 2, 
     [2] "3" 
    ], 
    "test_boolean" => true, 
      "level" => "INFO", 
     "stack_info" => nil, 
     "message" => "python-logstash: test extra fields", 
     "@timestamp" => "2016-09-25T15:23:58.259Z", 
     "test_dict" => { 
     "a" => 1, 
     "b" => "c" 
    }, 
    "test_string" => "python version: sys.version_info(major=3, minor=5, micro=1, releaselevel='final', serial=0)", 
     "@version" => "1", 
    "test_integer" => 123, 
    "logger_name" => "python-logstash-logger" 
} 

追加されたすべての追加フィールドは、メッセージフィールドと同じレベルで表示されます。それらは 'メッセージ'内部オブジェクトに追加されません。

+0

いいえ、 'メッセージ'内部オブジェクトに追加されます。 – TunaSalad

+0

私はそれを「メッセージ」のようなフィールドにしたい。 – TunaSalad

+0

私の記事を「余分な」フィールドの例で更新しました。余分なフィールドは 'message'内部オブジェクトに追加されません。彼らは自分のフィールドです。 – fylie

関連する問題