Google Cloud CLI: ログエントリ を tail -f する

        

Note: 2024-02-22 現在、当該機能は BETA に移行しているようです。詳細については gcloud beta logging tail を参照してみてください。

Google Cloud CLICloud Logging のエントリーを tail -f する機能があったことに気づいたので、備忘として記事にしておこうと思います。

Google Cloud でのログは Cloud Logging に集約されており、Google Cloud CLIlogging 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 という項目が自動で付与される。

Google_Cloud_Logging_and_Cloud_Run.drawio.png

たとえば、Cloud Run の各リソースに関連づけられたログエントリは、以下のような値が設定される。

cloud_run_job

Cloud Run ジョブ から送信されたログに付与される。このタイプのログエントリには、以下のプロパティが含まれる。

cloud_run_revision

Cloud Run のリビジョンから送信されたログに付与される。含まれるプロパティは以下の通り。

Monitored resources and services | Cloud Logging より抜粋。

以上

comments powered by Disqus