Cloud Logging の基本的な使い方
[履歴] [最終更新] (2021/05/09 01:18:23)

概要

Cloud Logging は GCP 内のリソース等で生成されるログを処理するためのサービスです。旧称は Google Stackdriver Logs です。Cloud Logging 自体は、Operations Suite という枠組みの一部という位置付けです。基本的な使い方を記載します。

gcloud および API の利用

書き込み (textPayloadjsonPayload がサポートされています)

gcloud logging write my-test-log 'A simple entry.'
gcloud logging write --payload-type=json my-test-log '{ "message": "My second entry", "weather": "partly cloudy"}'

読み出し

gcloud logging read 'resource.type=global'
gcloud logging read 'resource.type=global' --freshness 10d --limit 2

削除

gcloud logging logs delete my-test-log

API の利用 entries.list (Chrome ブラウザから直接 EXECUTE することもできます)

curl -sS -XPOST -H 'Content-Type: applicaiton/json' \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://logging.googleapis.com/v2/entries:list \
-d @req.json

req.json

{
  "resourceNames": [
    "projects/my-project-xxxx"
  ],
  "filter": "resource.type=global",
  "orderBy": "timestamp desc"
}

上記 API は、例えばこちらのページで利用した Terraform モジュールが利用するライブラリでも利用されています。

書き込み

            res = self.api.entries().write(body=body).execute()
...

        return {
            'timestamp': {'seconds': int(time.time())},
            'insertId': record['etag'],
            'jsonPayload': {
                'requestMetadata': {'callerIp': record.get('ipAddress')},
                'authenticationInfo': {
                    'callerType': record['actor'].get('callerType'),
                    'principalEmail': record['actor'].get('email')
                },
                'methodName': record['events'][0]['name'],
                'parameters': record['events'][0].get('parameters'),
                'report_timestamp': self.get_time_dict(record)
            },
            'resource': {'type': 'global'}
        }

読み出し

        query = {
            'orderBy': 'timestamp desc',
            'pageSize': 1,
            'resourceNames': [self.project_id],
            'filter': 'logName={}'.format(destination)
        }
        log = self.api.entries().list(body=query).execute()

ログ エクスプローラについて

Cloud Logging は書き込まれたログをルーティングして、既定では以下の二つの ログバケット のいずれかに格納します。

Uploaded Image

  • _Required → 400日の保持期間を持ちます。GCP のリソース作成時のログなどが書き込まれます。
  • _Default → 30日の保持期間を持ちます。API で書き込んだログはこちらに格納されます。料金を支払えば保持期間を延長設定できます。

既定の二つの Log Sink に加えて、Pub/Sub や Cloud Storage、BigQuery にログを格納するための Log Sink を独自に作成することもできます。

Uploaded Image

Routing and storage overview

ログは tail -f コマンドのように、ストリーミング確認できます。

Uploaded Image

「ストレージによるスコープ」を選ぶことで Log Sink を選択できます。「範囲を絞り込む」をクリックします。

Uploaded Image

上記 _Required_Default 以外の Log Sink を利用している場合には、明示的に選択しないと表示されないことがあるため注意します。

Uploaded Image

その他

関連ページ