我正在将带有cURL的发布请求发送到Jenkins中的Splunk HTTP事件收集器(HEC)。
当我登录到Jenkins服务器并直接在命令行上执行curl命令时,它可以工作。但是,使用Java构造命令并通过Jenkins发送命令时,它不会记录任何内容。
new ProcessBuilder().command("curl", "-k", "-X", "POST", environment.getVar("SPLUNK_URL"),
environment.getVar("SPLUNK_CHANNEL"), "-H", "'Authorization:Splunk", environment.getVar("SPLUNK_TOKEN"), "'",
"-H", "'Cache-Control:no-cache'", "-d","'{\"sourcetype\":\"json\",\"event\":", toSimpleJSON(output),
"}'").start().waitFor(5, TimeUnit.SECONDS);
我希望在Jenkins主机上运行的命令也可以在Java的ProcessBuilder中使用。
答案 0 :(得分:0)
您可以在请求的元数据中指定索引。请注意,您的HEC令牌可能会受到其可写入的索引的限制-创建令牌时请进行检查。
new ProcessBuilder().command("curl", "-k", "-X", "POST", environment.getVar("SPLUNK_URL"),
environment.getVar("SPLUNK_CHANNEL"), "-H", "'Authorization:Splunk", environment.getVar("SPLUNK_TOKEN"), "'",
"-H", "'Cache-Control:no-cache'", "-d","'{\"sourcetype\":\"json\",\"index\":\"jenkins_index\",\"event\":", toSimpleJSON(output),
"}'").start().waitFor(5, TimeUnit.SECONDS);
更多详情,请访问http://dev.splunk.com/view/event-collector/SP-CAAAE6P