使用 Spring 从 Splunk 读取数据

Read Data from Splunk using Spring

我需要读取记录到 splunk 的 json,解析它并存储在关系数据库中。

我知道如何解析 json,并进行 post 处理。但是,我不太确定如何从 splunk 中提取数据。这个用例的最佳策略和 java 技术堆栈是什么? (splunk sdk 和 rest api 谈论 运行 搜索等,但不是数据提取本身。我看到 spring-integration 对 Splunk 有一些扩展,所以我也许能够使用 spring,但没有找到相同的具体示例)。

确实,很抱歉耽搁了。

是的,您绝对应该使用 Spring Integration Splunk。根据最后一个从那里获取数据的文档,您应该使用 search 功能。

Spring 集成 Splunk 提供 <int-splunk:inbound-channel-adapter> 从 Splunk 检索 events 并将它们发送到下游集成流程。

你可以在项目的测试用例中找到示例,但最简单的可能是这样的:

<int-splunk:inbound-channel-adapter id="inboundChannelAdapter"
                                    splunk-server-ref="splunkServer"
                                    search="search host=SpringIO"
                                    channel="searchResults"
                                    mode="REALTIME"
                                    count="10"
                                    init-earliest-time="">
    <int:poller fixed-delay="100" max-messages-per-poll="1"/>
</int-splunk:inbound-channel-adapter> 

这种操作的结果是 List<SplunkEvent> 作为 Message<?>payload 发送到 searchResults channel.