ストリームデータ処理基盤 uCosminexus Stream Data Platform - Application Framework システム構築・運用ガイド
HTTPパケット入力コネクター定義(HttpPacketInputConnectorDefinitionタグ)は,入力用CB定義(InputCBDefinitionタグ)の子要素として定義します。
なお,HTTPパケットの入力の処理については,「11.3 HTTPパケットの入力」を参照してください。
<HttpPacketInputConnectorDefinition> <input buffersize="<入出力バッファーサイズ>" assemblingtime="<分割パケット組み立て時間>"> <packetdata globalheader="<グローバルヘッダー領域長>" packetheader="<パケットヘッダー領域長>" packetoffset="<パケットデータサイズ領域オフセット>" packetlength="<パケットデータサイズ領域長>" timeoffset="<タイムスタンプ領域オフセット>"/> <command path="<コマンドパス名>" parameter="<コマンドパラメーター>"/> </input> <output unit="<最大出力単位>"> <record name="<レコード名>" type="{REQUEST|RESPONSE}"> <field name="<フィールド名>"/> </record> </output> </HttpPacketInputConnectorDefinition>
図9-2 タイムスタンプ領域のフォーマット
<?xml version="1.0" encoding="UTF-8"?> <root:AdaptorCompositionDefinition xmlns:hpicon="http://www.hitachi.co.jp/soft/xml/sdp/adaptor/definition/callback/HttpPacketInputConnectorDefinition"> <!-- 途中略 --> <!-- 入力用CB定義 --> <cb:InputCBDefinition class="jp.co.Hitachi.soft.sdp.adaptor.callback.io.packetinput.HttpPacketInputCBImpl" name="inputer2"> <!-- HTTPパケット入力コネクター定義 --> <hpicon:HttpPacketInputConnectorDefinition> <!-- 読み込み定義 --> <hpicon:input buffersize="096" assemblingtime="2000"> <!-- HTTPパケット定義 --> <hpicon:packetdata globalheader="24" packetheader="16" packetoffset="8" packetlength="4" timeoffset="0"/> <!-- コマンド定義 --> <hpicon:command path="C:\Program Files\WinDump\WinDump.exe" parameter=" -i 1 -s 2048 -w - -n "tcp port 80 and host 133.145.224.19""/> </hpicon:input> <!-- 出力定義 --> <hpicon:output unit="100"> <!-- レコード定義 --> <hpicon:record name="RECORD1" type="REQUEST"> <!-- フィールド定義 --> <hpicon:field name="SEND_IP"/> <hpicon:field name="RECEIVE_IP"/> <hpicon:field name="SEND_PORT"/> <hpicon:field name="RECEIVE_PORT"/> <hpicon:field name="MESSAGE_TYPE"/> <hpicon:field name="TARGET_URI"/> </hpicon:record> </hpicon:output> </hpicon:HttpPacketInputConnectorDefinition> </cb:InputCBDefinition>
パケットアナライザーとしてWinDumpを使用する場合に,commandタグで指定する内容について説明します。なお,ここでは,WinDumpのバージョン3.9.5を使用する場合の例を示します。WinDumpの起動コマンドの詳細については,WinDumpのドキュメントを参照してください。
HTTPパケット入力コネクターでは,次の書式で記述されたWinDumpの起動コマンド(WinDump.exe)をサポートします。
WinDump.exe△-i△<ネットワークデバイスの番号>△-s△<内部バッファーサイズ>△-w△-△-n△"tcp△port△<ポート番号>△and△host△<IPアドレス>"
書式の「△」は半角スペースを表します。commandタグのparameter属性では,半角スペースを省略しないで記述してください。
書式に示した値について説明します。
パケットアナライザーとしてtcpdumpを使用する場合に,commandタグで指定する内容について説明します。なお,ここでは,tcpdumpのバージョン3.9.4を使用する場合の例を示します。tcpdumpの起動コマンドの詳細については,tcpdumpのドキュメントを参照してください。
HTTPパケット入力コネクターでは,次の書式で記述されたtcpdumpの起動コマンドをサポートします。
/usr/sbin/tcpdump△-i△<LANインタフェース名>△-s△<内部バッファーサイズ>△-w△-△-n△tcp△port△<ポート番号>△and△host△<IPアドレス>
書式の「△」は半角スペースを表します。commandタグのparameter属性では,半角スペースを省略しないで記述してください。
書式に示した値について説明します。
fieldタグのname属性のフィールド名として指定できる識別子を次の表に示します。
表9-9 fieldタグのname属性のフィールド名として指定できる識別子
項番 | 識別子 | データ | 内容 | プロトコル | レコードの種類ごとの指定可否 | |
---|---|---|---|---|---|---|
リクエスト | レスポンス | |||||
1 | TIME | 時刻※1 | パケットデータが到着した時刻 | − | ○ | ○ |
2 | PACKET_LENGTH | パケットサイズ※2 | パケットデータの長さ(単位:バイト) | − | ○ | ○ |
3 | SEND_MAC | 送信元MACアドレス | パケット送信元のMACアドレス | Ethernet | ○ | ○ |
4 | SEND_IP | 送信元IPアドレス | パケット送信元のIPアドレス | IP | ○ | ○ |
5 | RECEIVE_IP | 送信先IPアドレス | パケット送信先のIPアドレス | IP | ○ | ○ |
6 | SEND_PORT | 送信元ポート番号 | パケット送信元のポート番号 | TCP | ○ | ○ |
7 | RECEIVE_PORT | 送信先ポート番号 | パケット送信先のポート番号 | TCP | ○ | ○ |
8 | MESSAGE_TYPE | メッセージ種別 | Request,Responseの種別 | HTTP | ○ | ○ |
9 | METHOD_NAME | メソッド情報 | GET,POSTなどのメソッド情報 | HTTP | ○ | × |
10 | TARGET_URI | URI情報※3 | アクセス先のURI情報 | HTTP | ○ | × |
11 | REFERER | Referer※3 | リンク元のURI情報 | HTTP | ○ | × |
12 | COOKIE | Cookie※3 ※4 | クッキー情報※5 | HTTP | ○ | ○ |
13 | STATUS_CODE | ステータスコード | 要求の処理結果 | HTTP | × | ○ |
14 | CONNECTION | Connection | 接続の永続性情報 | HTTP | ○ | ○ |
15 | CONTENT_LENGTH | Content-Length | コンテンツの長さ(単位:バイト) | HTTP | ○ | ○ |
16 | CONTENT_TYPE | Content-Type | コンテンツの種類 | HTTP | ○ | ○ |
17 | MESSAGE_BODY | メッセージ・ボディ※3 | 実データ | HTTP | ○※6 | × |
fieldタグのname属性で指定した識別子に従って抽出された各プロトコルデータは,次の表に示すJavaのデータ型に変換されます。Javaのデータ型への変換の際に,プロトコルデータの値が値の範囲の上限を超えている場合は,上限値までがフィールド値に格納されます。指定した識別子に対応するデータがプロトコルデータにない場合,フィールド値には,String型のときは空文字,Integer型のときは-1が格納されます。
表9-10 フィールド値に格納されるデータのJavaのデータ型
項番 | データ | プロトコル | Javaのデータ型 | 値の範囲 |
---|---|---|---|---|
1 | 時刻※ | − | Timestamp | 1970/01/01 00:00:00.000000 〜 2261/12/31 23:59:59.999999 |
2 | パケットサイズ | − | Integer | 0〜2,147,483,647 |
3 | 送信元MACアドレス | Ethernet | String | 17文字(00:00:00:00:00:00 〜 FF:FF:FF:FF:FF:FF) |
4 | 送信元ポート番号 | TCP | Integer | 0〜65,535 |
5 | 送信先ポート番号 | TCP | Integer | |
6 | 送信元IPアドレス | IP | String |
|
7 | 送信先IPアドレス | IP | String | |
8 | データ種別 | HTTP | String | 7〜8文字(RequestまたはResponse) |
9 | メソッド情報 | HTTP | String | 1〜127文字(GET,CONNECTなど) |
10 | URI情報 | HTTP | String | 1〜255文字 |
11 | Referer | HTTP | String | |
12 | Cookie | HTTP | String | 1〜4,096文字 |
13 | ステータスコード | HTTP | String | 3文字(200,404など) |
14 | Connection | HTTP | String | 1〜127文字(closeまたはKeep-Alive) |
15 | Content-Length | HTTP | Integer | 0〜2,147,483,647 |
16 | Content-Type | HTTP | String | 3〜255文字 |
17 | メッセージ・ボディ | HTTP | String | 0〜2,048文字 |
All Rights Reserved. Copyright (C) 2010, 2014, Hitachi, Ltd.