使用Logstash http_poller插件调用API时遇无效GET URL错误求助
排查Logstash http_poller无效GET URL错误
我来帮你解决这个问题,你遇到的无效GET URL错误核心原因是http_poller输入插件的urls配置格式不符合要求,咱们一步步来修正:
1. 修正urls配置格式
http_poller的urls参数要求是一个命名的嵌套哈希结构——你需要给每个请求设置一个自定义标识(比如example_service_api),然后把method、url等参数放在这个标识对应的内层哈希里。你原来的写法没有这个外层标识,直接把请求参数放在了urls的根层级,导致Logstash无法正确解析URL。
修正后的完整input配置如下:
input { http_poller { urls => { # 这里自定义一个请求标识,名称可以随便取 "example_service_api" => { method => "GET" url => "https://api.example.com/v1/service/" } } request_timeout => 60 schedule => { cron => "0 * * * *"} codec => "json" metadata_target => "http_poller_metadata" } }
2. 额外排查要点
如果修正格式后还是报错,你可以再检查这几点:
- 直接在Logstash服务器上用
curl命令测试API是否能正常返回数据:curl https://api.example.com/v1/service/,确认URL拼写正确且网络能连通 - 检查Logstash所在环境是否有防火墙、代理限制,导致无法访问这个公共API
- 确认API返回的是标准JSON格式,避免后续codec解析报错
内容的提问来源于stack exchange,提问作者Roy Rubin




