如何从 JAVA 将 JSON 文件发送到 Splunk Enterprise?

我首先说我是初学者。我正在设置一个收集一些 JSON 文件的系统,我在 JAVA (Spring 批处理)中解析它们,而我遇到的问题是将这些文件发送到Splunk enterprise 中的HTTP EVENT COLLECTOR (HEC)。我尝试在网络上爬行以获取一些适合初学者的指南,但我找不到任何内容。我想将带有上述文件的 POST 发送到 Splunk 企业,这样我就可以在发送它们后对它们进行索引。到目前为止,我只能像这样连接到 localhost:8089:


HttpService.setSslSecurityProtocol(SSLSecurityProtocol.TLSv1_2);


        ServiceArgs connectionArgs = new ServiceArgs();

        connectionArgs.setHost("localhost");

        connectionArgs.setUsername("AdrianAlter");

        connectionArgs.setPassword("mypassword");

        connectionArgs.setPort(8089);

        connectionArgs.put("scheme","https");

        // will login and save the session key which gets put in the HTTP Authorization header

        Service splunkService = Service.connect(connectionArgs);

        System.out.println("Auth Token : " + splunkService.getToken());


        Job info = splunkService.getJobs().create("search index=main");

        System.out.println("Info: ");


长风秋雁
浏览 117回答 1
1回答

慕尼黑的夜晚无繁华

有点不清楚你想做什么。在文中,您说您正在尝试使用 HTTP 事件收集器 (HEC) 发送数据。但是,示例代码看起来正在尝试执行搜索。要将数据发送到 Java 中的 HEC 端点,以下代码片段可能是合适的起点。&nbsp;DefaultHttpClient httpclient = new DefaultHttpClient();&nbsp;HttpPost httppost = new HttpPost("https://<SERVER>:8088/services/collector/event");&nbsp;httppost.addHeader("Authorization", " Splunk <token id>");&nbsp;String eventStr = "{sourcetype=_json, index=main, event={ <JSON> }}"&nbsp;httppost.setEntity(new StringEntity(eventStr);&nbsp;HttpResponse response = httpclient.execute(httppost);&nbsp;HttpEntity entity = response.getEntity();&nbsp;System.out.println("response: " + entity);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java