MackerelでGoogle Cloudを監視してみた

こんにちは、SCSKの谷です。

オンプレ、AWS、Azure、Google Cloudといったハイブリッドで利用する環境では、監視対象が増えツールも分散しがちです。
Mackerelのインテグレーションを使えば、AWS・Azure・Google Cloudの標準監視サービスからメトリックを取得し、Mackerel上で一元管理できるため、マルチクラウド及びハイブリッド環境の監視を効率化できます。

以前、AWSのインテグレーションを使った監視を試しましたが、今回はGoogle Cloudのインテグレーションを実際に設定してみました。
Mackerel で AWS のサーバーレスサービスを監視してみた – TechHarmony

今回の記事では、Google Cloudインテグレーションの設定方法と実際にMackerelの管理画面でどのように見えるのかをご紹介します。
ぜひ最後までご覧ください!

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
当部署では他にも記事を投稿していますので、よかったらご覧ください。
MackerelでSNMP監視を検証してみた – TechHarmony
MackerelでAmazon Connectを監視してみた – TechHarmony
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

監視対象について

今回監視対象としたのは、以下のサービスのリソースになります。
・Compute Engine  仮想マシンを提供するIaaSサービスで、自由度の高いインフラ構築が可能
・App Engine      アプリケーションを自動スケーリングするPaaSサービスで、
                                  コードをデプロイするだけで運用できる
・Cloud SQL                フルマネージドなリレーショナルデータベースサービスで、
                                   MySQLやPostgreSQLなどを簡単に利用可能

上記のサービスを選択した理由としては、2025年10月現在Mackerelでメトリックを収集することが可能なGoogle Cloudのサービスが上記3つのためです。

各サービスのリソースについては監視を実装するためにデプロイしており、最低限のスペックのものを使用しております。

MackerelでのGoogle Cloudインテグレーション設定手順

MackerelでGoogle Cloudのインテグレーションを利用して監視するための手順を説明していきます。
Mackerel上でGoogle Cloudのインテグレーションを設定するためには、事前にGoogle Cloud側で準備が必要となります。

内容としては同じですが、Google Cloud側の事前準備の方法として以下の2パターンがあります。
・Cloud SDKを用いた連携方法
→Cloudshellを用いた方法。CLIを利用して設定するためGoogle Cloudに慣れている人におすすめです。
・Google Consoleを用いた連携方法
→上記の通りGoogle Consoleを利用した方法です。GUIであるため分かりやすくGoogle Cloudに慣れていない人にもおすすめです。

私はGoogle Cloudを触るのが今回が初めてだったので、「Google Consoleを用いた連携方法」で事前準備を実施しました。

ここからは、Google Cloudの事前準備の手順の説明後、Mackerel上でのインテグレーション設定の登録方法を説明していきます。

Cloud APIの有効化(Google Cloud)

まずはじめにMackerelにデータ連携するために必要なGoogle CloudのCloud APIを有効化します。

(1)Google Consoleへログインし、「APIライブラリ」に移動します。

(2)以下のCloud APIを有効化します(今回はすべて有効化しました)

必須 Cloud Resource Manager API  
必須 Cloud Monitoring API  
任意 Compute Engine API Compute Engineインスタンスの監視が必要な場合
任意 Cloud SQL Admin API Cloud SQLインスタンスの監視が必要な場合
任意 App Engine Admin API App Engineサービスの監視が必要な場合

サービスアカウント作成(Google Cloud)

Mackerelがメトリックを取得するためのサービスアカウントを作成していきます。

(1)「IAMと管理>サービスアカウント」を選択し、サービスアカウントの管理画面を開きます。

(2)上部にある「サービスアカウントを作成」を選択します。

(3)必要な上を入力し、サービスアカウントを作成します。
・サービスアカウント名
・サービスアカウントID
・サービスアカウントの説明(任意)

(4)Mackerelがメトリック取得に必要なロールを付与します。

