📘 Akamai TrafficPeak の 便利な Alert 機能を解説
Webアプリやモバイルアプリのインフラ運用において、問題の早期検知は最も重要な要素です。
Akamai のログ可視化プラットフォーム TrafficPeak は、CDNログをリアルタイムに分析できる上に、1年以上過去のログも分析でき、さらにコストパフォーマンスにも優れた強力なツールとして、多くの企業で活用いただいています。
本記事では、その中でも特に運用インパクトが大きい Alert 機能 にフォーカスし、仕組みから設定方法、デバッグポイントまで解説します。
1. TrafficPeak と Alert 機能の概要
TrafficPeak は Akamai Edge から取得したアクセスログをリアルタイムに分析し、レスポンスコード、レイテンシ、トラフィック量などを即座に可視化できるプラットフォームです。
その中核機能である Alert 機能 は、以下のような役割を持っています。
- 異常値の自動検知(例:5xx急増、レスポンスサイズの肥大化、などなど)
- 閾(しきい)値監視による即時通知(Slack / MS Teams / Email / Webhook などへ通知可能)
- 発生箇所の特定を支援(URL、国、Referer、User-Agent、IPなどの詳細ログ)
Akamaiの管理コンソールのみでは調査や分析、検知ができないケースでも、TrafficPeak は 詳細なアクセスログを元に判定するため精度の高い調査、分析、検知でき、ほぼリアルタイムに通知できる 点が特徴です。
2. Alert 機能の仕組みと利用イメージ
TrafficPeak の Alert は、指定条件に基づきログの急変や閾値超過を検知する仕組みです。
TrafficPeak Alert動作フロー 概要
とてもシンプルに表現すると、次の4ステップでAlert通知を実現します。
- Akamai CDN ログの収集
- 指定メトリクスの評価(例:status 500 の件数、Content-lengthの値)
- 閾値または変化率を判定
- 条件一致と発報間隔に従ってAlert通知
「Akamai CDN ログの収集」については以下の記事をご参照ください。
どんな時にAlert機能を利用するか?
以下のようなケースを監視し異常検知時にAlertを発報することで早期対応が可能となり、問題の長期化と影響の拡大を防止できます。
- ✔ レスポンスサイズ(Content-length)の閾値超過
- ファイルサイズの大きい画像などへのアクセス増加 = CDNコストへの影響大
- ✔ 5xx や 4xx エラーの急増
- ✔ アクセス集中(リクエスト数急増)
- ✔ 不審な BOT や攻撃の急増
- AkamaiのセキュリティログもTrafficPeakへ取込む必要があります
TrafficPeak のAlertは SRE / Web担当者 / セキュリティ担当 など、幅広い役割の方々に効果を発揮します。
3. Alert 設定(設計ステップ)
Alert の設定を始める前に Alert発報させたい監視メトリクス、発報条件やタイミング、通知先を設計します。
①監視メトリクスを定義
- ✔ レスポンスサイズ(Content-length)の閾値超過
- 404 エラーの即時通知
- etc...
②条件(閾値)と通知タイミングを定義
- ✔ 例)定期Alert通知
- レスポンスサイズ(Content-length)が XXXKB を超えているURLを集計して XX時間毎 に通知
- 例)即時アラート通知
- 404 エラー応答 が発生したら即時通知
③通知先を選定
- ✔ Slack
- MS Teams
- Webhook
上記含め 22種類 の通知先に対応しています。
④Alert通知内容のサンプルイメージを考案
XXX や [ ] で囲んだ文字列はログから引用するイメージです。
タイトル:
Oversize Alert: "対象サイトFQDN" | Alert合計件数 : XXX 件
メッセージ内容:
ファイルサイズ XXX KB以上のコンテンツを公開しているURL
期間
2025-12-02 04:00:10 JST to 2025-12-02 10:00:10 JST
結果
合計件数: XX,XXX
件数: X,XXX
URL: [レスポンスサイズ(Content-length)が XXXKB 超えのURL 1つ目]
ファイルサイズ: XXX.XKB
合計転送サイズ: YYY,YYY,YYY.YKB
コスト: ¥ZZZZ.Z
Referer: [RefereのURL]
件数: XXX
URL: [レスポンスサイズ(Content-length)が XXXKB 超えのURL 2つ目]
ファイルサイズ: XXX.XKB
合計転送サイズ: YYY,YYY,YYY.YKB
コスト: ¥ZZZZ.Z
Referer: [RefereのURL]
〜上記の小計を繰り返し表示〜
4. Alert 設定(実装ステップ)
TrafficPeak のDashboardやAlert機能は「Grafana」というツールを用いて提供しており、Alert の設定は Grafana の Web UI 操作だけで簡単に行えます。
設定自体は下記3つの設定を作成するのみです。
① Alert Ruleの設定・・・ログを抽出・集計するSQL Queryと発報条件・タイミングを設定
② Contant Pointsの設定・・・Alertの宛先とAlertタイトルやメッセージ内容を設定
③ Notification Policyの設定・・・Alert RuleとContant Pointを紐づけ設定
サンプルとして「レスポンスサイズ(Content-length)の閾値超過の通知」を目的としたAlert設定を解説します。
①Alert Ruleの設定
Alert Rule は、メトリクスやログのクエリを一定間隔で評価し、条件を満たしたときにアラートイベントを生成する仕組みです。
監視対象・閾値・期間など「何をどう判定するか」を定義する役割を持ちます。
1. Alert Ruleの新規作成
TrafficPeakへログイン後、左上のアイコンをクリックしメニュー内の「Alert rules」をクリックすると下図が表示されるので、「New alert rule」をクリックし設定画面を表示します。

