2016-08-05 115 views
0

我遵循的基本教程,因爲我在這個新的,和我下面的配置文件:無效的配置文件logstash

input { 
    file { 
    path => "D:\elastic\logstash\data\data.csv" 
    start_position => "beginning"  
    } 
} 
filter { 
    csv { 
     separator => "," 
     columns => ["Date","Open","High","Low","Close","Volume","Adj Close"] 
    } 
    mutate {convert => ["High", "float"]} 
    mutate {convert => ["Open", "float"]} 
    mutate {convert => ["Low", "float"]} 
    mutate {convert => ["Close", "float"]} 
    mutate {convert => ["Volume", "float"]} 
} 
output { 
    elasticsearch { 
     action => "index" 
     host => "localhost" 
     index => "stock" 
     workers => 1 
    } 
    stdout {} 
} 

並在終端

然後我執行下面的命令
bin\logstash -f logstash-simple.conf 

而且它打印此:

io/console not supported; tty will not be manipulated 
←[31mfetched an invalid config {:config=>"input { \n file {\n path => \"D:\ 
\elastic\\logstash\\data\\data.csv\"\n start_position => \"beginning\" \n 
}\n}\nfilter { \n csv {\n  separator => \",\"\n  columns => [\"Date\"...... 

並解析該文件的其餘部分。 我錯過了什麼? 它使用UTF-8,並嘗試使用兩種都失敗的EOL UNIX和Windows格式。

回答

1

您需要修改file輸入這樣的:

file { 
    path => "D:\\elastic\\logstash\\data\\data.csv" 
    start_position => "beginning"  
    } 

或類似這樣的

file { 
    path => "D:/elastic/logstash/data/data.csv" 
    start_position => "beginning"  
    } 

而且在你的過濾器,也有在mutate/convert錯別字。他們應該是這樣的(即用=>代替=>):

mutate {convert => ["High", "float"]} 
    mutate {convert => ["Open", "float"]} 
    mutate {convert => ["Low", "float"]} 
    mutate {convert => ["Close", "float"]} 
    mutate {convert => ["Volume", "float"]} 
+0

試過了。沒有工作。同樣在日誌的末尾,它也會這樣說:JVM使用HUP信號並且無法在此平臺上正常工作 – Elsendion

+0

此外''= >'應該改爲'=>'。請修復並重試。 – Val

+0

用=>?替換= > – Elsendion