SlideShare a Scribd company logo
Laravelのログにエラーが吐き出されたら自動的にBacklogにロ
グ内容を記載したチケットを作成する
20190419ARCANAMeetup#49
HikariFukasawa@hico00
依頼されました
リーダー
「CloudWatchから発行されるバグチケットが見辛いから、
エラー内容とか追記されるようにしてっ!」
当時の通知仕様
1.エラーが発生すると、laravel.logにstacktraceが吐き出される。
2.CloudWatchで"stacktrace"の文字列がログファイルに吐き出されると、アラートが発生するよ
うなアラームを設定。
3.アラートが発生すると、Backlogにメール(AWSSNS)でチケット登録する。
4.チケットが登録されたら、CloudWatch上で該当時間のログファイルを確認。(余裕があれば、
チケットの件名を書き換えたり)
Laravelのログにエラーが吐き出されたら自動的にBacklogにログ内容を記載したチケットを作成する #sa_study
確かに見辛いというか、めんどかった
やりましょう
すでにCloudWatchでアラームは設定されているので、AWSSDKを使ってログ内容を取得する
ようなLambda関数を作成します。
laravel.logにstacktraceが吐き出されているので、それの内容をすべて抽出。
構成
CloudWatch‑>SNS‑>Lambda‑>SNS(Backlogのメール課題登録)
CloudWatchから渡されるデータ
{
AlarmName: 'php7app-stg20-ERROR',
AlarmDescription: null,
AWSAccountId: '217903947487',
NewStateValue: 'ALARM',
NewStateReason: 'Threshold Crossed: 1 datapoint [1.0 (20/03/19 09:27:00)] was
StateChangeTime: '2019-03-20T09:42:59.895+0000',
Region: 'Asia Pacific (Tokyo)',
OldStateValue: 'OK',
Trigger:
{
MetricName: 'php7app-stg20-ERROR',
Namespace: 'LogMetrics',
StatisticType: 'Statistic',
Statistic: 'SUM',
・・・省略
}
}
AWSSDK(JS)
使うメソッド
1.describeMetricFilters()
2.filterLogEvents()
describeMetricFilters
指定されたメトリクスフィルタの一覧を取得する
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatchLogs/latest/APIReference/API_Delete
MetricFilter.html
CloudWatchから渡される情報だけだと足りないので、詳細を取得する。
metricNameとmetricNamespaceの2つをパラメーターで渡す。
describeMetricFiltersのレスポンス
{
metricFilters: [{
filterName: 'stg20-ERROR',
filterPattern: 'stacktrace',
metricTransformations: [Array],
creationTime: 1553058610295,
logGroupName: 'kimisuka-stg-20/php7app/srv/current/storage/logs/laravel.log'
}]
}
filterLogEvents
指定されたロググループからのログイベント一覧を取得する
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatchLogs/latest/APIReference/API_FilterL
ogEvents.html
describeMetricFiltersで取得したデータを元に取得する。
logGroupName,filterPettern...
limit:取得件数
startTime/endTime:時間範囲をUnixタイムスタンプ(ミリ秒)で指定
filterLogEventsのレスポンス
{
events: [
{
logStreamName: 'php7app1',
timestamp: 1553249141154,
message: '[2019-03-22 19:05:40] staging.ERROR: Undefined variable: input {
ingestionTime: 1553249146221,
eventId: '34638613326711879619236554788766527172305841119978192896'
},
{
logStreamName: 'php7app1',
timestamp: 1553249141154,
message: '[stacktrace]',
ingestionTime: 1553249146221,
eventId: '34638613326711879619236554788766527172305841119978192897'
},
...省略
]
}
request.logの取得
laravel.logと同じディレクトリに存在しているので、logGroupNameの"laravel.log"箇所を書き
換えて取得。
Laravelのログにエラーが吐き出されたら自動的にBacklogにログ内容を記載したチケットを作成する #sa_study
おわりに
AWSLambda関数を作成するとき、ブラウザ上で直接コードを書くことはおすすめしません…
(ブラウザで開きっぱなしとかにしてると、セッションが切れて強制的にログインし直す必要が
出てきた時、保存されてない変更内容は…(お察し))
参考
CloudWatchでエラーログの内容を通知させたい|Qiita
https://qiita.com/onooooo/items/f59c69e30dc5b477f9fd
ご静聴ありがとうございました。

More Related Content

PDF
【勉強会資料】Systems Managerによるパッチ管理 for PCI DSS
PDF
Amazon VPC VPN接続設定 参考資料
PDF
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
PDF
Linux-HA Japanプロジェクトのこれまでとこれから
PDF
AWS Black Belt Online Seminar 2017 Auto Scaling
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
PPTX
分散ストレージ技術Cephの最新情報
PDF
Black Belt Online Seminar AWS上の暗号化ソリューション
【勉強会資料】Systems Managerによるパッチ管理 for PCI DSS
Amazon VPC VPN接続設定 参考資料
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
Linux-HA Japanプロジェクトのこれまでとこれから
AWS Black Belt Online Seminar 2017 Auto Scaling
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
分散ストレージ技術Cephの最新情報
Black Belt Online Seminar AWS上の暗号化ソリューション