2. ログ集計期間の指定(例:6時間)
下図の「Name」に任意のAlert rule名を入力した後、次の設定項目の「Options」をクリックし「Time Range」のプルダウンで「Last 6 hours」を選択します。

3. ログ集計・抽出用SQL文の設定(SQLQueryの指定)
「Editor Type」は「SQL Editor」を選択し「Query Type」は「Time Series」を選択し
その後、下記サンプルのSQL文をコピーし、エディタフォームへペーストします。
WITH top AS (
SELECT URL, avg(rspContentLen) AS rspContentLen_avg, max(referer) AS referer_sample, count() AS oversize_counts
FROM akamai.logs
WHERE $__timeFilter(reqTimeSec)
AND statusCode = '200'
AND reqHost = 'www.hoge.hoge'
AND rspContentLen >= 40000
GROUP BY URL
ORDER BY oversize_counts DESC
LIMIT 300
)
SELECT
sum(oversize_counts) AS total_oversize,
arrayStringConcat(
groupArray(
concat(
'件数: ', toString(oversize_counts), '\n',
'URL: https//', URL, '\n',
'ファイルサイズ: ', toString(round(toUInt64(rspContentLen_avg) / 1000, 1)), 'KB\n',
'合計転送サイズ: ', toString(round(toUInt64(rspContentLen_avg) * toUInt64(oversize_counts) / 1000, 1)), 'KB\n',
'コスト: ¥', toString(round(toUInt64(rspContentLen_avg) * toUInt64(oversize_counts) * 10 / 1000000, 1)), '\n',
'Referer: ', referer_sample
)
),
'\n\n'
) AS details
FROM top
SETTINGS hdx_query_max_execution_time=60, hdx_query_admin_comment='oversize-alert-timeout';
4. Alert 発報(トリガー) 条件の設定
下図の「Expressions」で初期設定の2つをゴミ箱マークから削除します。

「Add expression」で「Threshold」を選択し「Input "A" IS ABOVE "0"」と指定します。

「Set "B" as alert condition」をクリックし「Alert condition」にします。

5. フォルダーとラベルの設定
「New folder」から任意の名称でフォルダを作成します(FQDNや部署名等)。

「Add labels」から任意の名称でラベルのKeyとValueを指定し保存します。
(後ほどNotification Policyの設定で使います)

6. Alert 発報(トリガー) チェック間隔の指定
「New evaluation group」から任意の名称を入力し、「Evaluation Interval」はチェック間隔を指定します。
今回は「6h」と入力したあと「Create」ボタンで作成完了です。

6.1. Pendig Periodの設定
この設定ではAlert発報条件を満たした時に即時Alertを発報します。
もし「10m(10分)」と設定した場合、最初にAlert発報条件を満たしたタイミングから10分後も条件を満たしていた場合にAlert発報するイメージです。
しかし、「Evaluation Interval」よりも長い値を設定する必要がありますのでご注意ください。
7. 通知先の設定
「Configure notifications」にて「Advanced options」のボタンを下図のように「On」にします。

