背景
今天在使用logstash收集日志存儲到mongodb的安裝過程遇到了個錯誤,記錄下來,錯誤就是下面這樣:

配置文件很簡單,由於是測試環境,命令行傳入日志輸入由ruby過濾一下內容,轉換一個time屬性的字符串日期為ISODate。
input {
stdin { }
}
filter {
ruby {
path => "/usr/local/etc/logstash/parse_json_records.rb"
}
date {
match => [ "time", "yyyy-MM-dd HH:mm:ss,SSS" ]
locale => "Asia/Shanghai"
timezone => "Asia/Shanghai"
target => "ctime"
}
mutate {
remove_field => ["@timestamp", "@version"]
}
}
output {
mongodb {
collection => "ACTION"
generateId => "true"
database => "evo-rcs"
uri => "mongodb://172.31.254.239:27017"
}
stdout { codec => rubydebug }
}
所以啟動時指定配置文件,問題肯定不在這。
安裝插件過程
logstash想把數據存儲到mongodb中需要先安裝插件
➜ logstash logstash-plugin install logstash-output-mongodb
Validating logstash-output-mongodb
Installing logstash-output-mongodb
Installation successful
我們看下當前插件的版本
logstash-plugin list --verbose
...
logstash-output-mongodb (3.1.6)
...
Google一下,看到Github作者回復,原來是個版本問題。。。需要切換到3.1.5,那我來試試看。
之前是通過默認不指定版本的安裝,現在需要指定版本:
➜ logstash logstash-plugin install --version=3.1.5 logstash-output-mongodb
Validating logstash-output-mongodb-3.1.5
Installing logstash-output-mongodb
Installation successful
安裝完之后再重啟啟動:

就一點問題都沒有了。
問題很小,但是很煩人呢。
