matchport
ポートグループで入力レコードをフィルタリングします。ポートまたはプロトコル値がnullであるか、タイプが一致しない場合はそのレコードを破棄します。
コマンドプロパティ
| 項目 | 説明 |
|---|---|
| コマンドタイプ | 加工クエリ |
| 必要な権限 | なし |
| ライセンス使用量 | 該当なし |
| 並列実行 | 対応 |
| 分散実行 | データノードで実行(mapper) |
構文
matchport guid=STR [port=STR] [protocol=STR] [invert=BOOL] [verify=BOOL]
オプション
guid=STR- マッチングに使用するポートグループのGUID。
port=STR- ポート番号が格納されているフィールドの名前。(デフォルト:
port) protocol=STR- プロトコルが格納されているフィールドの名前。
tcp、udp、icmpの値を認識します。(デフォルト:protocol) invert=BOOLtを指定するとポートグループにマッチするレコードを破棄し、マッチしないレコードのみを出力します。(デフォルト:f)verify=BOOLfを指定するとパース段階でポートグループの有効性検査を省略します。(デフォルト:t)
入力フィールド
| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
port | 32ビット整数 | 必須 | ポート番号。portオプションで別のフィールド名を指定できます。数値タイプでない場合はレコードを破棄します。 |
protocol | 文字列 | 必須 | プロトコル名。protocolオプションで別のフィールド名を指定できます。文字列でない場合はレコードを破棄します。 |
エラーコード
パースエラー
| エラーコード | メッセージ | 説明 |
|---|---|---|
| 300010 | matchportコマンドはfieldとportオプションを同時に使用できません。 | fieldとportオプションを同時に指定した場合 |
| 300011 | matchportコマンドはfieldとprotocolオプションを同時に使用できません。 | fieldとprotocolオプションを同時に指定した場合 |
| 300012 | matchportコマンドにguidオプションを指定してください。 | guidオプションがない場合 |
| 300013 | matchportコマンドのguidに対応するポートグループがありません。 | 指定したGUIDに対応するポートグループが存在しない場合 |
| 300014 | ポートグループデータを読み込めません。 | ポートグループデータの読み込み中にエラーが発生した場合 |
ランタイムエラー
該当なし
説明
matchportコマンドは、入力レコードのポート番号とプロトコル値が指定されたポートグループに含まれるかを確認し、マッチするレコードのみを出力します。invertオプションをtに指定するとマッチしないレコードのみを出力します。
ポートフィールドの値が数値タイプでないか、プロトコルフィールドの値が文字列でない場合、invertオプションの値に関わらずそのレコードを破棄します。
分散環境ではデータノードでフィルタリングを実行します。
使用例
-
ポートグループでフィルタリング
json "[{'port': 80, 'protocol': 'tcp'}, {'port': 53, 'protocol': 'udp'}, {'port': 8080, 'protocol': 'tcp'}]" | matchport guid=550e8400-e29b-41d4-a716-446655440000指定したポートグループに含まれるレコードのみを出力します。
-
ポートグループにマッチしないレコードの抽出
json "[{'port': 80, 'protocol': 'tcp'}, {'port': 53, 'protocol': 'udp'}, {'port': 8080, 'protocol': 'tcp'}]" | matchport guid=550e8400-e29b-41d4-a716-446655440000 invert=tinvert=tオプションを指定してポートグループに含まれないレコードのみを出力します。 -
ユーザー定義フィールド名の指定
json "[{'dst_port': 443, 'proto': 'tcp'}, {'dst_port': 53, 'proto': 'udp'}]" | matchport guid=550e8400-e29b-41d4-a716-446655440000 port=dst_port protocol=protoportとprotocolオプションでポート番号フィールドとプロトコルフィールドの名前を指定します。