2017-03-17 64 views
0

我有以下的JSON語法如何使用logstash變異或紅寶石濾波

{"result": { 
    "entities": { 
     "SERVICE-CCC89FB0A922657A": "service1", 
     "SERVICE-D279F46CD751424F": "service2", 
     "SERVICE-7AB760E70FCDCA18": "service3", 
    }, 
    "dataPoints": { 
     "SERVICE-CCC89FB0A922657A": [ 
      [ 
       1489734240000, 
       1101.0 
      ], 
      [ 
       1489734300000, 
       null 
      ] 
     ], 
     "SERVICE-7AB760E70FCDCA18": [ 
      [ 
       1489734240000, 
       4080800.5470588235 
      ], 
      [ 
       1489734300000, 
       null 
      ] 
     ], 
     "SERVICE-D279F46CD751424F": [ 
      [ 
       1489734240000, 
       26677.695652173912 
      ], 
      [ 
       1489734300000, 
       null 
      ] 
     ] 
    } 
}, 
"@timestamp": "2017-03-17T07:05:37.531Z", 
"data": "data", 
"@version": "1" 
} 

我想改變下列輸入它elasticsearch。

{"@timestamp": "2017-03-17T07:05:37.531Z", 
"data": "data", 
"@version": "1", 
    "data" : { 
     "service1",: [ 
      [ 
       1489734240000, 
       1101.0 
      ], 
      [ 
       1489734300000, 
       null 
      ] 
     ], 
     "service3" : [ 
      [ 
       1489734240000, 
       4080800.5470588235 
      ], 
      [ 
       1489734300000, 
       null 
      ] 
     ], 
     "service2": [ 
      [ 
       1489734240000, 
       26677.695652173912 
      ], 
      [ 
       1489734300000, 
       null 
      ] 
     ] 
    } 
} 

這是當前logstash conf文件的內容。

input { 
    http_poller { 
     urls => { 
      test => { 
       method => get 
       url => "https://xxxx.com" 
       headers => { 
        Accept => "application/json" 
       } 
      } 
     } 
     request_timeout => 60 
     schedule => { every => "60s" } 
     codec => "plain" 
    } 
} 

filter { 
    json{ 
     source => "message" 
     remove_field => ["[result][aggregationType]","message"] 
    } 

# translate{ 
# } 

# mutate{ 
# } 

# ruby{ 
# } 

} 

output { 
    stdout { 
     codec => rubydebug { 
     #metadata => true 
     } 
    } 
    elasticsearch { 
     hosts => ["http://192.168.0.36:9200"] 
    } 
} 

我剛剛使用elasticsearch,我不知道如何實現什麼過濾器使用。 我不知道是否有可能實現mutate過濾器重命名的內容。 或者我應該用ruby過濾器實現代碼嗎?

實體可能會與ruby過濾器一起排列,以匹配dataPoints的SERVICE- *。 但是,很難處理Ruby代碼。

我希望你能幫助我。

謝謝。

回答

0
+0

感謝您的答覆這個問題。 我多次查找了logstash過濾器文檔頁面以找到我想要的答案,並且在Google上做了幾十次搜索,但是我發現很難找到我想要的答案。 文檔頁面只有基本用法,所以實現我想要的功能並不容易。 –