📝

Cloud Logging に集約したいログと扱い方

2023/12/08に公開

こんにちは、クラウドエース SRE ディビジョン所属の茜です。

皆さんは、日々の運用においてどのようなログを活用していますか?
運用の現場では、システムの健全性、セキュリティ、パフォーマンスのモニタリングに不可欠な多種多様なログが生成されます。これらのログを効率的かつ効果的に管理し活用することが、システム運用の成功には欠かせません。

本記事では、実運用で特に重要なアプリケーションログ、監査ログ、VPC フローログの取得と適切な管理方法について解説します。

Cloud Logging について

Cloud Logging は、ストレージ、検索、分析、モニタリングをサポートするリアルタイムのログ管理システムです。

Cloud Logging は、Google Cloud リソースから自動的にログを収集します。アプリケーション、オンプレミスリソース、他のクラウドプロバイダのリソースからログを収集することもできます。

Cloud Logging では、以下 4 種類のログを扱います。

プラットフォームログ

Google Cloud サービスによって自動的に書き込まれるログです。
これらのログはシステムの一部分に関する詳細な情報を提供しますが、システム全体の状況を完全に伝えるものではありません。全体の概要を把握するためには、他の情報源を参照する必要があります。
また、すべてのサービスでプラットフォームログが書き込まれるわけではないため、プラットフォームログを実装しているサービスについては、Google Cloud プラットフォームログのインデックス を参照してください。
例)Compute Engine インスタンスの障害復旧イベントログ

監査ログ

「誰が、どこで、いつ、何をしたのか」という情報を記録するログです。
Google Cloud リソース内での管理アクティビティとアクセスに関する情報を提供する Cloud Audit Logs と、Google のスタッフがユーザーの Google Cloud コンテンツにアクセスしたときに行ったアクションを提供する アクセスの透明性 という2つのログがあります。

ユーザー作成ログ

ユーザーが明示的に Cloud Logging へ投入するログです。カスタムアプリケーションとサービスによって書き込まれます。
Ops エージェント を使用することで、Compute Engine インスタンスからテレメトリーを収集することができます。
例)Compute Engine インスタンスの CPU 使用率

マルチクラウド、ハイブリッドクラウドログ

Microsoft Azure や Amazon Web Services から取り込むログや、オンプレミスから取り込むログです。本質的にはユーザー作成ログと同等です。

アプリケーションログ

アプリケーションログとは

アプリケーションログとは、システム上で動作している様々なアプリケーションの動作やアプリケーション上でのユーザーの操作などを記録するログです。

また、多くのアプリケーションにおいて、アプリケーションの性能を知る手がかりとなるパフォーマンスの情報もアプリケーションログから得ることができます。

Ops エージェント の利用

Ops エージェントは、Compute Engine インスタンスからテレメトリー(稼働データ)を収集する主要なエージェントです。

以前は、ログの収集には "Cloud Logging エージェント" が、指標の収集と送信には "Cloud Monitoring エージェント" が使用されていました。しかし、現在ではこれらのエージェントが Ops エージェントとして統合されています。

ロギング機能では、デフォルトで標準のシステムログ(Linux の /var/log/syslog と /var/log/messages、Windows のイベントログ)が収集されます。
モニタリング機能では、CPU やメモリの使用率などのシステム指標がデフォルトで収集されます。

Ops エージェントは、コンソールまたはコマンドラインから Compute Engine インスタンスにインストールすることで使用できます。

Ops エージェントで取得したテレメトリー
Ops エージェントで取得したテレメトリー

監査ログ

監査ログとは

監査ログは、「誰が、どこで、いつ、何をしたか」を特定するためのログです。

これにより、設定されたルールに従ってシステムが正しく動作しているか、ユーザーによる利用が適切か、さらには異なるシステム間の連携に問題がないかなどをチェックすることが可能です。

監査ログを詳細に記録することで、不正行為やセキュリティ違反が発生した際に、ログを参照することで迅速に追跡が行えます。

Cloud Audit Logs について

Cloud Audit Logs は、Google Cloud に対する API コールを証跡管理の目的で記録するサービスです。

Cloud Audit Logs では、以下 4 種類のログが記録されます。

名称 説明 料金 デフォルト
管理アクティビティ監査ログ リソースの構成変更に関する API コールを記録 無料 有効
データアクセス監査ログ リソース構成の読み取り、リソースデータの作成、変更、読み取りに関する API コールを記録 有料 無効(BigQuery のみ有効)
システムイベント監査ログ Google Cloud がリソースの構成を変更するアクションを記録 無料 有効
ポリシー拒否監査ログ Google Cloud サービスによるユーザーやサービスアカウントへのアクセス拒否を記録 有料 有効

管理アクティビティ監査ログシステムイベント監査ログ、およびポリシー拒否監査ログはデフォルトで有効に設定されており、Cloud Logging に自動的に収集されます。

管理アクティビティ監査ログのエントリ(インスタンス停止)
管理アクティビティ監査ログのエントリ(インスタンス停止)

データアクセス監査ログは、コンソールから任意のサービスに対して有効にすることができます。

選択したサービスに対して、記録したいオペレーションのタイプを「管理読み取り」「データ読み取り」「データ書き込み」から選択します。

データアクセス監査ログ有効化画面
データアクセス監査ログ有効化画面

VPC フローログ

VPC フローログとは

VPC フローログは、Compute Engine インスタンスによって送受信されたトラフィックの記録をサンプリングし、ログとして保存する機能です。

このログには、5 タプル(送信元 IP アドレス、送信元ポート番号、送信先 IP アドレス、送信先ポート番号、プロトコル番号)などの情報が含まれています。

