Logging

欄位類型在 Kibana/Elasticsearch 中不受歡迎

  • April 28, 2016

我正在為 Java 應用程序使用 logstash 外掛,使用 logback 將日誌轉發到我的 logstash 伺服器。我已經設置了一個過濾器定義如下:

input {
 tcp {
   port => 2856
   codec => json_lines
 }
}

filter {
 mutate {
   convert => {
     "tenantId" => "integer"
     "userId" => "integer"
   }
 }
}

使用以下配置將日誌轉發到 Elasticsearch:

output {
 elasticsearch {
   hosts => ["127.0.0.1:9200"]
   user => "user"
   password => "secure"
 }
}

索引只是進入 logstash-,當我檢查 Elasticsearch 中的映射時,我看到以下內容:

 "logstash-2016.04.25" : {
     "mappings" : {
        "logs" : {
           "_all" : {
              "omit_norms" : true,
              "enabled" : true
           },
           "properties" : {
              ...
              "userId" : {
                 "type" : "long"
              },
              "tenantId" : {
                 "type" : "long"
              },
              ...
           }
        }
     }
  }

所以我可以看到這些欄位被設置為適當的類型,但是當我檢查 Kibana 時,它們既沒有被分析也沒有被定義為長值。我錯過了什麼?

假設這些是給定索引中的新欄位,您需要告訴 Kibana刷新它的欄位列表。

重新載入索引欄位列表

添加索引映射時,Kibana 會自動掃描與模式匹配的索引以顯示索引欄位列表。您可以重新載入索引欄位列表以獲取任何新添加的欄位。

重新載入索引欄位列表還會重置 Kibana 的欄位流行度計數器。流行度計數器跟踪您在 Kibana 中最常使用的欄位,並用於對列表中的欄位進行排序。

要重新載入索引欄位列表:

  1. 轉到設置 > 索引選項卡。
  2. 從索引模式列表中選擇一個索引模式。
  3. 點擊模式的重新載入按鈕。

引用自:https://serverfault.com/questions/772777