簡體   English   中英

如何在logstash / kibana中添加自定義字段?

[英]How do I add a custom field to logstash/kibana?

我正在使用python-logstash來寫入logstash。 它提供了添加其他字段的選項,但問題是所有字段都在message字段下。 我要完成的工作是在更高級別上添加一個新字段。

我從logstash.config (使用ruby / grok / mutate插件)中找到了執行此操作的選項,但是此解決方案不是可擴展的解決方案(必須為每個計算機實例進行配置)

就像是:

logger.info('my message')

在基巴納,我將看到:

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

我怎么做?

謝謝。

通過閱讀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
  }
}

編輯 :我用示例腳本對此進行了測試,並獲得以下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"
}

添加的所有其他字段都與消息字段顯示在同一級別。 它們不會添加到“消息”內部對象中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM