【问题标题】:How do I send JSON files to Splunk Enterprise from JAVA?如何从 JAVA 向 Splunk Enterprise 发送 JSON 文件?
【发布时间】:2019-10-25 08:51:46
【问题描述】:

我首先说我是初学者。 我正在建立一个收集一些 JSON 文件的系统,我在 JAVA(Spring 批处理)中解析它们,而我被卡住的部分是将这些文件发送到 HTTP EVENT COLLECTOR (HEC)在 Splunk 企业中。我尝试在网上搜寻一些适合初学者的指南,但我找不到任何东西。我想用所述文件将 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: ");

【问题讨论】:

    标签: java json rest splunk


    【解决方案1】:

    有点不清楚您要做什么。在文本中,您说您正在尝试使用 HTTP 事件收集器 (HEC) 发送数据。但是,示例代码似乎正在尝试执行搜索。

    要在 Java 中向 HEC endoint 发送数据,以下代码 sn-p 可能是一个合适的起点。

     DefaultHttpClient httpclient = new DefaultHttpClient();
     HttpPost httppost = new HttpPost("https://<SERVER>:8088/services/collector/event");
     httppost.addHeader("Authorization", " Splunk <token id>");
     String eventStr = "{sourcetype=_json, index=main, event={ <JSON> }}"
     httppost.setEntity(new StringEntity(eventStr);
     HttpResponse response = httpclient.execute(httppost);
     HttpEntity entity = response.getEntity();
     System.out.println("response: " + entity);
    

    【讨论】:

    • 谢谢!这正是我要找的!!!对不起,如果我的帖子不是很清楚......我还是个新手,甚至很难解释我必须做什么。但是,这有帮助!
    猜你喜欢
    • 2020-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    • 1970-01-01
    相关资源
    最近更新 更多