#google-cloud-dataflow #google-cloud-pubsub #splunk
#google-cloud-dataflow #google-cloud-pubsub #splunk
Вопрос:
Я использую шаблон потока данных (я пробовал как latest
и 2020-11-02-00_RC00
Cloud_PubSub_to_Splunk
), который передает данные из раздела pubsub в splunk. Я выполнил все шаги из документации.
Мои аргументы job были:
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
Я могу успешно запустить задание потока данных, и начнется потоковая передача, и я вижу количество нераспакованных сообщений с момента моего logs-export-subscription
перехода, однако задание завершается неудачно при записи в Splunk со следующей ошибкой:
Ошибка записи в Splunk. StatusCode: 404, content: {«text»:»Запрошенный URL-адрес не найден на этом сервере.»,»code»: 404}, StatusMessage: Не найден
При устранении неполадок я могу успешно отправить запрос на конечную точку 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, как следует из сообщения об ошибке.
Я могу воспроизвести сбой с помощью curl при удалении -d
ключа и значения.
curl -k https://<IP>:8088/services/collector/event -H "Authorization: Splunk <TOKEN>"
{"text":"The requested URL was not found on this server.","code":404}
Есть идеи, что может быть причиной этой проблемы?
Комментарии:
1. На самом деле, похоже, что Google
com.google.cloud.teleport.splunk.HttpEventPublisher
добавляет путьservices/collector/event
к IP и ПОРТУ.. Документы были запрошеныyour-splunk-hec-url
, и поэтому я подумал, что для этого требуется полный путь.2. Можете ли вы проверить свои
custom.googleapis.com/dataflow/outbound-successful-events
показатели в обозревателе показателей и поделиться ими? Кроме того, создали ли вы свою сеть VPC и правила брандмауэра, подобные описанным здесь ?3. да, теперь я получаю успешные события, указанные
outbound-successful-events
… Я могу подтвердить, что проблема былаurl="https://<URL>:8088/services/collector/event"
противurl="https://<URL>:8088
4. Хорошо ! Это задокументировано здесь]( cloud.google.com/dataflow/docs/guides /… ), когда вы используете общий VPC, вы должны использовать полный URL-адрес. Чтобы внести дальнейший вклад в сообщество, я опубликую ответ в качестве вики сообщества, хорошо?
5. Исправление не было URL подсети. Он настраивал полный URL-адрес splunk только на IP-адрес splunk и порт
Ответ №1:
То Splunk HEC URL
, что должно быть указано, должно быть только https://[IP]:8088
, а НЕ полным путем https://[IP]:8088/services/collector/event
, поскольку путь добавляется библиотекой Google.
Ответ №2:
Спасибо, что сообщили об этом. Мы обновили документы с помощью примера, чтобы уточнить этот параметр. В частности, url
параметр шаблона Splunk HEC выглядит следующим образом:
<protocol>://<host>:<port>
Например: https://splunk-hec.example.com:8088
.
Хост — это ПОЛНОЕ ДОМЕННОЕ имя (или IP) либо экземпляра Splunk, на котором выполняется HEC (в случае одного экземпляра HEC), либо HTTP (ов) Балансировщик нагрузки перед уровнем HEC (в случае установки распределенного HEC).
Вы не указали полный путь к конечной точке HEC. Шаблон Splunk Dataflow в настоящее время поддерживает только конечную точку объекта HEC JSON (т.Е. services/collector/event
), и он автоматически добавляет его в исходящие HTTP-запросы.
Кроме того, для более глубокого погружения обязательно ознакомьтесь с этими новыми ресурсами:
-
Развертывание готового к работе экспорта журналов в Splunk с использованием потока данных: в этом руководстве приведены рекомендации по безопасности, а также рекомендации по планированию пропускной способности конвейера Splunk Dataflow и по обработке потенциальных сбоев доставки, чтобы избежать потери данных. потеря данных.
-
Документация по продукту Dataflow: для получения последних подробных сведений о параметрах шаблона Splunk Dataflow.