これにより、どの IP アドレスがいつどの相手と情報をやり取りしたか、また、どの国へのトラフィックが多いのかといった詳細な情報を把握することが可能になります。

ログの収集

VPC フローログは、サブネット単位で有効化、無効化することができます。

有効化すると、サブネット内のすべての Compute Engine インスタンスに対してトラフィックログの取得が行われます。

トラフィックの送受信はユーザーが設定した任意の間隔で取得され、「特定の VM のみ」「特定送信元 IP のトラフィックのみ」といったように、記録する対象トラフィックをフィルタすることもできます。

VPC フローログ設定画面
VPC フローログ設定画面

VPC フローログのエントリ
VPC フローログのエントリ(https://www.google.com へのアクセス)

取得したログの管理

シンクの設定

シンクとは、Cloud Logging に収集されたログの振り分けを行うコンポーネントです。
Cloud Logging で収集されたログは、シンクを使用して異なる保存先に転送することができます。

デフォルトでは _Required_Default というシンクが存在しており、それぞれ同名の _Required と _Default というログバケットにログをルーティングする設定になっています。

_Required ログバケットには、「管理アクティビティ監査ログ」「システムイベント監査ログ」等が自動的に転送され、400 日間保持されます。

_Default ログバケットには、_Required ログバケットに保存されないログエントリが転送されます。デフォルトの保持期間は 30 日です。

ユーザーが独自に定義したシンクでは、ログの転送先として、ログバケット他の Google Cloud プロジェクトPub/Sub トピックBigQuery データセットCloud Storage バケットを指定することができます。

この設定により、以下のような柔軟なログ管理が可能になります。

  1. アーカイブ目的には Cloud Storage を使用する
    ログの長期保存が必要な場合、Cloud Storage が第一の選択肢になります。ユーザーはシンクを設定して、特定のログをバケットに転送し、必要に応じて長期間保存することができます。これにより、コンプライアンス要件や将来の分析のために重要なログデータを安全に保管できます。
  2. 分析目的には BigQuery を使用する
    ログデータの分析が目的の場合、BigQuery を選択します。シンクを使用してログを BigQuery データセットに転送し、BigQuery の高速な分析機能を活用してログデータから洞察を得ることができます。これにより、リアルタイムの監視、トレンド分析、またはカスタムレポートの生成が可能になります。

シンクの設定では、特定のログタイプや特定のリソースをフィルタリングして、必要なログ情報のみを選択的に保存することができます。

例えば、セキュリティ関連のログは長期保存のために Cloud Storage に、アプリケーションのパフォーマンスログは分析のために BigQuery に送る、といった設定を行うことが可能です。

ログルーティングの概念図
ログルーティングの概念図

ライフサイクル管理

ライフサイクル管理は、Cloud Storage に保存されたデータの保管期間やアクセス頻度に基づいて、自動的にそのデータを管理する機能です。

この機能を利用することで、データの自動削除やストレージクラスの変更が可能となり、ストレージコストの削減につながります。特に、長期間保存されるアーカイブ目的のデータや、アクセス頻度が低いデータの管理に有効です。

以下は、Cloud Storage で利用可能なストレージクラスとその特徴です。

名称 取得料金 保存料金
(東京/月)
使用ケース
STANDARD $0/GB $0.023/GB 頻繁にアクセスされるデータや短時間だけ保存されるデータ
NEARLINE $0.01/GB $0.016/GB 読み取りまたは変更を月に 1 回程度しか行わないデータ
COLDLINE $0.02/GB $0.006/GB 四半期に 1 回程度しか読み取りや変更を行わないデータ
ARCHIVE $0.05/GB $0.0025/GB 1 年間に 1 回未満しかアクセスしないデータ

ライフサイクル管理機能を活用することで、以下のような使用例が考えられます。

  • 1 年以上経過したログデータのストレージクラスを自動的に ARCHIVE に移行する設定を行う。これにより、長期間アクセスされないデータの保管コストを削減する。
  • 2 年以上経過したログデータを自動的に削除する設定を行う。これにより、不要なデータの蓄積を防ぎ、ストレージスペースを有効活用する。

データの可視化と活用

BigQuery は、大量のログデータを迅速に分析することができます。一方、Looker Studio は、データを視覚化し、理解しやすい形で情報を提供するためのツールです。

これらを組み合わせることで、複雑なデータセットを直感的なダッシュボードやレポートに変換し、データ駆動型の意思決定をサポートします。

Looker Studio は、Google が提供する様々なデータをリアルタイムに反映させたレポートを作成できる無料の BI ツールです。

Google のサービスを中心に様々なデータソースと簡単に接続することができ、そのデータを様々な形でビジュアライズすることができます。また、権限付与されたメンバー間で共有することができ、共同編集することもできます。

Looker Studio の主な機能は以下の通りです。

  1. 可視化
    データをグラフ、チャート、表などの多様な形式で視覚化できます。これにより、データのトレンドやパターンを直感的に理解することが可能になります。
    また自動でデータが更新されるため、リアルタイムのデータをモニタリング可能です。

  2. 複数データの連携
    Google アナリティクス、Google 広告、BigQuery など、Google が提供している各種サービスと簡単にデータの連携が可能です。
    また、800 以上の外部データソースとも容易に連携できます。

  3. 共有
    作成したレポートは、URL を介して簡単に共有できます。
    アクセス権限の管理により、データのセキュリティを保ちながらチームや組織間でのコラボレーションを促進します。

レポートエディタ画面
レポートエディタ画面

まとめ

今回は、アプリケーションログ、監査ログ、VPC フローログという取得しておきたい 3 種類のログと、それらの取得後の管理方法について簡潔にご紹介しました。
システムを安全かつ効率的に運用していくために、必要なログを選別し、適切に管理しましょう。

Discussion