この設定を行うことで「Notification Policy」に従って「Contant Points」に設定した通知先へAlert発報が可能です。
②Contant Pointsの設定
Contact Points は、生成されたアラートをどこへ、どの形式で通知するかを設定する場所です。
Slack や Email、Webhook など通知チャネルごとにメッセージ内容やフォーマットを自由にカスタマイズできます。
1. Slackでアプリ「Incoming WebHooks」を追加しWebhook URLを入手
例:https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXX
※アプリ「Incoming WebHooks」の設定手順は こちら をご参照ください。
2. TrafficPeakの「Contact Points」でSlack用の設定を新規作成
左上のアイコンをクリックしメニュー内の「Contact points」をクリックすると下図が表示されるので、「New alert rule」をクリックし設定画面を表示します。
「Contact Points」の画面右側にある「Create contact point」ボタンから設定画面を開きます。

下図にて任意の名前を入力し、「Integration」のプルダウンから「Slack」を選択する。

3. SlackのWebhook URLを入力する。
下図にて「1.」で入手したWebhook URLを入力します。

※この欄の値は設定保存後に「configured」という文字列へ変わり、値のコピーができなくなります。
4. Slackへ送信するAlertの内容を設定する
まずは、メッセージの送信者名を「Username」欄へ入力します。

下記サンプルのようにログから抽出したデータを利用することも可能です。
Oversize Alert: www.hoge.hoge | Alert合計件数 : {{ printf "%.0f" (index (index .Alerts 0).Values "A") }} 件
最後に、「Text Body」欄へメッセージ本文を入力します
「④Alert通知内容のサンプルイメージを考案」 で作成したアラートメッセージを実現するために最も重要な設定です。
下記サンプルはAlert Rule設定のSQL文で抽出・集計したデータを出力しています。
{{- $alert := index .Alerts 0 -}}
-- 対象ログ期間の終了時間を変数へ代入 (--はコメントアウト)
{{- $to:= $alert.StartsAt -}}
-- 対象ログ期間の開始時間を変数へ代入
-- 開始時間は終了時間からマイナス6時間(発報間隔)した値(ナノ秒)
{{- $from := $to.Add -21600000000000 -}}
ファイルサイズ [XXX]KB以上のコンテンツを公開しているURL
期間
-- チェックしたログの期間を表示
{{ printf "%s" ($from | tz "Asia/Tokyo" | date "2006-01-02 15:04:05 JST") }} to {{ printf "%s\n" ($to | tz "Asia/Tokyo" | date "2006-01-02 15:04:05 JST") }}
結果
-- ファイルサイズ [XXX]KB以上のコンテンツを公開しているURLの合計数
合計件数: {{ printf "%.0f" (index (index .Alerts 0).Values "A") }}
-- SQLQueryで配列形式で出力したデータを繰り返し表示する
{{ range .Alerts }}
{{ index .Labels "details" }}
{{ end }}
−− TrafficPeakのダッシュボードとパネルのリンクを表示(リンク先URLは手動で変更ください)
詳細は <https://xxxx.trafficpeak.live/goto/xxxxxxxxx|ダッシュボード> を参照してください。
コンテンツサイズTOP100のパネルは <https://xxxx.trafficpeak.live/goto/xxxxxxxxx|こちら> を参照してください。
5. 「Notification settings」の設定でAlert解消通知を止める。
「Disable resolved message」のチェックボックスにチェックを入れます。

以上で Contact point の設定が完了です。
最後に「Save contact point」ボタンで保存します。
③Notification Policyの設定
Notification Policies は、発生したアラートをラベル(alertname、team、severity など)に基づいて適切な Contact Point に振り分ける仕組みです。
複雑な環境でも「どのチームにどのアラートを送るか」を柔軟にルーティングできます。
1. Notification Policyの新規作成
左上のアイコンをクリックしメニュー内の「Notification Policies」をクリックすると下図が表示されるので、「New child policy」をクリックし設定画面を表示します。

2. LabelとContact pointを設定し紐づけ
下図にAlert Rule設定で任意指定した「Label」と「Value」を入力します。
次にプルダウンから作成した Contact Pointの名前を指定し、「Save policy」で保存します。

3. Override general timings設定(オプション)
もし、アラートメールが指定した間隔で発報されない場合はこちらの設定をお試しください。