必須 参照者  
必須 モニタリング閲覧者  
任意 Compute 閲覧者 Compute Engineインスタンスの監視が必要な場合
任意 Cloud SQL 閲覧者 Cloud SQLインスタンスの監視が必要な場合
任意 App Engine 閲覧者 App Engineサービスの監視が必要な場合


(5)完了ボタンを押し、サービスアカウントの設定を完了する。

サービスアカウントキー発行(Google Cloud)

MackerelとGoogle Cloud間の認証のためのキーを発行します。

(1)作成したサービスアカウントの管理画面を開きます。

(2)「鍵」のタブを開き、「キーの追加>新しい鍵の作成」を選択します。

(3)キーのタイプとして「JSON」を選択し、「作成」ボタンをクリックします。

(4)作成後、秘密鍵のJSONファイルがローカルにダウンロードされます。

以上でGoogle Cloud側の設定が完了になります。ここからMackerel上でGoogle Cloudインテグレーションの設定をしていきます。

Google Cloudインテグレーション設定(Mackerel)

続いてMackerelの管理画面上でGoogle Cloudインテグレーション設定を登録していきます。

(1)Mackerelの管理画面に入り、Google Cloud インテグレーションタブを開きます。

(2)「新しいGoogle Cloudインテグレーション設定を登録」ボタンを選択します。
(3)プロジェクトの設定に連携対象のGoogle Cloudのプロジェクトコード及び先ほど作成したJSON形式の秘密鍵の中身をペーストします。

(4)メトリックを収集するサービスを選択し、作成ボタンをクリックします。
※メトリック選択時に好きなサービス/ロールを紐づけることができます。

連携確認

以上でGoogle Cloudインテグレーションの設定は完了です。
Mackerel上でGoogle Cloudインテグレーションの設定直後の状態を見てみましょう。
ここまでの手順が完了すると、自動でMackerelにGoogle Cloud上のリソース情報が連携され管理画面の「ホスト」のところですぐに確認することができます。

以下の画像は今回Google Cloudで作成したリソースをMackerelの管理画面上のホスト一覧で表示したものです。
クラウドインテグレーションソートをすることにより、対象を絞っております。

今回作成したホストに対応するサービスは以下の通りです。

サービス名 ホスト名
App Engine 20251001t062902.default
Compute Engine vm-demo-1
Cloud SQL pg-demo-1

Mackerel上での監視メトリック確認

初めてでしたが、設定作業はつまずくことなく設定することができました。
ここからは、Google Cloudから連携されたデータがMackerel上でどのように見えているかをサービスごとに載せていきます。

Mackerel上でのメトリック確認方法

Mackerelの管理画面から各ホストのメトリックデータのグラフを確認するためには、ホスト一覧から確認したい対象のホスト名をクリックすることで、メトリックデータ一覧の画面に遷移します。

メトリックデータ一覧の画面は以下のようになります。
Google Cloudから取得したホストの概要が載っております。画像では途切れていますが、初期状態ではMackerelの管理画面上で表示可能な全てのグラフが並んでおります。表示するグラフについては管理画面で調整可能です。

Compute Engine

Mackerelでは様々なCompute Engineのメトリックを取得することが可能です。
MackerelからCompute Engineのリソースのメトリックを取得するには、「Compute Engine API」のAPIが有効化されている必要があります。
また、連携用のサービスアカウントに対して、「Compute 閲覧者」のロールを付与している必要がございます。

以下は代表的なメトリックになります。

グラフ名 メトリック 説明
CPU instance/cpu/utilization インスタンスのCPU使用率。負荷監視の基本指標。
Disk bytes instance/disk/read_bytes_count
instance/disk/write_bytes_count
ディスク読み込み量。I/O性能確認に重要。
ディスク書き込み量。ストレージ負荷の把握に利用。
Network bytes instance/network/received_bytes_count
instance/network/sent_bytes_count
ネットワークで受信したバイト数。トラフィック監視に使用。
ネットワークで送信したバイト数。外部通信の負荷確認に重要。
Firewall dropped packets count firewall/dropped_packets_count ファイアウォールでドロップされたパケット数。セキュリティ監視に重要。

