正規表現を使用した Log Analytics のログ検索のフィルター処理Using regular expressions to filter log searches in Log Analytics

注意

この記事では、レガシ クエリ言語を使用した Log Analytics の正規表現について説明します。This article describes regular expressions using the legacy query language in Log Analytics. ワークスペースが新しい Log Analytics クエリ言語にアップグレードされている場合は、言語ドキュメントの正規表現に関するページをご覧ください。If your workspace has been upgraded to the new Log Analytics query language, then you should refer to Regular expressions in the language documentation.

ログ検索を使用すると、Log Analytics リポジトリから情報を抽出できます。Log searches allow you to extract information from the Log Analytics repository. フィルター式を使用すると、特定の条件に従って検索結果をフィルター処理できます。Filter expressions allow you to filter the results of the search according to specific criteria. RegEx キーワードを使用すると、そのフィルターの正規表現を指定できます。The RegEx keyword allows you to specify a regular expression for this filter.

この記事では、Log Analytics で使用される正規表現の構文について詳しく説明します。This article provides details on the regular expression syntax used by Log Analytics.

注意

RegEx は、検索可能なフィールドでのみ使用できます。You can only use RegEx with searchable fields. 検索可能なフィールドの詳細については、Log Analytics におけるログ検索を使用したデータの検索に関するページの「フィールドの型」を参照してください。For more information on searchable fields, see Field Types in Find data using log searches in Log Analytics.

RegEx キーワードRegEx keyword

ログ検索で RegEx キーワードを使用するには、次の構文を使用します。Use the following syntax to use the RegEx keyword in a log search. 正規表現自体の構文については、この記事の他のセクションで確認できます。You can use the other sections in this article to determine the syntax of the regular expression itself.

field:Regex("Regular Expression")
field=Regex("Regular Expression")

たとえば、正規表現を使用して種類が Warning または Error のアラート レコードを返すには、次のログ検索を使用します。For example, to use a regular expression to return alert records with a type of Warning or Error, you would use the following log search.

Type=Alert AlertSeverity=RegEx("Warning|Error")

部分一致Partial matches

正規表現は、プロパティのテキスト全体に一致する必要があります。Note that the regular expression must match the entire text of the property. 部分一致ではレコードは返されません。Partial matches will not return any records. たとえば、srv01.contoso.com という名前のコンピューターのレコードを返そうとしている場合、次のログ検索ではレコードは返されませんFor example, if you were trying to return records from a computer named srv01.contoso.com, the following log search would not return any records.

Computer=RegEx("srv..")

これは、名前の最初の部分しか正規表現に一致しないためです。This is because only the first part of the name matches the regular expression. 次の 2 つのログ検索は名前全体に一致するので、このコンピューターのレコードが返されます。The following two log searches would return records from this computer because they match the entire name.

Computer=RegEx("srv..@")
Computer=RegEx("srv...contoso.com")

文字Characters

さまざまな文字を指定します。Specify different characters.

CharacterCharacter DescriptionDescription Example 一致の例Sample Matches
aa この文字が 1 回出現することを表します。One occurrence of the character. Computer=RegEx("srv01.contoso.com")Computer=RegEx("srv01.contoso.com") srv01.contoso.comsrv01.contoso.com
に関するページを参照してください。. 任意の 1 文字を表します。Any single character. Computer=RegEx("srv...contoso.com")Computer=RegEx("srv...contoso.com") srv01.contoso.comsrv01.contoso.com
srv02.contoso.comsrv02.contoso.com
srv03.contoso.comsrv03.contoso.com
a?a? この文字が 0 回または 1 回出現することを表します。Zero or one occurrence of the character. Computer=RegEx("srv01?.contoso.com")Computer=RegEx("srv01?.contoso.com") srv0.contoso.comsrv0.contoso.com
srv01.contoso.comsrv01.contoso.com
aa この文字が 0 回以上出現することを表します。Zero or more occurrences of the character. Computer=RegEx("srv01.contoso.com")Computer=RegEx("srv01.contoso.com") srv0.contoso.comsrv0.contoso.com
srv01.contoso.comsrv01.contoso.com
srv011.contoso.comsrv011.contoso.com
srv0111.contoso.comsrv0111.contoso.com
a+a+ この文字が 1 回以上出現することを表します。One or more occurrences of the character. Computer=RegEx("srv01+.contoso.com")Computer=RegEx("srv01+.contoso.com") srv01.contoso.comsrv01.contoso.com
srv011.contoso.comsrv011.contoso.com
srv0111.contoso.comsrv0111.contoso.com
[abc][abc] 角かっこ内の任意の 1 文字と一致することを表します。Match any single character in the brackets Computer=RegEx("srv0[123].contoso.com")Computer=RegEx("srv0[123].contoso.com") srv01.contoso.comsrv01.contoso.com
srv02.contoso.comsrv02.contoso.com
srv03.contoso.comsrv03.contoso.com
[a-z][a-z] この範囲内の 1 文字と一致することを表します。Match a single character in the range. 複数の範囲を含めることができます。Can include multiple ranges. Computer=RegEx("srv0[1-3].contoso.com")Computer=RegEx("srv0[1-3].contoso.com") srv01.contoso.comsrv01.contoso.com
srv02.contoso.comsrv02.contoso.com
srv03.contoso.comsrv03.contoso.com
[^abc][^abc] 角かっこ内の文字以外であることを表します。None of the characters in the brackets Computer=RegEx("srv0[^123].contoso.com")Computer=RegEx("srv0[^123].contoso.com") srv05.contoso.comsrv05.contoso.com
srv06.contoso.comsrv06.contoso.com
srv07.contoso.comsrv07.contoso.com
[^a-z][^a-z] この範囲内の文字以外であることを表します。None of the characters in the range. Computer=RegEx("srv0[^1-3].contoso.com")Computer=RegEx("srv0[^1-3].contoso.com") srv05.contoso.comsrv05.contoso.com
srv06.contoso.comsrv06.contoso.com
srv07.contoso.comsrv07.contoso.com
[n-m][n-m] 数字の範囲に一致することを表します。Match a range of numeric characters. Computer=RegEx("srv[01-03].contoso.com")Computer=RegEx("srv[01-03].contoso.com") srv01.contoso.comsrv01.contoso.com
srv02.contoso.comsrv02.contoso.com
srv03.contoso.comsrv03.contoso.com
@ 任意の文字列を表します。Any string of characters. Computer=RegEx("srv@.contoso.com")Computer=RegEx("srv@.contoso.com") srv01.contoso.comsrv01.contoso.com
srv02.contoso.comsrv02.contoso.com
srv03.contoso.comsrv03.contoso.com

