Logstash Google Pubsub输入插件加载失败及VM无法拉取消息问题咨询
插件随机加载失败解决方案
报错核心原因是logstash-input-google_pubsub插件依赖的google-cloud-pubsub:1.37.1 jar包未成功下载,随机出现的问题本质是动态安装插件时的网络波动导致依赖拉取不全,对应解决方法如下:
- 构建Docker镜像阶段就完成插件安装,禁止容器启动时动态安装插件。插件安装完成后手动执行
lock_jars命令将所有依赖jar包固化到本地,避免每次运行重新拉取依赖。 - 如果业务要求必须在容器启动时安装插件,需要将谷歌Maven仓库、Maven中央仓库域名加入代理白名单,同时给插件安装命令添加3~5次重试逻辑,规避单次网络请求失败导致的安装不完整问题。
- 你可以提前把完整安装完插件的Logstash目录打包成离线包,部署时直接解压使用,完全避免动态拉取依赖的不稳定问题。
VM无法拉取Pub/Sub消息排查
防火墙拦截是可能性最高的原因,你可以按以下顺序排查:
- 首先核查VM的出站安全规则,是否开放了443端口的访问权限,Pub/Sub的所有API请求都走HTTPS 443端口,如果出站443被拦截会直接导致无法拉取消息。
- 其次确认VM使用的服务账号权限,是否被授予了
roles/pubsub.subscriber角色,本地运行时你大概率用的是个人有权限的账号,而VM绑定的服务账号可能缺少对应权限。 - 最后核查VM的代理配置,是否存在
pubsub.googleapis.com域名的请求被转发到了不可用的代理节点的情况,你可以在VM上手动执行curl命令请求Pub/Sub服务接口验证连通性。
内容的提问来源于stack exchange,提问作者raizik
相关产品推荐
相关产品推荐

