こんにちは!G-genの片岡です。本記事では Cloud Monitoring で利用可能な、機械学習を使った Forecast condition (予測条件) を実際に検証してみました。
はじめに
Cloud Monitoring 振り返り
Cloud Monitoring では、アラートポリシーを用いて、アラートを通知する条件と手法を定義することができます。
例えば GCE の運用において、VMの負荷や稼働状況を収集し、指定した条件に応じてメールやSlack 通知を行うことで、事象に素早く気付くことが可能となります。
Cloud Monitoring の概要及び基本機能については、以下の記事で解説しています。
Forecast condition とは
Forecast condition (予測条件) は、ディスク容量
、メモリ使用率
、Google Cloud クォータ
などの指標(メトリクス)の値が、指定したウインドウ内にしきい値を超えると予測される場合に、アラートを発報できる機能です。
参考:アラート ポリシーの種類 | Cloud Monitoring | Google Cloud
なお、本機能は 2023 年 2 月現在 Preview 中です。Preview 段階のサービスは本番環境での利用は推奨されませんのでご注意ください。以下の記事で Preview 版について触れています。
検証内容
今回は Google Compute Engine (以下GCE) の VM の、永続ディスクの使用済み容量の増加傾向を学習させて、アラート通知をしてみます。
VM のセットアップ
検証用 VMは、Debian GNU/Linux 11 (bullseye)とします。
Cloud Monitoring はデフォルトで標準的な指標(Google Cloud の指標)を取得することができますが、今回取得したいディスク使用率
は、「Ops エージェント」を VM にインストールしないと取得できない指標です。
Ops エージェントの概要とセットアップ方法については、以下の記事で触れています。
アラート設定
設定する内容
今回は Forecast condition(予測条件)を利用し、メトリックの予測値に関するアラートを設定していきます。
Forecast condition を作成することで、予測ウィンドウ(予測期間)内において、しきい値に違反することが予測されたときに通知を受け取ることができます。
ディスク容量
、メモリ使用率
、Google Cloud クォータ
などに利用可能ですが、予測を始めるために、予測ウィンドウの2倍の初期学習時間が必要です。
予測ウィンドウは、1時間 〜 7日で指定可能ですが、例えば予測ウィンドウを 1 時間とした場合、2 時間の初期学習時間が必要です。初期学習のあとも、最大で予測ウインドウの 6倍の時間の直近データが学習されていきます。
条件設定
こちら の手順を参考に、ディスク使用率が予測ウィンドウ内にしきい値を超える と予測された場合に、通知を行うポリシーを作成します。
アラート条件を指標から選択します。
VM Instance
> Disk
> Disk utilization
を選択します。
Monitoring の対象とするデバイスのフィルタ設定を行います。
条件タイプとしてForecast
を選択、予測期間(予測ウィンドウ)は1時間
、しきい値は90% より上
とします。
通知チャンネル
とアラートポリシー名
を設定し、ポリシーを作成します。
動作検証
ダミーファイルを定期生成
VM上でディスク使用率を増加させるために、500MBのダミーファイルを、10分に1個作成するスクリプトを実行し、アラート状況を確認します。
# 500MB のダミーファイルを10分毎に作成(21:00から起動するようセット) $ while true; do dd if=/dev/zero of=`date "+%Y_%m%d_%H%M"`.dummy bs=1M count=500; sleep 600; done
今回は予測ウィンドウを1時間に設定しているため、ポリシー設定完了後から2時間の初期学習時間を経て、しきい値を超える1時間前にアラートが発報されるだろう という仮説を立て、その時を待ちます。
アラート確認
結果として期待通り、しきい値超過のタイミングが予測され、その約1時間前にアラートが発報されました。
VM 確認
VMのダミーファイルは以下の通り作成され、ファイル作成開始から約4時間経過後の2023_0212_1601.dummy
が作成された後にアラートが発報されていました。
# ダミーファイル 作成状況の確認 ls -lh |grep 500M -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 12:00 2023_0212_1200.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 12:10 2023_0212_1210.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 12:20 2023_0212_1220.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 12:30 2023_0212_1230.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 12:40 2023_0212_1240.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 12:50 2023_0212_1250.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 13:00 2023_0212_1300.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 13:10 2023_0212_1310.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 13:20 2023_0212_1320.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 13:30 2023_0212_1330.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 13:40 2023_0212_1340.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 13:50 2023_0212_1350.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 14:00 2023_0212_1400.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 14:10 2023_0212_1410.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 14:20 2023_0212_1420.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 14:30 2023_0212_1430.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 14:40 2023_0212_1440.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 14:50 2023_0212_1450.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 15:00 2023_0212_1500.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 15:11 2023_0212_1510.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 15:21 2023_0212_1521.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 15:31 2023_0212_1531.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 15:41 2023_0212_1541.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 15:51 2023_0212_1551.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 16:01 2023_0212_1601.dummy ★ -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 16:11 2023_0212_1611.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 16:21 2023_0212_1621.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 16:31 2023_0212_1631.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 16:41 2023_0212_1641.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 16:51 2023_0212_1651.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 17:01 2023_0212_1701.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 17:11 2023_0212_1711.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 17:21 2023_0212_1721.dummy -rw-rw-r--. 1 yoshinari yoshinari 500M Feb 12 17:31 2023_0212_1731.dummy
Incident metrics 確認
事前学習したディスク増加傾向を元に、このまま推移すると1時間以内(予測ウィンドウ)にしきい値を超えるということが予測され、アラートを通知することができました。
機械学習により未来が予測されることで、先回りした対応が可能になるなど、多くのメリットを享受できそうです。
様々な分野で機械学習が取り入れられており、今後もますます目が離せないですね!
片岡 義就 (記事一覧)
クラウドソリューション部
2022年7月 G-genにジョイン。
前職ではAWSをはじめインフラ全般の設計構築、販促企画に従事。お客様にとって最適なクラウドジャーニーを伴走支援すべく、スキルUPに奔走中。