Edited at

GCP Stackdriver LoggingをLaravelで使う

More than 1 year has passed since last update.


参考URL


サービスアカウント作成

'IAMと管理 > サービスアカウント' 画面で新しくサービスアカウントを作成し、Credential jsonファイルを作成する。


ライブラリインストール

composer require google/cloud-logging


ログ出力

Globalではなく、対象インスタンスでのログとして保存できるようにする。

$logger = LoggingClient::psrBatchLogger('app', [

'resource' => [
'type' => 'gce_instance',
'labels' => [
'instance_id' => "69787982158********",// 対象インスタンスでのログとして保存
]
],
'clientConfig' => [
'keyFilePath' => base_path('gcp_credentials.json'),// サービスアカウント作成時の認証情報jsonファイル
]
]);

$logger->info("hoge");


確認

「Logging > Logs」画面で確認可能、このとき「GCS VM Instance」で対象のインスタンスでフィルターを掛ける。


アラート通知


Stackdriver Logging Agentをインストール

対象のインスタンスにログインして下記コマンド実行

curl -sSO https://dl.google.com/cloudagents/install-logging-agent.sh

sudo bash install-logging-agent.sh


Logs-based metrics作成

「Logging > Logs-based metrics」画面の「CREATE METRIC」をクリック

下記のようにSeverityがERRORのログを集めるように設定します。

参考URL: https://cloud.google.com/logging/docs/logs-based-metrics/counter-metrics

スクリーンショット 2018-08-21 20.33.39.png


Alert Policy作成

Stackdriverの「Alerting」画面へ行き

「Add Policy」をクリック、ConditionにはMetric Conditionsを選択し

先程作ったオリジナルのLogs-based metricslogging/user/ErrorをMetricとして選択。

スクリーンショット 2018-08-21 19.20.09.png