Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Prepalert ~Mackerelアラートにログや集計値を貼り付けてくれるトイル削減ツール~
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ikeda-masashi
July 11, 2023
Technology
2.2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Prepalert ~Mackerelアラートにログや集計値を貼り付けてくれるトイル削減ツール~
2023/07/11 のMackerel Meetup #14の発表資料です。
ikeda-masashi
July 11, 2023
More Decks by ikeda-masashi
See All by ikeda-masashi
コーディングエージェントに 独自Extension書かせてみた
mashiike
0
88
Redshiftを中心としたAWSでのデータ基盤
mashiike
0
350
運用の役立たないダッシュボードの作り方。
mashiike
3
1.3k
Amazon Aurora MySQL と Amazon Redshift の Zero-ETL Integration について使い所を考えてみた!
mashiike
0
1k
Warningアラートを放置しない!アラート駆動でログやメトリックを自動収集する仕組みによる恩恵
mashiike
6
5.2k
人狼ゲームで考えるデータ基盤 〜データとはいったい・・・〜
mashiike
0
470
『エンタープライズ』という言葉の重さ 〜Data Vault 2.0をやめた2022年冬〜
mashiike
2
6.1k
Redshift ServerlessとProvisioned Cluster のちょっとした違い
mashiike
0
7.4k
「北欧、暮らしの道具店」のデータ基盤の変遷
mashiike
1
3.7k
Other Decks in Technology
See All in Technology
Bucharest Tech Week 2026 - Reinventing testing practices in the AI era
edeandrea
PRO
1
170
“詰む”前に仕組みを作れ 〜技術の波に溺れないためのキャッチアップ術〜
takasyou
2
500
LayerX コーポレートエンジニアリング室におけるサプライチェーンセキュリティへの取り組み / Supply Chain Security at LayerX Corporate Engineering
yuyatakeyama
2
700
攻撃者視点で考えるDetection Engineering
cryptopeg
3
2k
Claude Codeをどのように キャッチアップしているか
oikon48
13
8.6k
FPGAの開発コンペでZephyrを使ってみた
iotengineer22
0
150
【2026年版】 ベクトル検索とEmbedding最前線
mocobeta
23
6.1k
AI-DLCを “そのまま導入しなかった”話 ~組織に合わせてアジャストした 私たちの実践共有~
hiroramos4
PRO
1
260
徹底討論!ECS vs EKS!
daitak
3
1.1k
Lightning近況報告
kozy4324
0
210
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.6k
生成 AI 実践ガイド (概略版) AIガバナンス編
asei
0
140
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
240
Statistics for Hackers
jakevdp
799
230k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
A better future with KSS
kneath
240
18k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
780
The Cult of Friendly URLs
andyhume
79
6.9k
The Language of Interfaces
destraynor
162
27k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
How to build a perfect <img>
jonoalderson
1
5.7k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
230
Mind Mapping
helmedeiros
PRO
1
260
Transcript
Prepalert ~Mackerelアラートにログや集計値を貼り付けてくれるトイル削減ツール~ SREチーム データエンジニア 池田将士 @mashiike 18:15 - 18:35
自己紹介 ただの酒飲みです。 『餌を与えないでください。』 Config 迷人です。
会社概要 経営理念: つくる人を増やす。 (´・ω・`)モキュ?
アジェンダ • まえおき • Prepalertについて ◦ 動作イメージ ◦ 導入方法 ◦
例えばCloudwatch Logs Insightsの結果を貼り付けたい ◦ 導入効果 • 今後の展望と今の悩み
アジェンダ • まえおき • Prepalertについて ◦ 動作イメージ ◦ 導入方法 ◦
例えばCloudwatch Logs Insightsの結果を貼り付けたい ◦ 導入効果 • 今後の展望と今の悩み
皆さん。監視してますか? ありますよね? こういう監視ルール 『5xx エラーが発生したら、Warning』 『平均レスポンスタイムが500ms以上なら、Warning』
皆さん。監視してますか? 発生しますよね? こういうWarningアラート
皆さん。監視してますか? 業務時間外 5xx 1件! Warning!!!!! どうする?
私は。。。 ネトゲしてますね
そもそも、Wariningアラートは緊急度が高くない。 そこそこな頻度で発生するもの※1 本当にヤバかったらCriticalアラートがある。 なんなら、On Callの仕組みがあることも。 なので、一旦忘れるのはアリ ※1 例えばALBにAWS WAFを導入している場合 https://aws.amazon.com/jp/waf/sla/
によれば、99.95%なので1ヶ月あたり21分程度 はアクセスできないことがある。 AWS WAFにアクセスできないとALBは5xxエラー を返すので ALB 5xx > 1 のWarningアラートだ と、そこそこな頻度で発生する。
そもそも、Wariningアラートは緊急度が高くない。 そこそこな頻度で発生するもの※1 本当にヤバかったらCriticalアラートがある。 なんなら、On Callの仕組みがあることも。 なので、一旦忘れるのはアリ ※ あとで弊社の藤原が MackerelとGrafana on
call の連携の話でLTします。 そちらもお楽しみに。
しかし、定例でちゃんと振り返る。 Warningを無視はいずれ 重大な事故につながる 【ハインリッヒの法則】 1 29 300 重大な事故 軽微な事故 事故未遂
ところで、ALB 5xx があったのはわかった。 『このWarning どのエンドポイントで発生したんですか? 』 『えぇ〜っとちょっとまってくださいねredashでアクセスログを・・・ 』 『あー。/hoge/<hoge_id> ですねぇ。』 『これアプリケーションのログを見ないとですねぇ。』
『あー。S3にあるやつかー。Redshiftに取り込んでないんですよね。』 『github.com/koluku/s3s つかって、調べるか。便利だよねこれ〜』
ところで、ALB 5xx があったのはわかった。 『このWarning どのエンドポイントで発生したんですか? 』 『えぇ〜っとちょっとまってくださいねredashでアクセスログを・・・ 』 『あー。/hoge/<hoge_id> ですねぇ。』 『これアプリケーションのログを見ないとですねぇ。』
『あー。S3にあるやつかー。Redshiftに取り込んでないんですよね。』 『github.com/koluku/s3s つかって、調べるか。便利だよねこれ〜』
ところで、ALB 5xx があったのはわかった。 『このWarning どのエンドポイントで発生したんですか? 』 『えぇ〜っとちょっとまってくださいねredashでアクセスログを・・・ 』 『あー。/hoge/<hoge_id> ですねぇ。』 『これアプリケーションのログを見ないとですねぇ。』
『あー。S3にあるやつかー。Redshiftに取り込んでないんですよね。』 『github.com/koluku/s3s つかって、調べるか。便利だよねこれ〜』
ところで、ALB 5xx があったのはわかった。 『このWarning どのエンドポイントで発生したんですか? 』 『えぇ〜っとちょっとまってくださいねredashでアクセスログを・・・ 』 『あー。/hoge/<hoge_id> ですねぇ。』 『これアプリケーションのログを見ないとですねぇ。』
『あー。S3にあるやつかー。Redshiftに取り込んでないんですよね。』 『github.com/koluku/s3s つかって、調べるか。便利だよねこれ〜』
ところで、ALB 5xx があったのはわかった。 『このWarning どのエンドポイントで発生したんですか? 』 『えぇ〜っとちょっとまってくださいねredashでアクセスログを・・・ 』 『あー。/hoge/<hoge_id> ですねぇ。』 『これアプリケーションのログを見ないとですねぇ。』
『あー。S3にあるやつかー。Redshiftに取り込んでないんですよね。』 『github.com/koluku/s3s つかって、調べるか。便利だよねこれ〜』
ところで、ALB 5xx があったのはわかった。 『このWarning どのエンドポイントで発生したんですか? 』 『えぇ〜っとちょっとまってくださいねredashでアクセスログを・・・ 』 『あー。/hoge/<hoge_id> ですねぇ。』 『これアプリケーションのログを見ないとですねぇ。』
『あー。S3にあるやつかー。Redshiftに取り込んでないんですよね。』 『github.com/koluku/s3s つかって、調べるか。便利だよねこれ〜』
もしかして、これ自動化できますか? できますよね。これ、 です。本当にありがとうございます。
そこで作りました『Prepalert』 由来は: 『Prepare』+『Alert』 アラートが来たら、 ログや集計値をかき集める仕組み
アジェンダ • まえおき • Prepalertについて ◦ 動作イメージ ◦ 導入方法 ◦
例えばCloudwatch Logs Insightsの結果を貼り付けたい ◦ 導入効果 • 今後の展望と今の悩み
動作イメージ 機能1: アラートのメモに貼り付け 機能2: グラフアノテーションとして貼り付け Target Groupは408 Request Timeoutを返してるので 処理時間が長すぎたんですね。
動作イメージ 機能3: 長すぎる場合のS3バックエンド 長いと、省略して末尾にShow details リンクを付ける。 簡易S3Viewer機能も
動作イメージ 機能 core: 3つのquery_runner (v0.11時点) query_runner = データを取得するためのqueryを実行する先 • Redshift
Data API (SQL) • S3 Select API (SQL) • Cloudwatch Logs Insights API (Insights Query)
アジェンダ • まえおき • Prepalertについて ◦ 動作イメージ ◦ 導入方法 ◦
例えばCloudwatch Logs Insightsの結果を貼り付けたい ◦ 導入効果 • 今後の展望と今の悩み
導入方法 とりあえず、お手元にInstallして Initサブコマンドで 初期設定ファイルを生成してください。
導入方法 プロンプトに従って、graph annotationを投稿する先のサービス名とsqs queue名を入れます
導入方法 プロンプトに従って、graph annotationを投稿する先のサービス名とsqs queue名を入れます するとconfig.hclができてるので。一旦それで中身を見てみます。
導入方法 とりあえず。 なんでもいいんで Alertが開いたときに 『How do you respond to alerts?』
とメモを貼り付けるConfigができます。 ※コメントを外すと WebhookにBASIC認証がつけられる
導入方法 リポジトリの lambda/配下にあるサンプルを参考にLambda関数とかその周りをデプロイして
導入方法 MackerelでWebhookを設定すると、アラートが来たときに勝手に メモが更新される。
アジェンダ • まえおき • Prepalertについて ◦ 動作イメージ ◦ 導入方法 ◦
例えばCloudwatch Logs Insightsの結果を貼り付けたい ◦ 導入効果 • 今後の展望と今の悩み
例えばCloudwatch Logs Insightsの結果を貼り付けたい 例えばCloudwatch Logs Insightsの情報を載せたいとき。 左のような設定を足して
例えばCloudwatch Logs Insightsの結果を貼り付けたい 設定をこう変える after before
例えばCloudwatch Logs Insightsの結果を貼り付けたい かえるとこうなる。 (横幅が長すぎて・・・見れない)
例えばCloudwatch Logs Insightsの結果を貼り付けたい かえるとこうなる。 (横幅が長すぎて・・・見れない) なので、生ログをのせるときはS3バックエンド の設定をおすすめします。 横スクロールのできるViewerで見れるので。 メモにリンクが入っていたら、ハイパーリンクにしてワンクリックで飛べるようになってると嬉しぃなぁ(こっそり)
アジェンダ • まえおき • Prepalertについて ◦ 動作イメージ ◦ 導入方法 ◦
例えばCloudwatch Logs Insightsの結果を貼り付けたい ◦ 導入効果 • 今後の展望と今の悩み
導入効果 Perpalertを導入した結果、定例では以下のような変化があった。 • Warningアラートの確認時間が短くなった。 • 『後で調べます』が少なくなり。『コレ気になるから調べます』が増えた。 • 思わぬ内容を発見できることがあった。 ◦ 謎のタイムアウトの原因
◦ ログの迷子 ◦ etc…
アジェンダ • まえおき • Prepalertについて ◦ 動作イメージ ◦ 導入方法 ◦
例えばCloudwatch Logs Insightsの結果を貼り付けたい ◦ 導入効果 • 今後の展望と今の悩み
今後の展望 開発・運用そろそろ1年。 をリリースしたいなぁ・・・
今後の展望 開発・運用そろそろ1年。 をリリースしたいなぁ・・・ しかし、その前に解決したい悩みがある。 導入しづらい • Lambda関数が2つ • 設定が複雑
(HCLで柔軟性はあれど)
今の悩み - Lambda関数が2つ Lambda関数が2つあるのでデプロイ2回 周りのリソースもなにげに多い。
今の悩み - 設定が複雑 Lambda関数が2つあるのでデプロイ2回 周りのリソースもなにげに多い。 HCLで柔軟にできるが、 Query対象ごとに設定項目が違うため 複雑になる。 今後Query対象が増え
ると考えると。。。 もっともっと複雑に
今の悩み • Lambda関数が2つ 対策: Monlithic Lambda化 2023年9月中にはv1.0.0 を出したい・・・(決意) https://speakerdeck.com/_kensh/monolith-firs
t-serverless-development?slide=46 • 設定が複雑 対策1: initサブコマンドの強化? 対策2: Handbook的なの書く? 対策ex: そもそも設定見直す?
アジェンダ • まえおき • Prepalertについて ◦ 動作イメージ ◦ 導入方法 ◦
例えばCloudwatch Logs Insightsの結果を貼り付けたい ◦ 導入効果 • 今後の展望と今の悩み
まとめ Warningアラートを定例で振り返る際に 毎回調査のためにログの取得やメトリクスの集計が発生していた。 コレはトイルなのでPrepalertという 自動ログ取得・メトリクス集計+アラートに関連付け を行うツールを作った。 そろそろ1年なので、v1.0.0を出したいのだが、 導入がしづらいのが難点。なんとかしたい。 2023年9月中を目処になんか考えて頑張るぞ!
あと1点。 (採用担当に挟んどいてって言われたやつ)
\カヤックに興味を持ってくださった方へ/ ニュースレターへ登録しませんか? カヤック社員がどんな風に働いているか? どんな制作実績があるか? などの情報を定期的に配信しています!
ご清聴ありがとうございました