google-cloud-dataflow - 发布/订阅到 Splunk 数据流模板 - 在此服务器上找不到请求的 URL
问题描述
我正在使用将数据从 pubsub 主题流式传输到 splunk的 Dataflow 模板(我已经尝试过 thelatest
和2020-11-02-00_RC00
of )。Cloud_PubSub_to_Splunk
我已按照文档中的所有步骤进行操作。
我的工作论点是:
JOB_NAME=pubsub-to-splunk-$USER-`date +"%Y%m%d-%H%M%S%z"`
gcloud dataflow jobs run $JOB_NAME \
--subnetwork=https://www.googleapis.com/compute/v1/projects/<PROJECT>/regions/us-central1/subnetworks/<NAME> \
--gcs-location gs://dataflow-templates/2020-11-02-00_RC00/Cloud_PubSub_to_Splunk \
--max-workers 2 \
--parameters=inputSubscription="projects/<PROJECT>/subscriptions/logs-export-subscription",token="<TOKEN>",url="https://<URL>:8088/services/collector/event",outputDeadletterTopic="projects/<PROJECT>/topics/splunk-pubsub-deadletter",batchCount="10",parallelism="8",disableCertificateValidation=true
我可以成功启动 Dataflow 作业并开始流式传输,并且可以从我logs-export-subscription
的下降中看到未确认的消息计数,但是在写入 Splunk 时作业失败,并出现以下错误:
写入 Splunk 时出错。StatusCode:404,内容:{“text”:“在此服务器上找不到请求的URL。”,“code”:404},StatusMessage:未找到
在进行故障排除时,我可以成功地从 Dataflow 工作线程所在的同一子网向 Splunk 端点发送请求。
curl -k https://<URL>:8088/services/collector/event -H "Authorization: Splunk <HEC TOKEN>" -d '{"event": {"field1": "hello", "field2": "world"}}'
{"text":"Success","code":0}
因此,我不认为这是错误消息所暗示的连接或 url 问题。
当我删除-d
键和值时,我可以用 curl 重现失败。
curl -k https://<IP>:8088/services/collector/event -H "Authorization: Splunk <TOKEN>"
{"text":"The requested URL was not found on this server.","code":404}
知道可能导致此问题的原因是什么吗?
解决方案
Splunk HEC URL
应该提供的应该只是https://[IP]:8088
,而不是完整路径https://[IP]:8088/services/collector/event
,因为路径是由谷歌库附加的。
推荐阅读
- python - 如何遍历不同的标签名称(h3)并使用 selenium 和 python 比较它们的文本?
- reactjs - 托管具有实时更新支持的 ReactApp 的最佳方式
- javascript - 将元素移动到其父元素的底部时出现问题
- mysql - 如何在 WHERE 子句中使用 GREATER THAN / LESS THEN 作为动态参数?
- css - 使用border-radius时排除边框
- android - 如何移动到下一个 NavHostFragment?
- html - 我正在尝试使我的图形元素(作为链接工作)是内联的,但我没有尝试过
- css - pseduo-backround image::after in CSS for full HTML body 向下滚动时不会重复
- flutter - 将 If/Else 与 Timer Flutter 一起使用
- c++ - 有什么办法可以改进DPDK的acl lib