Google Cloud CLI: ログエントリ を tail -f する
tips
Note: 2024-02-22 現在、当該機能は BETA に移行しているようです。詳細については gcloud beta logging tail を参照してみてください。
Google Cloud CLI に Cloud Logging のエントリーを tail -f
する機能があったことに気づいたので、備忘として記事にしておこうと思います。
Google Cloud でのログは Cloud Logging に集約されており、Google Cloud CLI の logging read
コマンドを使うのが便利ですが、gcloud logging read は待機して出力されるログを随時出力するようなオプション(いわゆる tail -f
)は存在していません。これらの機能は 2022年08月現在は alpha
な機能として提供されているようで。 gcloud alpha tail
として利用が可能です。
詳細については Live tailing log entries | Google Cloud に記載がありました。
モチベーション
ローカル環境で開発をしている場合は標準出力や /var/log
あたりのファイルを tail -f
することでログを気軽に参照・監視するが、クラウド環境に配備した際にはそうは行かない。アプリケーションのログの末尾を監視しつつ、動作の検証をする というユースケースは一般的に必要になると思うので、備忘のためにメモをしてゆこうと思う。(AWSとGCP を行き来していると、毎回忘れてしまうので)
tail -f でのログの監視
事前に Google Cloud CLI プレビュー機能群を有効にする必要がある:
$ gcloud components install beta
$ sudo pip3 install grpcio
$ export CLOUDSDK_PYTHON_SITEPACKAGES=1
logging tail
を実行し、ログを監視する:
例えば、Cloud Run のログを監視するなら
$ gcloud beta logging tail 'resource.type="cloud_run_revision"' --format=json
Google Cloud におけるログ管理の基本
Google Cloud では、Cloud Logging というフルマネージドでリアルタイムなログ管理サービスが提供されている。これは、AWS における CloudWatch Logs に対応するサービスで、Google Cloud上の各種リソースからログを収集し、一元的に参照する機能を提供している。
Cloud Logging で管理されるログエントリそれぞれには、どのリソースから送信されてきたログか? が判別できるように、resource.type
という項目が自動で付与される。
たとえば、Cloud Run の各リソースに関連づけられたログエントリは、以下のような値が設定される。
cloud_run_job
Cloud Run ジョブ から送信されたログに付与される。このタイプのログエントリには、以下のプロパティが含まれる。
project_id
: 関連するGCPプロジェクトの識別子(‘my-project’ など)job_name
: ジョブが配置されているリージョン名 (‘asia-northeast1’ など)location
: ジョブが存在しているロケーション
cloud_run_revision
Cloud Run のリビジョンから送信されたログに付与される。含まれるプロパティは以下の通り。
project_id
: このリソースに関連するGCPプロジェクトの識別子(“my-project “など)。service_name
: サービスの名前revision_name
: 送信元のリビジョン名location
: リビジョンが配置されているリージョン名 (‘asia-northeast1’ など)configuration_name
: ログの送信もとのリビジョンが作成された際に指定されたコンフィグレーション名
Monitored resources and services | Cloud Logging より抜粋。
以上
comments powered by Disqus