可使用java sdk连接Splunk

可使用java sdk连接Splunk,java,splunk,Java,Splunk,我正在尝试使用JavaSDK连接Splunk,但遇到连接被拒绝的异常 Map<String, Object> connectionArgs = new HashMap<String, Object>(); connectionArgs.put("host", "mydomain.com"); connectionArgs.put("username", "admin"); connectionArgs.put("password",

我正在尝试使用JavaSDK连接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); 
Map connectionArgs=new HashMap();
connectionArgs.put(“主机”,“mydomain.com”);
connectionArgs.put(“用户名”、“管理员”);
连接args.put(“密码”、“passxxx”);
连接args.put(“端口”,8089);
connectionArgs.put(“方案”、“https”);
Service splunkService=Service.connect(connectionArgs);
当我使用带有上述url的浏览器时,我可以使用上述凭据登录,但无法通过Java sdk连接。我调试了代码,在HttpService.java类中,URL被构造为


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

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

以下代码段运行良好:

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
我不明白为什么URL会这样构造

这是因为splunk.jar中的
Service.login(字符串用户名、字符串密码)
方法将其作为硬编码:

responsemessageresponse=post(“/services/auth/login”,args)

如果您想更改URL,您应该从下载splunk SDK,更改URL,创建一个jar并在项目中使用它

您可以创建自己的类来扩展
服务
类,然后重写所需的方法