Mackerelの画面で確認したところ合計11個のグラフが表示されていました。
今回はその中のCPUグラフをお見せします。
CPUの使用率を可視化したグラフとなっており単位は「%」です。今回16:25~16:35の時間帯にstressコマンドをVM上で実行し、CPUの使用率を意図的に上げ正しくメトリックが連携されているか確認しました。

App Engine

MackerelからApp Engineのメトリックを取得するには、「App Engine Admin API」のAPIが有効化されている必要があります。
また、連携用のサービスアカウントに対して、「App Engine 閲覧者」のロールを付与している必要がございます。

理由が不明のため、偶々なのかもしれませんが、App Engineだけはインテグレーションを設定してからMackerelの管理画面のホスト上に表示されるまで他の2サービスと比べて時間がかかりました。(約20分くらい)

時間がたてば表示されメトリックが連携されていたので、連携されてこない場合でも30分程度待つことをおすすめします!

以下は代表的なメトリックになります。

グラフ名 メトリック 説明
CPU Usage system/cpu/usage インスタンスのCPU使用量。負荷監視の基本指標。
Memory usage system/memory/usage メモリ使用量。リソース不足やスケーリング判断に重要。
HTTP DoS intercept http/server/dos_intercept_count DoS攻撃を検知・遮断した回数。セキュリティ監視に重要。
HTTP Response count http/server/response_count HTTPレスポンス数。アプリのリクエスト処理量を把握。

Mackerelの画面で確認したところ合計8個のグラフが表示されていました。
今回はこの中のHTTP Response countグラフをお見せします。
こちらのグラフはHTTPレスポンス数を可視化したグラフになります。

初期の状態だとApp Engine宛へのアクセスがなかったため、Google Cloudから取ってくるメトリックが存在せず、グラフが表示されない状態でした。12時頃に繰り返しアクセスすることにより、以下のようにグラフが表示され正しくメトリックが連携できていることを確認できました。

Cloud SQL

MackerelからCloud SQLのメトリックを取得するには、「Cloud SQL Admin API」のAPIが有効化されている必要があります。
また、連携用のサービスアカウントに対して、「Cloud SQL 閲覧者」のロールを付与している必要がございます。

以下は代表的なメトリックになります。
使用するDB(MySQLやPostgerSQL)により取得可能なメトリックに違いがあり、
今回はPostgerSQLを使用したので、PostgerSQLのメトリックを記載しております。

グラフ名 メトリック 説明
CPU database/cpu/utilization データベースのCPU使用率。負荷監視の基本指標。
Memory database/memory/usage
database/memory/quota
 メモリ使用量と割り当て容量。リソース不足の検知に重要。
Connections database/network/connections データベース接続数。接続プールやスロット枯渇の検知に利用。
PostgreSQL transaction database/postgresql/transaction_count  PostgreSQLのトランザクション数。処理負荷の把握に利用。

Mackerelの画面で確認したところ合計10個のグラフが表示されていました。
今回はこの中のPostgreSQL transactionグラフをお見せします。
こちらのグラフはPostgreSQLのトランザクション数を可視化したグラフになります。

 

まとめ

今回、MackerelのGoogle Cloudインテグレーションを使って監視を設定してみましたが、手順は非常にシンプルで、他クラウドと同様に迷うことなく進められました。初めての方でも問題なく導入できると思いますので、より詳しい内容を知りたい方は、公式のヘルプを確認してみることをお勧めします。
Google Cloudインテグレーション – Mackerel ヘルプ

設定後、App Engineのリソースがホスト一覧に表示されず少し戸惑いましたが、事前に認識しておけば大丈夫です。
他のクラウドサービスと比べると、現状Mackerelで監視できるGoogle Cloudのサービスはまだ3つのみです。Google Cloudの強みは機械学習やAI系のサービスなので、そのようなサービスも監視できるようになればいいなと思います。便利な機能だからこそ、さらに対応サービスが増えることに期待です。今後のはてなさんの動きに注目してください!

今後もMackerelに関する記事を投稿していきますので、よろしくお願いします!

タイトルとURLをコピーしました