2018/07/01

GCP: gcloud コマンドで GAEのログを取る方法

備忘録
GAE アプリのログ解析をする場合、Stackdriver logging からログを取り出す必要あり。gcloud コマンドで簡単にできる。



# log のリストを取得
$ gcloud logging logs list
NAME
projects/<project名>/logs/appengine.googleapis.com%2Frequest_log
# GAEのlogを取得する; 取得して見やすくする
$ gcloud logging read 'resource.type=gae_app AND \
logName=projects/<プロジェクト名>/logs/appengine.googleapis.com%2Frequest_log AND \
severity>=INFO' --limit 1 --format json | python -m json.tool
[
{
"httpRequest": {
"status": 200
# GAEのlogを取得する; フィルター付き
# 結果の加工まで含めた処理
# timestamp の文字列を変数にするには、dt=`date --rfc-3339=s --date="1 days ago"|tr ' ' 'T'`
# で、変数にして timestamp>="'"${dt}"'" で指定する
$ gcloud logging read 'resource.type=gae_app AND \
logName=projects/<project名>/logs/appengine.googleapis.com%2Frequest_log AND \
timestamp>="2018-06-29T23:39:34+00:00" AND \ #logの期間を設定
severity>=INFO AND \
"品番が見つかりません"' \ #ログ内の日本語や文字列でフィルターしたければ、””で囲むだけ
--limit 10 \ # 検索結果の表示上限を指定
--format json | \
jq ".[].protoPayload.<parse tag>" | \ # 結果をjq に渡して、パース
sed -e '/<行頭文字>/d' | \ # 不要な行を削除
awk '{print $4}' | \ # スペース区切りの 4列目を取得
sed -e s/,//g > test.log # 不要文字(この場合はコンマ)を削除して、test.logへ出力


0 件のコメント:

コメントを投稿