matchport

ポートグループで入力レコードをフィルタリングします。ポートまたはプロトコル値がnullであるか、タイプが一致しない場合はそのレコードを破棄します。

コマンドプロパティ

項目説明
コマンドタイプ加工クエリ
必要な権限なし
ライセンス使用量該当なし
並列実行対応
分散実行データノードで実行(mapper)

構文

matchport guid=STR [port=STR] [protocol=STR] [invert=BOOL] [verify=BOOL]

オプション

guid=STR
マッチングに使用するポートグループのGUID。
port=STR
ポート番号が格納されているフィールドの名前。(デフォルト:port
protocol=STR
プロトコルが格納されているフィールドの名前。tcpudpicmpの値を認識します。(デフォルト:protocol
invert=BOOL
tを指定するとポートグループにマッチするレコードを破棄し、マッチしないレコードのみを出力します。(デフォルト:f
verify=BOOL
fを指定するとパース段階でポートグループの有効性検査を省略します。(デフォルト:t

入力フィールド

フィールドタイプ必須説明
port32ビット整数必須ポート番号。portオプションで別のフィールド名を指定できます。数値タイプでない場合はレコードを破棄します。
protocol文字列必須プロトコル名。protocolオプションで別のフィールド名を指定できます。文字列でない場合はレコードを破棄します。

エラーコード

パースエラー
エラーコードメッセージ説明
300010cannot use both field and port option of matchportfieldportオプションを同時に指定した場合
300011cannot use both field and protocol option of matchportfieldprotocolオプションを同時に指定した場合
300012Specify 'guid' option in the matchport command.guidオプションがない場合
300013Port group not found.指定したGUIDに対応するポートグループが存在しない場合
300014Cannot load port group.ポートグループデータの読み込み中にエラーが発生した場合
ランタイムエラー

該当なし

説明

matchportコマンドは、入力レコードのポート番号とプロトコル値が指定されたポートグループに含まれるかを確認し、マッチするレコードのみを出力します。invertオプションをtに指定するとマッチしないレコードのみを出力します。

ポートフィールドの値が数値タイプでないか、プロトコルフィールドの値が文字列でない場合、invertオプションの値に関わらずそのレコードを破棄します。

分散環境ではデータノードでフィルタリングを実行します。

使用例

  1. ポートグループでフィルタリング

    json "[{'port': 80, 'protocol': 'tcp'}, {'port': 53, 'protocol': 'udp'}, {'port': 8080, 'protocol': 'tcp'}]"
    | matchport guid=550e8400-e29b-41d4-a716-446655440000
    

    指定したポートグループに含まれるレコードのみを出力します。

  2. ポートグループにマッチしないレコードの抽出

    json "[{'port': 80, 'protocol': 'tcp'}, {'port': 53, 'protocol': 'udp'}, {'port': 8080, 'protocol': 'tcp'}]"
    | matchport guid=550e8400-e29b-41d4-a716-446655440000 invert=t
    

    invert=tオプションを指定してポートグループに含まれないレコードのみを出力します。

  3. ユーザー定義フィールド名の指定

    json "[{'dst_port': 443, 'proto': 'tcp'}, {'dst_port': 53, 'proto': 'udp'}]"
    | matchport guid=550e8400-e29b-41d4-a716-446655440000 port=dst_port protocol=proto
    

    portprotocolオプションでポート番号フィールドとプロトコルフィールドの名前を指定します。