Logstash 错误:在第24行第1列(字节528)的“输入、筛选、输出”后面的“输入、筛选”和“输出”中应有一个

Logstash 错误:在第24行第1列(字节528)的“输入、筛选、输出”后面的“输入、筛选”和“输出”中应有一个,logstash,logstash-configuration,Logstash,Logstash Configuration,我可以运行logstash作为: bin/logstash -f /etc/logstash/conf.d/config.json 但是把logstash当作服务来运行 sudo service logstash start 正在给我以下错误: ... Error: Expected one of #, input, filter, output at line 24, column 1 (byte 528) after "} 不知道我做错了什么?Configtest还表示配置文件没有问题

我可以运行logstash作为:

bin/logstash -f /etc/logstash/conf.d/config.json
但是把logstash当作服务来运行

sudo service logstash start
正在给我以下错误:

... Error: Expected one of #, input, filter, output at line 24, column 1 (byte 528) after "}
不知道我做错了什么?Configtest还表示配置文件没有问题

bin/logstash -f /etc/logstash/conf.d/config.json --configtest
Configuration OK
感谢您的帮助


谢谢。

当logstash运行时,它会将配置目录中的所有文件合并到一个文件中。当出现错误时,您正在将行和位置信息获取到合并配置中

尝试:


然后看第24行或第25行。

这里有人在conf.d目录中留下了一个~.vimrc文件,然后附加到大配置文件中


--configtest可能会忽略该文件,但读取configs时不会忽略。

FYI mine抱怨关于第163行的第1行,而我的组合文件没有那么远。

`input{file{path=>”/var/log/test.log}}filter{multiline{pattern=>“^({TIMESTAMP_ISO8601})”negate=>true what=>“previous”}grok{match=>{“message”=>“(?m)^%{TIMESTAMP_ISO8601:logtime}%{SPACE}%{LOGLEVEL:LOGLEVEL}%{SPACE}%{NUMBER:pid}%{SPACE}-%{SPACE}%{SYSLOG5424SD:threadname}%{SPACE}%{JAVACLASS:classname}%{SPACE SPACE}%{SPACE}%{SPACE SPACE}%{SPACE}%{greeddata:logmessage}{}}输出{hosts=>10.9200:1610.9200}`Error:在第24行第1列(字节506)的“}之后,应为#、输入、筛选、输出中的一个配置文件中只有22行。我不认为logstash正在读取/etc/logstash/conf.d/config.json…如何确认?它将conf.d中的所有文件组合在一起。尝试“cat/etc/logstash/conf.d/*>/tmp/foo”并查看其中。啊,这是有意义的。我放置了一个示例测试日志文件来检查设置。它正在工作。非常感谢莱恩。没有什么比接受他们的答案更能表达“非常感谢”的了:-)+1这是一个多么有用的答案。原来我在同一个目录中有另一个文件,它给我的配置文件引入了不需要的字符。非常感谢@AlainCollins
cat /etc/logstash/conf.d/* > /tmp/total.conf