1

splunk および Java splunk SDK 用の "Geo Location Lookup Script (powered by MAXMIND)" アプリを使用すると奇妙な動作が発生します。

ローカル splunk サーバー経由で検索を開始すると、次のフィールドで正しい回答が得られます。

  • client_country
  • client_lat
  • client_lon

しかし、自分のアプリケーションを使用して同じリクエストを送信すると、これらのフィールドがありませんでした。

ここに私のリクエストが送信されました:

* | rex field=_raw "(?<ip>\d+\.\d+\.\d+\.\d+)" | lookup geoip clientip as ip

これが私のコードアプリケーションです:

def connectionParameters = [host: 'host', username: 'user' ,password: 'pass']
        Service service = Service.connect(connectionParameters)

        String mySearch = 'search * | rex field=_raw "(?<ip>\d+\.\d+\.\d+\.\d+)" | lookup geoip clientip as ip'
        JobArgs jobargs = new JobArgs();
        jobargs.setExecutionMode(JobArgs.ExecutionMode.BLOCKING);
        Job job = service.getJobs().create(mySearch, jobargs);

        // Specify JSON as the output mode for results
        JobResultsArgs resultsArgs = new JobResultsArgs();
        resultsArgs.setOutputMode(JobResultsArgs.OutputMode.JSON);

        // Display results in JSON using ResultsReaderJson
        InputStream results = job.getResults(resultsArgs);
        ResultsReaderJson resultsReader = new ResultsReaderJson(results);
        def event
        while (event = resultsReader.getNextEvent()) {
            for (String key: event.keySet()) {
                System.out.println("   " + key + ":  " + event.get(key));
            }
        }
        resultsReader.close();

コンソール出力で、私はこれを取得します:

   _sourcetype:  access_combined_wcookie
   index:  main
   host:  127.0.0.1
   _cd:  0:347390
   _serial:  99
   _si:  Snite
main
   splunk_server:  Snite
   linecount:  1
   _indextime:  1371115534
   source:  Sampledata.zip:.\apache2.splunk.com/access_combined.log
   _raw:  10.2.91.40 - - [12/Jun/2013:23:37:44] "GET /flower_store/category.screen?category_id=GIFTS
 HTTP/1.1" 200 10567 "http://mystore.splunk.com/flower_store/cart.do?action=purchase&itemId=EST-26&J
SESSIONID=SD5SL10FF8ADFF3" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.10) Gecko/20070223 Cent
OS/1.5.0.10-0.1.el4.centos Firefox/1.5.0.10" 1347 2752
   _kv:  1
   sourcetype:  access_combined_wcookie
   _bkt:  main~0~4A7411B3-FDE3-4CE1-8118-E7D35D2F6C72
   _time:  2013-06-12T23:37:44.000+02:00

何が欠けていますか?

スナイト

4

1 に答える 1

0

このトピックを読んで解決策を見つけます。

だからここに私の最後の要求があります:

search * | rex field=_raw "(?<clientip>\d+\.\d+\.\d+\.\d+)" | lookup geoip clientip OUTPUT client_lat as lat client_lon as lon | table lat lon

OUTPUT 部分はどのフィールドが抽出されるかを示しているようで、テーブル部分は応答に特定のフィールドを配置します (これらのフィールドのみ)。

これが私の応答です(コントローラーにフォーマットされています):

[[lon:2.0, lat:46.0], [lon:2.0, lat:46.0], [lon:2.0, lat:46.0], [lon:2.0, lat:46.0], [lon:-116.6167,
 lat:31.8667], [lon:-116.6167, lat:31.8667], [lon:-116.6167, lat:31.8667], [lon:-116.6167, lat:31.86
67]]
于 2013-07-01T11:20:34.390 に答える