文字の複数回の出現Multiple occurences of character

特定の文字の出現回数を指定します。Specify multiple occurrences of a particular characters.

CharacterCharacter DescriptionDescription Example 一致の例Sample Matches
a{n}a{n} この文字が n 回出現することを表します。n occurrences of the character. Computer=RegEx("bw-win-sc01{3}.bwren.lab")Computer=RegEx("bw-win-sc01{3}.bwren.lab") bw-win-sc0111.bwren.labbw-win-sc0111.bwren.lab
a{n,}a{n,} この文字が n 回以上出現することを表します。n or more occurrences of the character. Computer=RegEx("bw-win-sc01{3,}.bwren.lab")Computer=RegEx("bw-win-sc01{3,}.bwren.lab") bw-win-sc0111.bwren.labbw-win-sc0111.bwren.lab
bw-win-sc01111.bwren.labbw-win-sc01111.bwren.lab
bw-win-sc011111.bwren.labbw-win-sc011111.bwren.lab
bw-win-sc0111111.bwren.labbw-win-sc0111111.bwren.lab
a{n,m}a{n,m} この文字が nm 回出現することを表します。n to m occurrences of the character. Computer=RegEx("bw-win-sc01{3,5}.bwren.lab")Computer=RegEx("bw-win-sc01{3,5}.bwren.lab") bw-win-sc0111.bwren.labbw-win-sc0111.bwren.lab
bw-win-sc01111.bwren.labbw-win-sc01111.bwren.lab
bw-win-sc011111.bwren.labbw-win-sc011111.bwren.lab

論理式Logical expressions

複数の値の中から選択します。Select from multiple values.

CharacterCharacter DescriptionDescription Example 一致の例Sample Matches
|| 論理 OR。Logical OR. いずれかの式で一致する場合に結果を返します。Returns result if match on either expression. Type=Alert AlertSeverity=RegEx("Warning|Error")Type=Alert AlertSeverity=RegEx("Warning|Error") 警告Warning
エラーError
& 論理 AND。Logical AND. 両方の式で一致する場合に結果を返します。Returns result if match on both expressions EventData=regex("(Security.*&.*success.*)")EventData=regex("(Security.*&.*success.*)") Security auditing successfulSecurity auditing successful

リテラルLiterals

特殊文字をリテラル文字に変換します。Convert special characters to literal characters. これには、?-*^[]{}()+|.& などの正規表現に機能を提供する文字が含まれます。This includes characters that provide functionality to regular expressions such as ?-*^[]{}()+|.&.

CharacterCharacter DescriptionDescription Example 一致の例Sample Matches
\ 特殊文字をリテラルに変換します。Converts a special character to a literal. Status_CF=\[Error\]@Status_CF=\[Error\]@
Status_CF=Error\-@Status_CF=Error\-@
[Error]File not found.[Error]File not found.
Error-File not found.Error-File not found.

次のステップNext Steps

  • ログ検索を使用して、Log Analytics リポジトリ内のデータを表示および分析します。Get familiar with log searches to view and analyze data in the Log Analytics repository.