我在使用 splunk 和 java splunk SDK 的“地理位置查找脚本(由 MAXMIND 提供支持)”应用程序时遇到了一个奇怪的行为,我想我遗漏了一些东西,但我在 Internet 上找不到任何解决方案。
当我通过本地 splunk 服务器启动搜索时,我会通过以下字段得到正确答案:
- 客户国家
- 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
我错过了什么?
斯奈特