Getting Data In
Highlighted

curlでのデータ入力について。

Engager

現在Splunk6.0.2に対して、curlコマンドで直接JSONデータを入力できないかと試しています。
TCP:10000をtcp-rawポートに設定しています。

curl -X POST -d 'json={"tag":"value"}' http://[splunkserver]:10000

のコマンドを外部サーバで実行すると、応答がなくCtrl + Cで終了させる必要がありました。
一方でSplunk側では

POST / HTTP/1.1
User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.12.9.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2
Host: [SplunkサーバIP]:10000
Accept: /
Content-Length: 20
Content-Type: application/x-www-form-urlencoded
json={"tag":"value"}

のイベントがhost=[外部サーバホスト名]、source=tcp:10000、sourcetype=tcp-rawで認識されています。
目的としてはjson部分のみSplunkで認識されればいいのですが、そもそもcurlコマンドを使う方法で上6行のヘッダを除去することはできますか?

以上です。
アドバイスよろしくお願いいたします。

Highlighted

Re: curlでのデータ入力について。

Motivator

HTTPで投げられてるので、HeaderもそのままIndexしてしまいますね。
HeaderをIndexしないようにprops.confとtransforms.confで制御するなどの必要があります。
もし、単純にテストでJSON形式のデータをSplunkに投げつけたいということであれば、
以下が単純でいいかと思いますが、いかがでしょうか。

$ echo "{\"tag1\":\"value1\", \"tag2\":\"value2\"}" | nc Splunk 10000

View solution in original post

Highlighted

Re: curlでのデータ入力について。

Engager

返答が遅れてしまい申し訳ありません。

HTTPで投げられてるので、HeaderもそのままIndexしてしまいますね。
HeaderをIndexしないようにprops.confとtransforms.confで制御するなどの必要があります。

Splunkのポートが単なるTCP用であること、curlコマンドがHTTP用であることを意識していませんでした。
設定ファイルの記述を検討したいと思います。

もし、単純にテストでJSON形式のデータをSplunkに投げつけたいということであれば、
以下が単純でいいかと思いますが、いかがでしょうか。

$ echo "{"tag1":"value1", "tag2":"value2"}" | nc Splunk 10000

今回の目的はこちらのイメージでした。
ただ、環境上netcatが許可されるかということもあり、標準で入っているcurlで出来れば、ということでした。

ご回答、ありがとうございました。

0 Karma