- Group wait:1s
- Group interval:6h (今回は6時間ごとにAlertを受け取りたいため)
- Repeat interval:6h (今回は6時間ごとにAlertを受け取りたいため)
5. Alert 出力結果のサンプルと活用例
Slackに届くメッセージのサンプル
※ファイルサイズの閾値やコストの単価等は、 サンプル です
インシデント初動での流れ
- どのメトリクスが閾値を超えたか確認
- トラフィック急増か特定URLの問題かを判定
- ダッシュボードへアクセスし国別 / User-Agent 別 / URL 別などで切り分け
- 過去アラートと比較して傾向を把握
TrafficPeak の通知にはグラフへのリンクを含めることもできるため、通知から数秒で原因分析まで到達することも可能です。
本記事のサンプルAlertでは、CDNで配信しているコンテンツの「ファイルサイズ(Content-length)」を監視し、閾値以上のファイルサイズを早期発見・対応することに役立ちます。
この早期対応はCDNコストの超過やコスト抑制につながり、CDNのトラフィック量増加の原因を明確にする役割も果たしますので、是非ご活用いただきたいAlertです。
6. Alert 設定時のデバッグとトラブルシュート
Alert を設定しても「思った通りにAlertが送信されない」「メッセージの内容が途切れる」「メッセージにログからの引用データが表示されない」というケースがよくあります。
このような問題はトライ・アンド・エラーを繰り返して解決することになりますが、その際の効率的なやり方を解説します。
よくある問題と改善ポイント
✔ 思った通りにAlertが送信されない
-
まずはAlert通知条件をシンプルにして試す
- Alert Rule設定のSQLQueryを絶対にログ抽出可能なSQL文を設定し確認する
- 自分がサイトにアクセスするだけでログ抽出の対象になるように設定すると、よりテストが簡単です
- 検知件数などの閾値を下げる
- 集計期間が長すぎて反応しない
-
Nodataステータスは設定で回避する
- Alert Rule設定のSQLQueryの応答が頻繁にNodata(データ無し)の場合、Alertが送信されないのでSQLQueryを修正し回避します
- 各種設定の紐づけを確認する
✔ メッセージの内容が途切れる
- Contact Points設定内の「Test」機能を使用して構文エラーを修正する
- 構文エラー修正は 「Test」機能 の活用でトライ・アンド・エラーを効率化
✔ メッセージにログからの引用データが表示されない
-
SQLQueryで抽出したログデータが「$alert」変数内に存在するか確認する
- 次の2行をメッセージ設定内に追加しAlertを受信すると「$alert」変数の内容が確認できます
- 受信したAlertにURLやRefererなどのデータが見当たらない場合、SQLQueryで配列にログデータの代入に失敗している可能性があります
{{- $alert := index .Alerts 0 -}}
{{ printf "$alert: %#v" $alert }}
-
SQLQueryの「Query Type」の指定を「Table」にしていないか?
- 「$alert」変数でログデータを引用する場合「Query Type」は「Time Series」を指定します
-
1つのAlert Rule設定内でSQLQueryを2つ以上設定していないか?
- 2つ以上設定している場合、メッセージにログデータを表示するのが難しくなるため、可能な限りSQL文を工夫して1つにまとめましょう
まとめ:TrafficPeak Alert は 日々の運用を支援する 良き友
TrafficPeak の Alert 機能は、Akamai Edge で収集される詳細なアクセスログに基づき、
ユーザー影響が出る前の「兆候」を素早く検知できる便利なツール です。
またCDNやCloud型のWAFなどを運用する上で気になる利用量やコストなども工夫次第で可視化できます。
- エンドユーザー - Akamai CDN 間の異常検知が早い
- ログ調査や障害切り分けの初動を効率化
- オリジンサーバーでは取れない情報や可視化に労力のかかる情報を容易に扱える
これらの特性から、Web 運用・SRE・セキュリティ担当者の良き友として運用を支援します。
ぜひ本記事を参考に、 TrafficPeak の Alert 機能による運用改善 をご検討ください。
弊社ではTrafficPeakのダッシュボードやAlertの設定支援もご提供しておりますのでお気軽にご相談ください。
関連記事
アカマイ・テクノロジーズ合同会社の Qiita では、 Akamai Cloud 関連などの開発者向けの記事を掲載しております。












