Cloud Loggingについて
what
- Google CloudのCloud Loggingについて基本概要など調べたことをまとめる
- 適宜追記予定
Cloud Loggingとは
GoogleCloud上のシステム等が生成したログを収集・保管・管理するための仕組み。
基本的にGoogleCloud上のサービスが出力するログはCloud Loggingへと集められる。
収集されたログはログバケットと呼ばれるストレージで保管され、期間が過ぎたら破棄するといった設定を行うことが可能。
ログはコンソールのログエクスプローラーで閲覧・クエリすることができ、アラートを上げるような設定も行うことができる。
対象のログ
Google Cloudが生成するログ
- BigQueryやCloud Run等のGoogleCloudサービス
コンポーネントログ
- カスタム アプリケーションとサービスによって書き込まれるログ
ユーザーが生成するログ
- VMのエージェント経由やAPI経由でユーザーがCloudLoggingに投入したログ
セキュリティログ(監査ログ)
- Cloud Audit Logsのログ
- アクセスの透明ログ
マルチクラウドトハイブリッドクラウドのログ
- Microsoft AzureやAWSから取り込んだログやオンプレミスから取り込んだログ
ログの保存先
ログの保存先ストレージは以下から選択できる
- ログバケット(Cloud Logging独自のストレージ)
- Cloud Storageバケット
- BigQueryデータセット
- Pub/Sub トピック
ログバケットはCloudLogging独自のストレージであり、このログバケットに保管されているログをCloudLoggingのログエクスプローラーから閲覧できる。
料金
CloudLoggingの料金は以下2つの軸で計算される
- 取り込み処理
- ストレージ
取り込み処理
Cloud Loggingのログバケットに取り込むログのGB数に応じて料金が発生する
- 料金: $0.50/GiB
- Cloud Loggingログバケットに投入されたログのサイズに応じて課金
ストレージ
ログバケットの保管ストレージにかかる料金を指す
- 料金: $0.01/GiB
- 30日以上保管するログバケット上のログにのみ適用。30日以内の保管なら無料。
- ログをGCSやBigQuery等に転送する際はそれらの料金が発生する点に注意すること。
取り込み処理料金の節約
取り込み処理の料金は、ログのボリュームが大きくなるに従い高額になっていく。
ただし、これはCloudLoggingログバケットに対して取り込むログサイズにのみ発生する。
つまり、以下に対しては料金が発生しない。
- GCS/BigQuery等にルーティングされたログ(シンクという機能を利用する)
- 上記の方法を用いる際に除外フィルタで除外したログ。
ログの量が膨大になった場合、除外フィルタで取り込むログをフィルタリングしたり、GCSやBigQueryへ転送することによって料金を節約できる。
ただし、転送先のサービスの利用料がかかるため、事前に確認する必要がある。
ログの閲覧
Webエクスプローラー
- GoogleCloudのwebコンソール画面→ログエクスプローラーで確認が可能
- またgcloud コマンドを利用することでも閲覧ができる
クエリ言語
ログエクスプローラやgcloudコマンド上でクエリを実行する事によって、ログをフィルタリングすることも可能。(なお、WebコンソールでもGUI経由でフィルタリングが可能)。
インデックス
CloudLoggingの1つ1つのデータにはインデックスの概念がある。
以下のフィールドにインデックスが貼られており、クエリに利用することで抽出を高速に行うことが出来る。
- resource.type
- resource.labels.*
- logName
- severity
- timestamp
- insertId
- operation.id
- trace
- httpRequest.status
- labels.*
- split.uid
ログ監視
ログベースの指標
ログの特定文字列を正規表現で検知し、その検知数を基準にしてCloudMonitoringに指標として送信する機能。
これをCloudMonitoringのアラートポリシーを利用して検知することでログ監視が可能になる。
ログベースのアラート
ログの特定文字列を検知すると、直接アラートを通知することが出来る機能。
「ログベースの指標」と同じような事が出来るが、文字列件数を指標化しないため、数値として後から統計は取れない。
しかし、簡単な手順でアラートを設定することが可能。
ログルーティングとログの保存
ログルーティング
画像の最上部がログの発生元。
ここからログがCloudLoggingに向けて投入される。
投入されたログはログルーターと呼ばれるものにより振り分け先を決定される。
ログルーターは、シンクと呼ばれる個別の設定を持っており、ログはシンクに定義された設定に応じて保存先に振り分けられる。
ログの振り分け先としては以下
- GCSバケット
- BigQueryデータセット
- Pub/Subトピック
- 他のGoogleCloudプロジェクト
シンク
シンク: Cloud Loggingに入ってきたログの振り分けを行うコンポーネント。
APIを通じてCloudLoggingに入ってきたログは、シンクによって宛先であるログバケットやBigQuery等に振り分けられる。
【設定値】
- ログの保存先
- ログの振り分け先を選択
- 包含フィルタ
- そのシンクがどのログを保存先に振り分けるかを決定する
- 除外フィルタ
- どのログをシンクから除外するかを決定する
Discussion