What's hot (20)

PDF
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
PDF
サーバレスアーキテクチャで実現した「M-1グランプリ」敗者復活戦投票システム
PPTX
Elasticsearchインデクシングのパフォーマンスを測ってみた
PDF
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
PDF
AWS를 위한 도커, 컨테이너 (이미지) 환경 보안 방안 - 양희선 부장, TrendMicro :: AWS Summit Seoul 2019
PDF
おひとりさまAWS Organizationsのススメ
PDF
20201008 AWS独自設計推論チップInferentiaとInf1インスタンス
PPTX
AWS Amplify 入門
PDF
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
PDF
AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪
PDF
AWS Black Belt Online Seminar 2017 AWS Shield
PDF
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
PDF
AWS Black Belt Tech シリーズ 2016 - Amazon SQS / Amazon SNS
PDF
会社概要_株式会社サーバーワークス
PDF
AWS SAMで始めるサーバーレスアプリケーション開発
PDF
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
PPTX
機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで
PDF
AWS Black Belt Online Seminar 2016 AWS CloudFormation
PDF
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
PDF
ソフトウェアでのパケット処理あれこれ〜何故我々はロードバランサを自作するに至ったのか〜
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
サーバレスアーキテクチャで実現した「M-1グランプリ」敗者復活戦投票システム
Elasticsearchインデクシングのパフォーマンスを測ってみた
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS를 위한 도커, 컨테이너 (이미지) 환경 보안 방안 - 양희선 부장, TrendMicro :: AWS Summit Seoul 2019
おひとりさまAWS Organizationsのススメ
20201008 AWS独自設計推論チップInferentiaとInf1インスタンス
AWS Amplify 入門
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪
AWS Black Belt Online Seminar 2017 AWS Shield
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
AWS Black Belt Tech シリーズ 2016 - Amazon SQS / Amazon SNS
会社概要_株式会社サーバーワークス
AWS SAMで始めるサーバーレスアプリケーション開発
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで
AWS Black Belt Online Seminar 2016 AWS CloudFormation
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
ソフトウェアでのパケット処理あれこれ〜何故我々はロードバランサを自作するに至ったのか〜
Ad

More from Hikari Fukasawa (14)

PDF
『バーチャルキャスト』で自己紹介 #sa_study
PDF
アルカナのサーバーサイド開発を見直してみたい #sa_study
PDF
Unity&VR初心者が
UnityでVRゲームを
つくってみたい #sa_study
PDF
まよいの墓 - HackDay2017 #hackdayjp
PDF
Phpstormをつかいはじめました〜序〜 #sa_study
PDF
24時間ハッカソン応援システム『ちくるちゃん』@HackDay2016 #hackdayjp
PDF
抱負をわすれたくない #innocafe
PDF
みんなでおばけになる #mlkcca
PDF
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
PDF
PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@PHPカンファレンス2015 #phpcon2015
PDF
【あらすじ】PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@第94回PHP勉強会 #phpstudy
PDF
Hello Girl's World!!@女子エンジニアLT会 #dotsgirls
PDF
PHPer女子が語る!こんなコードを書くヒトはモテない~きほん編~@PHPカンファレンス2014
PDF
スマホの動画をテレビで再生!動画共有アプリがChromecastと歩む物語|DevLOVE現場甲子園2014 東日本大会
『バーチャルキャスト』で自己紹介 #sa_study
アルカナのサーバーサイド開発を見直してみたい #sa_study
Unity&VR初心者が
UnityでVRゲームを
つくってみたい #sa_study
まよいの墓 - HackDay2017 #hackdayjp
Phpstormをつかいはじめました〜序〜 #sa_study
24時間ハッカソン応援システム『ちくるちゃん』@HackDay2016 #hackdayjp
抱負をわすれたくない #innocafe
みんなでおばけになる #mlkcca
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@PHPカンファレンス2015 #phpcon2015
【あらすじ】PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@第94回PHP勉強会 #phpstudy
Hello Girl's World!!@女子エンジニアLT会 #dotsgirls
PHPer女子が語る!こんなコードを書くヒトはモテない~きほん編~@PHPカンファレンス2014
スマホの動画をテレビで再生!動画共有アプリがChromecastと歩む物語|DevLOVE現場甲子園2014 東日本大会
Ad

Laravelのログにエラーが吐き出されたら自動的にBacklogにログ内容を記載したチケットを作成する #sa_study