无法使用java sdk连接Splunk

时间:2013-05-27 12:37:53

标签: java splunk

我正在尝试使用Java SDK连接Splunk,但我收到连接拒绝异常。

     Map<String, Object> connectionArgs = new HashMap<String, Object>();
     connectionArgs.put("host", "mydomain.com");
     connectionArgs.put("username", "admin");
     connectionArgs.put("password", "passxxx");
     connectionArgs.put("port", 8089);
     connectionArgs.put("scheme", "https");
     Service splunkService = Service.connect(connectionArgs); 

当我使用带有上述网址的浏览器时,e,https://mydomain.com我可以使用上述凭据登录,但是通过Java sdk,我无法连接。我调试了代码,在HttpService.java类中,URL被构造为 https://mydomain.com:8089/services/auth/login

我不明白为什么URL会像这样构建。请尽早帮助我解决问题。感谢

2 个答案:

答案 0 :(得分:0)

SPLUNK SDK有一些令人讨厌的错误。尝试通过BASH使用CURL从SPLUNK Rest API获取数据。它看起来很复杂,但效果很好。您将加快开发和调试时间。

以下代码段效果很好:

SPLUNK_API="https://splunk.you.de:8089/services/search"
curl -s -k -u user:password $SPLUNK_API/jobs -d output_mode=csv --data-urlencode 'search=search  sourcetype="tomcat-access.log"  RC>0  | timechart avg(runtime) by xyz ' -d earliest_time=$START_TIME -d latest_time=$END_TIME -d exec_mode=oneshot -o splunk-responsetime.csv

答案 1 :(得分:0)

  

我不明白为什么URL会像这样构建。

嗯,这是因为splunk.jar中的Service.login(String username, String password)方法将其设为硬编码:

ResponseMessage response = post("/services/auth/login", args);

如果要更改URL,则应从here下载splunk SDK,更改URL,创建jar并在项目中使用它。

OR

您可以创建自己的类,扩展Service类,然后覆盖您想要的方法。