首页 > 解决方案 > 发布/订阅到 Splunk 数据流模板 - 在此服务器上找不到请求的 URL

问题描述

我正在使用将数据从 pubsub 主题流式传输到 splunk的 Dataflow 模板(我已经尝试过 thelatest2020-11-02-00_RC00of )。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}

知道可能导致此问题的原因是什么吗?

标签: google-cloud-dataflowgoogle-cloud-pubsubsplunk

解决方案


Splunk HEC URL应该提供的应该只是https://[IP]:8088,而不是完整路径https://[IP]:8088/services/collector/event,因为路径是由谷歌库附加的。


推荐阅读