top of page

Azure Monitor クエリの特定ログの除外表示

  • ccf代表
  • 2021年3月23日
  • 読了時間: 2分

更新日:2021年4月7日

Azureの魅力の一つにイベントログを収集し、クエリを使った様々な検索や加工ができることがあります。今回はよく使いそうなイベントログから特定のイベントを除外して表示する方法を考えてみます。


①「エラー」のイベントを表示する

これは、シンプルにEventLevelName == 'Error'と各方法もありますが、認証系のエラーも表示したかったので、不要なものを除外しています。

Event
| where (EventLevelName != 'Information')
| where (EventLevelName != 'Success')
| where (EventLevelName != 'Warning')
| sort by TimeGenerated desc

②様々なパターンで検証

(1)対象となるすべてを「or」で連結した場合は、

・イベントログのタイプが、アプリケーション

或いは

・ソースが、Microsoft-Windows-Perflib

或いは

・イベントIDが、1023

となります。和集合(論理和)なので、すべての条件のいづれかに合致するものが表示されます。

Event
| where (EventLevelName != 'Information')
| where (EventLevelName != 'Success')
| where (EventLevelName != 'Warning')
| where (EventLog == 'Application') or (Source == 'Microsoft-Windows-Perflib') or (EventID != '1023')
| sort by TimeGenerated desc

(2)対象となるすべてを「and」で連結した場合は、

・イベントログのタイプが、アプリケーション

かつ

・ソースが、Microsoft-Windows-Perflib

かつ

・イベントIDが、1023

となります。共通部分(論理積)なので、すべての条件のすべてに合致するものが表示されます。

Event
| where (EventLevelName != 'Information')
| where (EventLevelName != 'Success')
| where (EventLevelName != 'Warning')
| where (EventLog == 'Application') and (Source == 'Microsoft-Windows-Perflib') and (EventID != '1023')
| sort by TimeGenerated desc

(3)対象となるログを除外したい場合には、

・イベントログのタイプが、アプリケーション

かつ

(・ソースが、Microsoft-Windows-Perflib

かつ

・イベントIDが、1023)以外

となります。共通部分(論理積)以外の部分が表示されます。

Event
| where (EventLevelName != 'Information')
| where (EventLevelName != 'Success')
| where (EventLevelName != 'Warning')
| where (EventLog == 'Application') and (Source != 'Microsoft-Windows-Perflib') and (EventID != '1023')
| sort by TimeGenerated desc

なんとなく感覚的には、EventLog != 'Application'とする必要があるように感じますが、以下のように日本語を置き換えると、少し理解できます。

・イベントログのタイプが、アプリケーション

である者のうち、

(・ソースが、Microsoft-Windows-Perflib

かつ

・イベントIDが、1023)を除いて


具体的には

A イベントログがアプリケーション

B ソースが、Microsoft-Windows-Perflib

C ソースが、Microsoft-Windows-Perflibかつ、イベントIDが、1023

D イベントIDが、1023

とすると、Aかつ(BかつD以外)ということになります。



Comments


bottom of page