现象
今天写好logstash后(kafka-》 logstash -》kafka ),本地测试OK后,上线后,疯狂重启,错误日志如下(没有什么用):
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已经有这个issue了,地址issue。大概意思这个报错不太细致,会有改进。具体改进信息是在这里。我看到6.x都包括,以为是6.0.0会修复,但重新下载6.0.0没有解决,才点开commit id发现是6.2以上。
2.使用6.0.1测试,发现有定位错误的信息,打开代码查看对应行错误,才知道logstash 6.x不支持以下语法:
# 判断tag数组是空
if [tag] == [] {
# your code
}
结论
1.使用前要用和生产环境一致版本的logstash进行测试,以免有时候想当然不用测试,导致不可用;
- 6.x版本的logstash好像确实有bug,之前有同事使用6.4.x也发现错误,建议没有新的功能,建议使用logstash5.x的
网友评论