ELK技术栈Logstash运行报错求助:配置加载失败与语法错误问题
问题1:直接执行logstash.bat报No configuration found in the configured sources错误
原因:
- 你同时在Logstash主配置文件(你提到的
logstash.conf应该是logstash.yml,这是Logstash 7.x默认的主配置文件名,后缀为.yml而非.conf,如果确实命名错误请先修正文件名)和pipelines.yml中都配置了path.config指向同一个pipeline配置文件,触发了配置加载优先级冲突,导致配置源识别失败。 - 也可能存在YAML缩进错误:
pipelines.yml对缩进要求严格,path.config前需要和同层级的pipeline.id保持2个空格的缩进,缩进错误会导致配置无法被正确解析。
解决方案:
二选一即可,不要同时配置两边的路径:
- 方案1:注释掉
logstash.yml中的path.config配置,仅保留pipelines.yml中的pipeline定义 - 方案2:清空
pipelines.yml中的自定义pipeline配置,仅保留logstash.yml中的path.config配置
配置修改完成后,确认路径拼写完全正确、配置文件有可读权限后再启动。
问题2:加-f参数指定配置文件启动报LogStash::ConfigurationError语法错误
原因:
错误日志已经明确指向语法错误位置:你的logstash-sample.conf第13行第37列,csv过滤器的columns数组定义存在语法问题。常见问题包括:
columns数组没有写右闭合括号]- 数组最后一个元素后多了多余的逗号
- 列名字符串的引号没有配对
csv过滤器没有写右闭合大括号}
解决方案:
打开logstash-sample.conf,定位到第13行的csv配置段,修正语法即可。参考正确写法:
filter { csv { separator => "," columns => ["ip","date","time","zone","后续其他列名"] } }
注:启动日志中的
Ignoring the 'pipelines.yml' file警告属于正常现象,使用-f参数指定配置文件时,Logstash会默认忽略pipelines.yml的配置。
内容的提问来源于stack exchange,提问作者Johnny Cash Cow
相关产品推荐
相关产品推荐

