이 콘텐츠는 선택한 언어로 제공되지 않습니다.

Chapter 140. Splunk


Splunk Component

Available as of Camel 2.13
The Splunk component provides access to Splunk using the Splunk provided client api, and it enables you to publish and search for events in Splunk.
Maven users will need to add the following dependency to their pom.xml for this component:
	<dependency>
    	<groupId>org.apache.camel</groupId>
    	<artifactId>camel-splunk</artifactId>
    	<version>${camel-version}</version>
	</dependency>
Copy to Clipboard Toggle word wrap

URI format

  splunk://[endpoint]?[options]
Copy to Clipboard Toggle word wrap

Producer Endpoints:

Expand
Endpoint
Description
stream
Streams data to a named index or the default if not specified. When using stream mode be aware of that Splunk has some internal buffer (about 1MB or so) before events gets to the index. If you need realtime, better use submit or tcp mode.
submit
submit mode. Uses Splunk rest api to publish events to a named index or the default if not specified.
tcp
tcp mode. Streams data to a tcp port, and requires a open receiver port in Splunk.
When publishing events the message body should contain a SplunkEvent.
Example
      from("direct:start").convertBodyTo(SplunkEvent.class)
          .to("splunk://submit?username=user&password=123&index=myindex&sourceType=someSourceType&source=mySource")...
Copy to Clipboard Toggle word wrap
In this example a converter is required to convert to a SplunkEvent class.

Consumer Endpoints:

Expand
Endpoint
Description
normal
Performs normal search and requires a search query in the search option.
savedsearch
Performs search based on a search query saved in splunk and requires the name of the query in the savedSearch option.
Example
      from("splunk://normal?delay=5s&username=user&password=123&initEarliestTime=-10s&search=search index=myindex sourcetype=someSourcetype")
          .to("direct:search-result");
Copy to Clipboard Toggle word wrap
camel-splunk creates a route exchange per search result with a SplunkEvent in the body.

URI Options

Expand
Name
Default Value
Context
Description
host
localhost
Both
Splunk host.
port
8089
Both
Splunk port
username
null
Both
Username for Splunk
password
null
Both
Password for Splunk
connectionTimeout
5000
Both
Timeout in MS when connecting to Splunk server
useSunHttpsHandler
false
Both
Use sun.net.www.protocol.https.Handler Https hanlder to establish the Splunk Connection. Can be useful when running in application servers to avoid app. server https handling.
index
null
Producer
Splunk index to write to
sourceType
null
Producer
Splunk sourcetype arguement
source
null
Producer
Splunk source arguement
tcpReceiverPort
0
Producer
Splunk tcp receiver port when using tcp producer endpoint.
initEarliestTime
null
Consumer
Initial start offset of the first search. Required
earliestTime
null
Consumer
Earliest time of the search time window.
latestTime
null
Consumer
Latest time of the search time window.
count
0
Consumer
A number that indicates the maximum number of entities to return. Note this is not the same as maxMessagesPerPoll which currently is unsupported
search
null
Consumer
The Splunk query to run
savedSearch
null
Consumer
The name of the query saved in Splunk to run
streaming
false
Consumer
Camel 2.14.0 : Stream exchanges as they are received from Splunk, rather than returning all of them in one batch. This has the benefit of receiving results faster, as well as requiring less memory as exchanges aren't buffered in the component.

Message body

Splunk operates on data in key/value pairs. The SplunkEvent class is a placeholder for such data, and should be in the message body for the producer. Likewise it will be returned in the body per search result for the consumer.

Use Cases

Search Twitter for tweets with music and publish events to Splunk
      from("twitter://search?type=polling&keywords=music&delay=10&consumerKey=abc&consumerSecret=def&accessToken=hij&accessTokenSecret=xxx")
          .convertBodyTo(SplunkEvent.class)
          .to("splunk://submit?username=foo&password=bar&index=camel-tweets&sourceType=twitter&source=music-tweets");
Copy to Clipboard Toggle word wrap
To convert a Tweet to a SplunkEvent you could use a converter like
@Converter
public class Tweet2SplunkEvent {
    @Converter
    public static SplunkEvent convertTweet(Status status) {
        SplunkEvent data = new SplunkEvent("twitter-message", null);
        //data.addPair("source", status.getSource());
        data.addPair("from_user", status.getUser().getScreenName());
        data.addPair("in_reply_to", status.getInReplyToScreenName());
        data.addPair(SplunkEvent.COMMON_START_TIME, status.getCreatedAt());
        data.addPair(SplunkEvent.COMMON_EVENT_ID, status.getId());
        data.addPair("text", status.getText());
        data.addPair("retweet_count", status.getRetweetCount());
        if (status.getPlace() != null) {
            data.addPair("place_country", status.getPlace().getCountry());
            data.addPair("place_name", status.getPlace().getName());
            data.addPair("place_street", status.getPlace().getStreetAddress());
        }
        if (status.getGeoLocation() != null) {
            data.addPair("geo_latitude", status.getGeoLocation().getLatitude());
            data.addPair("geo_longitude", status.getGeoLocation().getLongitude());
        }
        return data;
    }
}
Copy to Clipboard Toggle word wrap
Search Splunk for tweets
      from("splunk://normal?username=foo&password=bar&initEarliestTime=-2m&search=search index=camel-tweets sourcetype=twitter")
          .log("${body}");
Copy to Clipboard Toggle word wrap

Other comments

Splunk comes with a variety of options for leveraging machine generated data with prebuilt apps for analyzing and displaying this. For example the jmx app. could be used to publish jmx attributes, eg. route and jvm metrics to Splunk, and displaying this on a dashboard.

See Also

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat