Azure LogAnalyticsでWindowsServerを監視してみた

ポータルから[ログの分析]を選択し設定していきます。

詳しくは、 Azure LogAnalytics 概要についてまとめてみた を参照願います。

まずは、[仮想マシン]より対象となるVMが接続されていることを確認します。

[ログ]から取得するデータのクエリをなげていきます。

ComputerNameとCounterNameを調べる

CPUの使用率

#sample query

Perf
| where ( Computer == "VM名" )
| where ( ObjectName == "Processor" )
| where ( CounterName == "% Processor Time" )
| summarize AggregatedValue=avg(CounterValue) by Computer, bin(TimeGenerated, 1m)

Memoryの使用率

#sample query

Perf
| where ( Computer == "VM名" )
| where ( ObjectName == "Memory" )
| where ( CounterName == "% Committed Bytes In Use" )
| summarize AggregatedValue=avg(CounterValue) by Computer, bin(TimeGenerated, 1m)

Diskの空き容量

※デフォルトではトータルのディスク空き容量しか取得できません。

CやDドライブのみデータを取得したい場合には[詳細設定]よりパフォーマンスカウントを追加します。

#sample query

Perf
| where (CounterName == "% Free Space" and InstanceName =="C:")
| where Computer == "yrldwhdrs01.yrldom.local"
| summarize AggregatedValue=avg(CounterValue) by Computer, bin(TimeGenerated, 1m)

Heartbeatの監視(死活監視)

#sample query

Heartbeat | where Computer == "VM名"

取得したデータ(CPU / メモリ / ディスク)のメトリック表示

#sample query

Perf
| where Computer == "VM名"

| where CounterName == "% Processor Time" or CounterName == "% Free Space" and InstanceName =="C:" or CounterName == "% Committed Bytes In Use"
| summarize AveragePerDay = avg(CounterValue) by CounterName, bin(TimeGenerated, 1d)
| sort by TimeGenerated asc
| render timechart with (ycolumns=AveragePerDay, xcolumn=TimeGenerated)

※データの保持期間がデフォルトで30日の為、30日以前のデータを取得したい場合、保持期間を変更する必要があります。

アラートの設定方法

上記のqueryを実行した後、[新しいアラートルール]を選択します。

[条件]からアラートの閾値を設定[アクション]から通知先を設定[アラートの詳細]で通知アラートの件名/説明を記入

[条件]からアラートの閾値を設定

[アクション]から通知先を設定

[アラートの詳細]で通知アラートの件名/説明を記入

まとめ

上記以外にも様々なデータを取得することが可能です。

本記事で紹介したリソースの監視以外にもLogAnalyticsではログの監視なども可能です。

リソース監視以外の部分については別記事でご紹介できればと考えています。

この記事を書いた人

azure-recipe-user