現(xiàn)象
今天寫好logstash后(kafka-》 logstash -》kafka )湃缎,本地測(cè)試OK后枪萄,上線后决侈,瘋狂重啟词渤,錯(cuò)誤日志如下(沒(méi)有什么用):
An exception happened when converging configuration {:exception=>LogStash::Error, :message=>"Don't know how to handle `Java::JavaLang::NullPointerException` for `LogStash::PipelineAction::Create/pipeline_id:main`"
使用版本
os:Centos 6.x
logstash:6.0.0
排查
- google看到github已經(jīng)有這個(gè)issue了牵舱,地址issue。大概意思這個(gè)報(bào)錯(cuò)不太細(xì)致缺虐,會(huì)有改進(jìn)芜壁。具體改進(jìn)信息是在這里。我看到6.x都包括高氮,以為是6.0.0會(huì)修復(fù)慧妄,但重新下載6.0.0沒(méi)有解決,才點(diǎn)開(kāi)commit id發(fā)現(xiàn)是6.2以上剪芍。
2.使用6.0.1測(cè)試塞淹,發(fā)現(xiàn)有定位錯(cuò)誤的信息,打開(kāi)代碼查看對(duì)應(yīng)行錯(cuò)誤罪裹,才知道logstash 6.x不支持以下語(yǔ)法:
# 判斷tag數(shù)組是空
if [tag] == [] {
# your code
}
結(jié)論
1.使用前要用和生產(chǎn)環(huán)境一致版本的logstash進(jìn)行測(cè)試饱普,以免有時(shí)候想當(dāng)然不用測(cè)試,導(dǎo)致不可用坊谁;
- 6.x版本的logstash好像確實(shí)有bug费彼,之前有同事使用6.4.x也發(fā)現(xiàn)錯(cuò)誤,建議沒(méi)有新的功能口芍,建議使用logstash5.x的