Logstash无法收集数据求助:附教程配置文件及尝试情况
Logstash无法收集stdin数据到Elasticsearch的排查方案
基础服务校验
- 先确认Elasticsearch是否正常运行:在终端执行
curl -u elastic:password http://localhost:9200,能返回ES节点信息才算正常。如果报错,先解决ES的启动或认证问题。 - 启动Logstash时加调试参数:执行
./bin/logstash -f 你的配置文件名.conf --debug,盯着控制台看有没有报错,比如认证失败、连接超时这类直接提示。
配置规范修正
你的配置存在缩进不统一的问题,虽然Logstash对缩进要求不算严苛,但规范格式能避免潜在的解析问题,修正后配置如下:
input { stdin { } } output { elasticsearch { hosts => "localhost:9200" index => "indexforlogstash" user => "elastic" password => "password" } }
- 若你用的是7.x及以上版本的Logstash,可尝试把
hosts改成数组格式:hosts => ["localhost:9200"],部分场景下兼容性更好。
链路测试
- 启动Logstash后,直接在控制台输入一行测试文本(比如
test log 2024),然后立刻去Elasticsearch查询索引:curl -u elastic:password http://localhost:9200/indexforlogstash/_search?q=*,看是否能查到刚才输入的数据。 - 如果输入后Logstash报
401 Unauthorized,说明elastic用户密码不对,核对ES的密码配置;如果是连接超时,检查ES端口是否正确、本地防火墙是否拦截了9200端口。
日志排查
- 查看Logstash的日志文件(默认路径是
logs/logstash-plain.log),里面会有详细的错误堆栈,能精准定位问题,比如插件加载失败、目录权限不足等。 - 确认Logstash和Elasticsearch的版本是否匹配,跨大版本(比如Logstash 8.x连接ES 7.x)可能存在兼容性问题,尽量保持版本一致。
内容的提问来源于stack exchange,提问作者Carl489327489
相关产品推荐
相关产品推荐

