#概要
OMS、Azure Log Analyticsの1つの特徴はそのとても強力な検索機能です。非常な柔軟なクエリによって様々なものを抽出、可視化することができます。
一方で、柔軟に生成できるからこそクエリの記述が難しいと感じたり、具体的に何にどのように使っていいかわからないという印象を持つ方も少なからずいるようです。(実際にはそんなに難しくないのですが)
そこで、この記事では、現場ですぐに使えるサンプルクエリを集めてみました。
#クエリ入力方法
検索クエリを入力するにはAzure管理ポータルのLog Analytics、あるいはOMSワークスペースにて「ログ検索」をクリックします。
ログの検索画面になり検索クエリを入力することができるようになります。
#OMS管理系
##コンピューターの最終データ報告日時
ObjectName!="Advisor Metrics" ObjectName!=ManagedSpace | measure max(TimeGenerated) as LastReportTime by Computer | Sort Computer
##種類別のレコード件数
* | Measure count() by Type
#サーバー管理系
##CPU使用率
Type:Perf CounterName="% Processor Time" InstanceName="_Total" | measure avg(CounterValue) by Computer Interval 1HOUR
##予期せぬシャットダウンが発生したコンピュータ
Type=Event EventID=6008 Source=EventLog
##ディスク空き容量
* Type=Perf CounterName="Free Megabytes"
##過去1時間の平均CPU使用率 Top10
* Type=Perf CounterName="% Processor Time" InstanceName="_Total" TimeGenerated>NOW-1HOUR | Measure avg(CounterValue) as AVGCPU by Computer | Sort AVGCPU desc | Top 10
##過去24時間で最もDiskQueueLengthが高かったコンピューターTop10
* Type=Perf ObjectName=LogicalDisk CounterName="Current Disk Queue Length" TimeGenerated>NOW-24HOUR| Measure Max(CounterValue) as MAXDiskQueue by Computer | Sort MAXDiskQueue desc | Top 10
##SQL Server がIOを15秒以上待った管理対象
EventID=833 EventLog=Application Source=MSSQLSERVER | measure count() by Computer
#セキュリティ関連
##重要な更新プログラムまたはセキュリティ更新プログラムがインストールされていないすべてのコンピューター
Type=Update UpdateState=Needed Optional=false (Classification="Security Updates" OR Classification="Critical Updates")
##ゲスト アカウントによるログオンがあったコンピューター
Type=SecurityEvent EventID=4624 (LogonType=10 or LogonType=3) TargetUserName="Guest" | Measure count() by Computer
##クリアテキストのパスワードによるログオン
Type=SecurityEvent EventID=4624 (LogonType=10 or LogonType=3) TargetUserName="Guest" | Measure count() by Computer
##アカウントのログオン失敗
Type=SecurityEvent EventID=4625 | measure count() by TargetAccount
##Windows Updateの自動更新が無効のコンピューターに対して適用されていない更新プログラム
Type=Update UpdateState=Needed Optional=false Computer IN {Type=UpdateSummary WindowsUpdateSetting=Manual | measure count() by Computer} | measure count() by KBID
##DOMAIN\userがログインしたコンピューターにログインしたその他のユーザー
Type=SecurityEvent EventID=4624 Account!="DOMAIN\\user" Computer IN { Type=SecurityEvent EventID=4624 Account="DOMAIN\\user" | measure count() by Computer } | measure count() by Account