Google Cloud Monitoringの基礎知識 & Apacheサーバーの指標を取集する方法を解説

今回は、すぐに理解できる基礎知識とApacheサーバーの指標を収集するデモを行います。
2024.01.23

Cloud Monitoringとは

サービス概要

Cloud Monitoringは、いわゆるシステムやアプリケーションへの監視機能を備えたGoogle Cloud(GCP)のサービスです。
ほとんどの Google Cloud サービスと統合されていて、サービスのパフォーマンス情報が自動的に収集されます。

さらに、サードパーティのアプリケーションからも指標を収集することもできるため、オンプレミスの環境など多岐に渡る使用を検討できます。

利用用途

下記のような、システムやアプリケーションへの課題についてアプローチが可能です。(一例)

  • サービスの負荷はどのくらいか?
  • ウェブサイトが適切に応答しているか?
  • サービスが正しく動作しているか?
  • 正しいSLO内の通信ができているか?

このようなメトリクスを収集した上で、アラートアクション、セキュリティ的な一時対応に繋げることができます。
また、今回は説明しませんが、Security Command Centerと連携して、アプローチを組み合わせることもできます。

指標の取集に必要な準備

必要な権限とAPI

【使用する権限】
今回はブログ用なので、事前定義ロールから各種Admin権限を付与します。

  • モニタリング 管理者
  • Compute 管理者
  • Logging 管理者

【必要なAPI】
もし、新規プロジェクトを使い初めの方がいましたら、APIを有効化する必要があります。

  • Compute Engine API
  • Cloud Monitoring API
  • Cloud Logging API

Compute Engine(VM)の指標を収集する(デモ)

Opsエージェントのインストール

今回は、VMを作成し、その中にOpsエージェントをインストールして指標(メトリクス)を収集していきます。
GCE(VM)の作成の全体の解説は省略しますが、作成の一部にOpsエージェントをインストールする過程があるのでそこのみ共有します。

  • 今回はテスト用なので、1番安価な[f1-micro]のインスタンスを使用します。(スポットVMは使用しません)

  • [ファイアウォール]では、[HTTPトラフィックを許可する][HTTPS トラフィックを許可する]を選択します。
  • [オブザーバビリティ-Ops エージェント]にて、[Monitoring と Logging 用の Ops エージェントをインストールする]を選択します。

Apache ウェブサーバーのインストール

作成したVMにApacheをインストールしていきます。(指標を収集するために作成)
ただし、ボリュームが多くなってしまうのでインストール過程の画像は省略します。

  • 作成したGCEの1番右にある[接続]列の[SSH]を押下します

これで作成したVMにログインすることができますので、次に、Apacheをインストールしていきます。

  • SSHログインしているターミナルに下記コマンドを貼り付け、実行します
    • sudo apt-get update
  • 次のコマンドで、Apache2 ウェブサーバーをインストールします
    • sudo apt-get install apache2 php7.0
  • 実行後、VMページに移動し、外部IPアドレスをコピーします(下記は仮IP)
    • 30.60.70.183

  • コピーした外部IPを下記のコマンドに反映し、新しいブラウザでURLを検索します
    • http://30.60.70.183
  • Apache2 Debian のデフォルト ページが表示されます

Apache ウェブサーバーのログと指標を収集する

  • SSHで作成したVMにログイン後、下記のコマンドを貼り付け、実行します
# Configures Ops Agent to collect telemetry from the app and restart Ops Agent.

set -e

# Create a back up of the existing file so existing configurations are not lost.
sudo cp /etc/google-cloud-ops-agent/config.yaml /etc/google-cloud-ops-agent/config.yaml.bak

# Configure the Ops Agent.
sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
metrics:
  receivers:
    apache:
      type: apache
  service:
    pipelines:
      apache:
        receivers:
          - apache
logging:
  receivers:
    apache_access:
      type: apache_access
    apache_error:
      type: apache_error
  service:
    pipelines:
      apache:
        receivers:
          - apache_access
          - apache_error
EOF

sudo service google-cloud-ops-agent restart
sleep 60

これで、Apacheウェブサーバーからログ指標を収集して取り込むための構成が作成されました。

トラフィックを生成する

  • ターミナルで次のコマンドを実行すると、Apacheウェブサーバーへのリクエストが生成されます
timeout 120 bash -c -- 'while true; do curl localhost; sleep $((RANDOM % 4)) ; done'
  • すると、ターミナル上で、長いHTMLのテキストが表示されます

一旦、2分ほど時間を置き、次のステップに進みます。

Apacheの指標を表示する

  • Cloudコンソールから、[Monitoring]を検索し、[ダッシュボード]を表示させます(URL)
  • 下記のようにOpsエージェントと統合されたことを確認できるので[Apache Overview]を押下します

  • Cloudコンソールからそれぞれの指標を確認することができます

まとめ

今回は公式のチュートリアルを参考にデモを行いました。
実際には、指標を収集し、アラートを飛ばすのような操作もできますので、 次はそちらのデモを行いたいと思います。

ダイエット余談

家におすすめのダイエット用具

私が最もお勧めするダイエット用具はフィットネスバイクです。
理由は下記にまとめます。

  • いつでも簡単に有酸素運動することが可能
  • ペダルの負荷(抵抗)を変えることにより、HIITのような中〜高強度な運動をすることも可能
  • 使い方によっては、背中のトレーニングをすることができる(これはマジです)
  • 在宅ワークで集中が切れる時に活用でき、昼休みに上記に挙げた運動が全てできる
  • Amazonでも安く買えることができるし、さらにフリマアプリを使えば最低価格で購入することができる

とにかく痩せたいと言う方は、フィットネスバイクを検討してみるのが良いかもしれません。
私はフィットネスバイクを購入してからダイエット効率が変わりました。