Cloud Logging
ログを集約する
メモ
範囲を絞り込むで「プロジェクトによるスコープ」と「ストレージによるスコープ」を選択できる
複数プロジェクトのログを集約しているようなGCPプロジェクトだと「ストレージによるスコープ」を選択しないと検索できない
hiroki.icon罠に引っかかった
概念
ログエントリ
ログ
ログエントリのコレクション
logNameに一意な名前をつける
ログルーター
ログシンク
ログエントリを保存先に転送する
ログバケット
GCSではないらしい
Loggingでのログが保存されるストレージ
gcloud logging buckets create BUCKET_ID --project=DESTINATION_PROJECT_ID
gcloud logging buckets create my-bucket --location global --description "My first bucket"
ログビュー
例えば全てのGCPプロジェクトのログを一つのログバケットに集約した時に、ユーザーにはある特定の範囲しか見えてはいけないとする。
ログビューでフィルターを書いて、ログビューにユーザーの権限を付与することで実現できる
ログの収集
GCPコンポーネントからのログは基本的に自動で収集される
アプリなどはLoggin Agent(fluentd)を通して収集
GCE,EC2はLoggingエージェントはインストールされていないので自分でインストール
GKE,GAEは最初からLoggingエージェントインストール済み
その他はLoggin APIから収集される
https://gyazo.com/a8f79b02de36978f4fd1be0a153ba594
ログの保管
ログが一箇所に全部まとまって保存されている感じ
画面がシンプルになる
ロググループとかで分割されている方が整理されていると見れなくもない
保管先は以下の3つ
ログバケット
Cloud Storage バケット
BigQuery データセット
ログバケットに保管されているログだけが、 Cloud Logging コンソールのログエクスプローラーから閲覧可能
ログの連携
ログルーター
保存先とログのクエリを指定するだけで簡単に向き先にもシンクできる
hiroki.icon圧倒的簡単さ
以下の向き先にシンクできる
GCS
PubSub
サードパーティと連携するならここ
BigQuery
ログバケット
https://gyazo.com/c38a2a979597e7b86ca9db18120d1e1e
クエリ
クエリできるもの
リソース(resource.type)
ログ名(logName)
重大度(severity)
時間範囲(timestamp)
ユースケース
監査ログ
Loggingのエクスプローラからクエリで見れる
auditログの種類
Activity
data_access
system_event
code:Audit
logName=("projects/projectname/logs/cloudaudit.googleapis.com%2Factivity" OR "projects/projectname/logs/cloudaudit.googleapis.com%2Fdata_access" OR "projects/projectname/logs/cloudaudit.googleapis.com%2Fsystem_event")
code:Audit
logName="projects/projectname/logs/cloudaudit.googleapis.com%2Factivity"
protoPayload.authenticationInfo.principalEmail="hoge@fuga.co.jp"
protoPayload.methodName=~".+Delete"
複数のGCPプロジェクトのログを一つのログバケットにまとめる
まとめ先のバケットを作成する
それぞれのプロジェクトのログルータの向き先をまとめるログバケットへ向ける