Azure 監視 運用

Azure仮想マシンでメトリクスを取得する3つの方法。

はじめに

Azureには複数のメトリクス取得方法があります。
最初に標準で取得する仮想マシンのメトリクスを見てみましょう。
大きな項目にすると以下が含まれます

  • プロセッサ
  • ディスク(ファイルシステム)
  • ネットワーク

しかし、実際問題として監視に必要なメトリクスを考えた場合には以下の項目と必要とます。

  • プロセッサ
  • ディスク(ファイルシステム)
  • メモリ
  • ネットワーク

大体はこの4項目になるでしょう。
監視で重要になる項目である「メモリ」が標準では取得できません。
そこで、ケース別に分けてメトリクス取得方法を詳しく見ていきたいと思います。

  • 標準メトリクスを使用する
  • 診断設定でメトリクスを取得する
  • Log Analyticsでメトリクスを取得する

標準メトリクスを使用する

標準でサポートされるメトリクスは前項で書いた通り

  • プロセッサ
  • ディスク(ファイルシステム)
  • ネットワーク

の3つです。

仮想マシンを開いたときの概要に出てくるメトリクスですね。


Microsoft.Compute/virtualMachines
これらはAzureのホストレベル(基盤側)から取得する詳細情報になります。

メトリクスで新しいグラフも作成することも可能です。

監視という名目がない場合は標準で問題ないと思います。
サードパーティ製の監視ソフトなどを用いる場合もこの設定で問題ない場合もあります。
また、CPUの使用率のみで監視する場合は問題ないと思います。
最大の売りは追加作業、追加費用が掛からないということぐらいです。

診断設定でメトリクスを取得する

このメトリクス取集はAzure Diagnosticsエージェントによって行われるゲストレベルで収集されるメトリクスです。

仮想マシンを開き診断設定から監視を有効にすることができます。
このとき別途ストレージアカウントが必要となります。

完了後、収集されるデータはメトリクスとSyslogの情報が取得されます。
メトリクスは以下です。

  • プロセッサ
  • メモリ
  • ネットワーク
  • ファイルシステム
  • ディスク

Syslogは以下です。

  • LOG_AUTH
  • LOG_AUTHPRIV
  • LOG_CRON
  • LOG_DAEMON
  • LOG_FTP
  • LOG_KERN
  • LOG_LOCAL0
  • LOG_LOCAL1
  • LOG_LOCAL2
  • LOG_LOCAL3
  • LOG_LOCAL4
  • LOG_LOCAL5
  • LOG_LOCAL6
  • LOG_LOCAL7
  • LOG_LPR
  • LOG_MAIL
  • LOG_NEWS
  • LOG_SYSLOG
  • LOG_USER
  • LOG_UUCP

ログレベルも選択可能です。
また、収取自体を無効にすることも可能です。

トリクスの詳細は以下を確認してください

グラフはメトリックから新しいグラフを作成することで確認できます。
ただし、選択するメトリック名前空間がゲスト(クラシック)を確認する必要があります。

CPUの使用率がグラフ化されていることが確認できます。
現段階では自動的にLog Analytics ワークスペース(DefaultWorkspace)が作成されます。

Log Analyticsでメトリクスを取得する

Log Analyticsもエージェントで取得されるデータです。
メトリクスは以下です。

  • プロセッサ
  • メモリ
  • ネットワーク
  • ファイルシステム
  • ディスク

内容的には診断設定で取得できるものと変わりません。

取得にはログ機能を有効かする必要があります。

その後(5~10分後)、ログを確認します。

Perf
| summarize by ObjectName, CounterName

取得されているメトリクスを確認できます。

例としてCPUの使用率を可視化することも可能です。

Azure Monitorで確認することができます。

ただし、最大のデータ保有期間が730日であることに注意する必要があります。
その分費用もかかります。

まとめ

Azure Monitorを利用する方向になっていくと思いますが、LogAnalyticsを利用した場合長期保存には向いていないため、長期に保存したい場合、診断設定で取得するなど回避するなどの方法も検討する必要があると考えられます。プレビューだったりクラシックだったり、少々ややこしい部分もあり、いっそのことDatadogのような監視系SaaSで対応するのもありだと思います。

-Azure, 監視, 運用
-,