第158章 Splunk


Splunk コンポーネント

Camel 2.13 で利用可能
Splunk コンポーネントは、Splunk が提供する クライアント api を使用して Splunk にアクセスし、Splunk でイベントを公開して検索できます。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
	<dependency>
    	<groupId>org.apache.camel</groupId>
    	<artifactId>camel-splunk</artifactId>
    	<version>${camel-version}</version>
	</dependency>
Copy to Clipboard Toggle word wrap

URI 形式

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

プロデューサーエンドポイント:

Expand
エンドポイント
説明
stream
データを名前付きインデックスにストリーミングするか、指定されていない場合はデフォルトにストリーミングします。ストリームモードを使用する場合は、Splunk にはイベントがインデックスに到達する前に一部の内部バッファー(about 1MB など)があることを認識します。リアルタイムが必要な場合は、submit または tcp モードを使用することが推奨されます。
submit
送信モード。Splunk REST API を使用して、イベントを名前付きインデックスまたはデフォルト(指定されていない場合はデフォルト)に公開します。
tcp
TCP モード。データを TCP ポートにストリーミングし、Splunk で開いているレシーバーポートを必要とします。
イベントを公開する場合、メッセージボディーには SplunkEvent が含まれている必要があります。
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
この例では、SplunkEvent クラスに変換するコンバーターが必要です。

コンシューマーエンドポイント:

Expand
エンドポイント
説明
normal
通常の検索を実行し、検索オプションで検索クエリーを必要とします。
savedsearch
splunk に保存されている検索クエリーに基づいて検索を実行し、savedSearch オプションにクエリーの名前が必要です。
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 は、ボディーに SplunkEvent を使用して検索結果ごとにルートエクスチェンジを作成します。

URI オプション

Expand
名前
デフォルト値
コンテキスト
説明
host
localhost
両方
Splunk ホスト。
port
8089
両方
Splunk ポート
scheme
https
両方
http または https のいずれかとして使用するスキーム。
username
null
両方
Splunk のユーザー名
password
null
両方
Splunk のパスワード
connectionTimeout
5000
両方
Splunk サーバーへの接続時の MS のタイムアウト
useSunHttpsHandler
false
両方
sun.net.www.protocol.https.Handler Https hanlder を使用して Splunk 接続を確立します。は、アプリケーションサーバーで実行している場合に、アプリケーション(server https の処理)を回避するのに役立ちます。
sslProtocol
TLSv1.2
両方
Camel 2.16: 使用する SSL プロトコル。TLSv1.2TLSv1.1TLSv1、および SSLv3 のいずれかです。scheme が https の場合にのみ使用されます。
index
null
プロデューサー
書き込む Splunk インデックス
sourceType
null
プロデューサー
Splunk sourcetype arguement
source
null
プロデューサー
Splunk ソース引数
tcpReceiverPort
0
プロデューサー
tcp プロデューサーエンドポイントを使用する場合の Splunk tcp receiver ポート。
raw
false
プロデューサー
Camel 2.16.0: ボディーを挿入する必要あり。true の場合、ボディーは Splunk に送信される前に String に変換されます。
initEarliestTime
null
コンシューマー
最初の検索の最初の開始オフセット。必須
earliestTime
null
コンシューマー
検索時間枠の初期時間。
latestTime
null
コンシューマー
検索時間枠の最新の時間。
count
0
コンシューマー
返すエンティティーの最大数を示す数字。これは、現在サポートされていない maxMessagesPerPoll とは異なることに注意してください。
search
null
コンシューマー
実行する Splunk クエリー
savedSearch
null
コンシューマー
実行する Splunk に保存されているクエリーの名前
streaming
false
コンシューマー
Camel 2.14.0 : すべてのエクスチェンジを 1 つのバッチで返すのではなく、Splunk から受信されるエクスチェンジをストリーミングします。これは、結果をより迅速に受信できるだけでなく、交換がコンポーネントでバッファーリングされないため、必要なメモリーが少なくなるという利点があります。
eventHost
null
プロデューサー
Camel 2.17: デフォルトの Splunk イベントホストフィールドを上書きします。

メッセージボディー

Splunk は、キー/値のペアでデータを操作します。SplunkEvent クラスはこのようなデータのプレースホルダーであり、プロデューサーのメッセージボディーにある必要があります。同様に、コンシューマーの検索結果ごとにボディーに返されます。
Camel 2.16.0 以降では、プロデューサーエンドポイントに raw オプションを設定して、生データを Splunk に送信できます。これは、Splunk がサポートされる JSon/XML およびその他のペイロードに役立ちます。

ユースケース

Twitter でミューシックのあるツイートを検索し、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
Tweet を SplunkEvent に変換するには、以下のようなコンバーターを使用できます。
@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
Splunk でツイートを検索する
      from("splunk://normal?username=foo&password=bar&initEarliestTime=-2m&search=search index=camel-tweets sourcetype=twitter")
          .log("${body}");
Copy to Clipboard Toggle word wrap

その他のコメント

Splunk には、これを分析および表示するために事前にビルドされたアプリケーションでマシンが生成したデータを活用するためのさまざまなオプションがあります。たとえば、jmx app. を使用して jmx 属性(例:route および jvm メトリクス)を Splunk に公開し、これをダッシュボードで表示できます。

関連項目

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat