このトピックでは、イベントチェック関数の構文とパラメーターについて説明します。 このトピックでは、関数の使用方法の例も示します。
関数
カテゴリー | 機能 | 説明 |
基本機能 | ログフィールドが存在するかどうかを確認します。 | |
ログフィールドが存在しないかどうかを確認します。 この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用してデータを浄化する」をご参照ください。 | ||
式関数 | Searches for an event by using a query syntax that is similar to Lucene. この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用してデータを浄化する」をご参照ください。 | |
Checks whether the value of a log field meets the conditions specified in a regular expression. This function can be used together with other functions. 詳細については、「関数を使用してデータを浄化する」をご参照ください。 | ||
ログフィールドの値が正規表現で指定された条件を満たしているかどうかを確認します。 1つ以上の指定されたフィールドが正規表現と一致する場合、Trueが返されます。 それ以外の場合は、falseが返されます。 | ||
ログフィールドの値が正規表現で指定された条件を満たしているかどうかを確認します。 指定されたすべてのフィールドが正規表現と一致する場合、Trueが返されます。 それ以外の場合は、falseが返されます。 |
e_has
The function is used to check whether a log field exists.
構文
e_has("key")
パラメーター
項目
データ型
必須/任意
説明
key
String
必須
ログフィールドの名前。
レスポンス
指定されたフィールドが存在する場合、Trueが返されます。 それ以外の場合は、falseが返されます。
例
ログにコンテンツフィールドが含まれているかどうかを確認します。 ログにコンテンツフィールドが含まれている場合、ログは保持されます。 それ以外の場合、ログは削除されます。
Raw log:
content: 123
変換ルール:
e_keep(e_has("content"))
結果:
content: 123
e_not_has
この関数は、ログフィールドが存在しないかどうかを確認するために使用されます。
構文
e_not_has("key")
パラメーター
項目
データ型
必須/任意
説明
key
String
必須
ログフィールドの名前。
レスポンス
If the specified field does not exist, True is returned. それ以外の場合は、falseが返されます。
例
Check whether a log contains the content field. If the log does not contain the content field, the log is retained. Otherwise, the log is dropped.
Raw log:
content: 123
変換ルール:
e_if_else(e_not_has("content"),KEEP,DROP)
結果:
The log is dropped.
その他のユースケース
This function can be used together with other functions. 詳細については、「関数を使用してデータを浄化する」をご参照ください。
e_search
この関数は、Luceneに似たクエリ構文を使用してイベントを検索するために使用されます。
構文
e_search(querystring)
パラメーター
項目
データ型
必須/任意
説明
querystring
String
必須
ログデータのフィルタリングに使用するクエリ文字列。 詳細については、「クエリ文字列構文」をご参照ください。
レスポンス
指定された条件が満たされる場合、Trueが返されます。 それ以外の場合は、falseが返されます。
例
# Full-text search e_search("active error") # Search for multiple substrings in full text. The substrings are associated with each other by using the logical operator OR. e_search('"active error"') # Search for a substring in full text. # Field search e_search("status: active") # Search for a substring in a specified field. e_search('author: "john smith"') # Searches for a substring that contains a space character in a specified field. e_search('field: active error') # Search the specified field for the substring "active" or searches all logs for the substring "error". The query string in this example is equivalent to field:active OR "error". # Exact match e_search('author== "john smith"') # Search for field values by using wildcard characters. You can use an asterisk (*) to match zero or more characters. You can use a question mark (?) to match one character. e_search("status: active*test") # active*test contains one asterisk (*). You do not need to enclose the value in double quotation marks (""). e_search("status: active?good") # active?good contains one question mark (?). You do not need to enclose the value in double quotation marks (""). e_search("status== ac*tive?good") # The query string is used for exact match. # Escape special characters in a field value. Asterisks (*) or question marks (?) that are not used as wildcards must be escaped in a field value by using backslashes (\). e_search('status: "\*\?()[]:="') # \*\?()[]:= contains multiple special characters. You must enclose the value in double quotation marks (""). The asterisks (*), question marks (?), and backslashes (\) in the value are escaped. e_search("status: active\*test") # active\*test contains one asterisk (*). You do not need to enclose the value in double quotation marks (""). e_search("status: active\* test") # active\*test contains one question mark (?). You do not need to enclose the value in double quotation marks (""). # Escape special characters in a field name e_search("\*\(1+1\)\?: abc") # You cannot enclose the field name in double quotation marks (""). You must escape special characters by using backslashes (\). e_search("__tag__\:__container_name__: abc") # You must escape special characters by using backslashes (\). e_search("field name in Chinese: abc") # Enter the Chinese characters that comprise the field name. # Search for strings by using regular expressions. e_search('content~="regular expression"') # Search for substrings that match the regular expression. # Numeric value comparison e_search('count: [100, 200]') # >=100 and <=200 e_search('count: [*, 200]') # <=200 e_search('count: [200, *]') # >=200 e_search('age >= 18') # >= 18 e_search('age > 18') # > 18 # Relational operators e_search("abc OR xyz") # The relational operator is case-insensitive. e_search("abc and (xyz or zzz)") e_search("abc and not (xyz and not zzz)") e_search("abc && xyz") # and e_search("abc || xyz") # or e_search("abc || !xyz") # or not
その他のユースケース
この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用してデータを浄化する」をご参照ください。
e_match
この関数は、ログフィールドの値が式で指定された条件を満たすかどうかを確認するために使用されます。
構文
e_match(key, regular_expression, full=True)
説明ほとんどの場合、e_match関数は
op_not
、op_and
、またはop_or
関数とともに使用されます。パラメーター
項目
データ型
必須/任意
説明
key
String
必須
The name of the log field. 指定されたフィールドが存在しない場合、フィールドは指定された条件を満たしていません。
For example, if the
f1
field does not exist, thee_match("f1", ...)
function returns False.regular_expression
String
必須
The regular expression. If you want to match strings by using string literals, you can use the
str_regex_escape
function to escape characters.フル
Bool
いいえ
完全一致を実行するかどうかを指定します。 デフォルトでは、パラメーターはTrueに設定され、完全一致を指定します。 詳細については、「正規表現」をご参照ください。
レスポンス
指定されたフィールドが正規表現と一致する場合、Trueが返されます。 それ以外の場合は、falseが返されます。
例
k1フィールドの値が数値であるかどうかを確認します。
Raw log:
k1: 123
変換ルール:
e_set("match",e_match("k1",r'\d+'))
結果:
k1: 123 match: True
その他のユースケース
この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用してデータを浄化する」をご参照ください。
e_match_any
この関数は、ログフィールドの値が正規表現で指定された条件を満たしているかどうかを確認するために使用されます。 1つ以上の指定されたフィールドが正規表現と一致する場合、Trueが返されます。 それ以外の場合は、falseが返されます。
構文
e_match_any(key1, regular_expression1, key2, regular_expression2, ..., full=True)
説明key
パラメーターとregular_expression
パラメーターはペアで指定する必要があります。ほとんどの場合、e_match_any関数は、
op_not
、op_and
、またはop_or
関数とともに使用されます。
パラメーター
項目
データ型
必須/任意
説明
key
String
必須
ログフィールドの名前。 指定されたフィールドが存在しない場合、フィールドは指定された条件を満たしていません。
たとえば、
f1
フィールドが存在しない場合、e_match_any("f1", ...)
関数はFalseを返します。regular_expression
String
必須
正規表現。 文字列リテラルを使用して文字列を照合する場合は、
str_regex_escape
関数を使用して文字をエスケープできます。フル
Bool
いいえ
完全一致を実行するかどうかを指定します。 デフォルト値Trueは完全一致を指定します。 詳細については、「正規表現」をご参照ください。
レスポンス
指定されたフィールドが正規表現と一致する場合、Trueが返されます。 それ以外の場合は、falseが返されます。
例
ログフィールドの値が正規表現で指定された条件を満たしているかどうかを確認します。 1つ以上の指定されたフィールドが正規表現と一致する場合、Trueが返されます。
Raw log:
k1: 123 k2: abc k3: abc123
変換ルール:
e_set("match",e_match_any('k1', r'\d+', 'k2', '.+'))
結果:
k1:123 k2:abc k3:abc123 match:true
その他のユースケース
This function can be used together with other functions. 詳細については、「関数を使用してデータを浄化する」をご参照ください。
e_match_all
この関数は、ログフィールドの値が正規表現で指定された条件を満たしているかどうかを確認するために使用されます。 指定されたすべてのフィールドが正規表現と一致する場合、Trueが返されます。 それ以外の場合は、falseが返されます。
構文
e_match_all(key1, regular_expression1, key2, regular_expression2, ..., full=True)
説明key
パラメーターとregular_expression
パラメーターはペアで指定する必要があります。ほとんどの場合、e_match_all関数は、
op_not
、op_and
、またはop_or
関数とともに使用されます。
パラメーター
項目
データ型
必須/任意
説明
key
String
必須
ログフィールドの名前。 指定されたフィールドが存在しない場合、フィールドは指定された条件を満たしていません。
たとえば、
f1
フィールドが存在しない場合、e_match_all("f1", ...)
関数はFalseを返します。regular_expression
String
必須
正規表現。 文字列リテラルを使用して文字列を照合する場合は、
str_regex_escape
関数を使用して文字をエスケープできます。フル
Bool
いいえ
Specifies whether to perform an exact match. By default, the parameter is set to True, which specifies an exact match. 詳細については、「正規表現」をご参照ください。
レスポンス
If the specified field matches the regular expression, True is returned. それ以外の場合は、falseが返されます。
例
Raw log:
k1: 123 k2: abc k3: abc123
変換ルール:
e_set("match", e_match_all("k1", r"\d+", "k2", r"\d+"))
結果:
k1:123 k2:abc k3:abc123 match:false
その他のユースケース
この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用してデータを浄化する」をご参照ください。