Grafana や Datadog のアラートを iPhone に通知する方法
公開日:2026-11-08
Grafana は連絡先(Contact points)、Alertmanager は receivers、Datadog はモバイルアプリや Webhooks で、アラートをスマホへ送れます。Nodd では、アプリで発行した受信 URL を各サービスの Webhook に貼るだけで、アラートが iPhone に届き、回復の知らせで同じアラートが自動で解消されます。メンバーごとの受信状況も見られます。
アラートをスマホで受けるときの悩み
監視のアラートは、夜間や外出中にこそ気づく必要があります。メールや Slack だけでは、ほかの通知に埋もれがちです。
受け取れるようになると、次の悩みが出てきます。
- アラート疲れ。同じアラートが何度も鳴り、回復したものも残るので、本当に見るべきものが分からなくなります
- 誰が見たか分からない。チームの全員に届いても、誰かが見ているのか、全員が見ていないのかが分かりません
- 回復の扱い。回復の知らせが別の通知として届くと、発火と回復を自分で見比べることになります
各サービスの標準の方法
多くの監視サービスは、スマホへ届ける手段を自分で持っています。すでに使っているサービスの機能で足りることも多いです。
Grafana
Grafana Alerting では、通知先を連絡先(Contact points)として登録します。Email、Slack、Telegram、Pushover、PagerDuty、Opsgenie、Grafana IRM、Webhook などを選べます。回復の通知は既定で送られ、「Disable resolved message」で止められます。Grafana Cloud では Grafana IRM のモバイルアプリで当番の通知を受けられます。なお、セルフホストの Grafana OnCall OSS は 2026 年 3 月にアーカイブされ、IRM のモバイルアプリへのプッシュ通知は使えなくなりました。
Prometheus Alertmanager
Alertmanager は receivers に通知先を書きます。email_configs、slack_configs、pagerduty_configs、pushover_configs、telegram_configs、webhook_configs などがあります。group_wait、group_interval、repeat_interval で、まとめ方と再送の間隔を調整できます。アラート疲れを減らすには、まずここを見直すのが近道です。
Datadog
Datadog には iOS のモバイルアプリがあり、On-Call、インシデント、ワークフローのプッシュ通知を受け、モニターの状態を確かめられます。モニターや通知の設定はウェブで行います。
Sentry
Sentry のアラートルールは、メンバーやチームへの通知のほか、Slack、Discord、Microsoft Teams、PagerDuty、Opsgenie などの連携や Webhook へ送れます。スマホで受けるときは、こうした連携先のアプリを経由するのが一般的です。
PagerDuty などの当番ツール
PagerDuty のような当番(オンコール)のツールは、当番表、エスカレーションのポリシー、電話や SMS での呼び出しを持っています。iPhone では、重要度の高い通知が集中モードや消音を越えて鳴る Critical Alerts も設定できます。24 時間の当番を交代で回すチームには、こうした専用のツールが向いています。Opsgenie は 2025 年 6 月に新規の販売を終え、2027 年 4 月にサポートを終える予定です。
方法の比べ方
| 方法 | 向いている場面 |
|---|---|
| 各サービスの通知(メール、Slack、モバイルアプリ) | 1 つの監視サービスで完結していて、そのアプリを入れるのに抵抗がないとき |
| Pushover や ntfy などの通知アプリ | 1 人で、手早くスマホへ鳴らしたいとき。詳しくは比較の記事をご覧ください |
| PagerDuty などの当番ツール | 当番表、電話での呼び出し、段階的なエスカレーションが必要なとき |
| Nodd の受信 URL | 複数の監視サービスを 1 つのアプリにまとめ、回復での解消と、メンバーごとの受信状況を見たいとき。承認の依頼も同じアプリで受けたいとき |
Nodd は当番表や電話の呼び出しを持っていません。夜間の呼び出しを確実に回す仕組みが必要なら、当番ツールを選んでください。
受信 URL で iPhone に届ける
Nodd の受信 URL は、外部サービスの Webhook をそのまま受けます。URL を貼るだけで、認証のヘッダーは要りません。
- アプリでチャンネルの詳細を開き、「連携を追加」から連携の種類を選びます
- Face ID で URL を発行します。URL は発行したときにだけ表示されます
- 監視サービスの Webhook の設定に URL を貼ります
URL の発行は Manager、Owner、Admin ができます。URL が分からなくなったら、失効して発行し直します。対応している種類は次のとおりです。
grafana | Grafana の Webhook の連絡先 |
|---|---|
alertmanager | Alertmanager の webhook_configs |
datadog | Datadog の Webhooks 連携。回復で解消します。Nodd 1.1 以降のアプリで発行します |
sentry | Sentry の Internal Integration とアラートルール。解消も連動します。Nodd 1.1 以降のアプリで発行します |
pagerduty | PagerDuty の Generic Webhooks (v3)。解消も連動します。Nodd 1.1 以降のアプリで発行します |
slack | Slack の Incoming Webhook の形式。Slack へ送れるサービスなら、そのまま向け先を変えられます |
generic | POST /v1/messages と同じ形式。notice、progress、alert だけを受けます |
サービスごとの設定
Grafana
Grafana の Alerting で Contact points を開き、Webhook の連絡先を作って URL に貼ります。
https://api.nodd.blipdrop.net/in/grafana/nodd_live_i_...
Alertmanager
webhook_configs に URL を書きます。send_resolved: true にすると、回復の知らせで同じアラートが解消されます。
receivers:
- name: nodd
webhook_configs:
- url: https://api.nodd.blipdrop.net/in/alertmanager/nodd_live_i_...
send_resolved: true
Grafana と Alertmanager では、ラベルの alertname が見出しに、注釈の description が本文になります。severity が critical、page、high、error なら重要度は high です。
Datadog
- アプリで Datadog の URL を発行します
- Datadog の Integrations で Webhooks を開き、新しい Webhook に URL を貼ります
- Payload に次の JSON を入れます
- モニターの通知の本文に
@webhook-名前を書きます
{"alert_id":"$ALERT_ID","scope":"$ALERT_SCOPE","title":"$EVENT_TITLE","message":"$TEXT_ONLY_MSG","transition":"$ALERT_TRANSITION","priority":"$ALERT_PRIORITY","url":"$LINK"}
回復の通知(Recovered)で同じアラートを解消します。
Sentry
- アプリで Sentry の URL を発行します
- Sentry の Settings で Developer Settings を開き、Internal Integration を作ります
- Webhook URL に URL を貼り、Webhooks の Issue を有効にします
- アラートルールからも送るときは、Alert Rule Action を有効にして、ルールのアクションに選びます
Issue の作成で通知し、resolved で解消します。
PagerDuty
- アプリで PagerDuty の URL を発行します
- PagerDuty の Integrations で Generic Webhooks (v3) を開き、新しい Webhook に URL を貼ります
- イベントに
incident.triggeredとincident.resolvedを選びます
PagerDuty の当番の仕組みはそのまま使い、インシデントの発生と解消を Nodd のチャンネルにも流す、という使い方です。
自前のスクリプトから
認証ヘッダーを付けられないサービスや自前の監視からは、generic の URL へ送ります。alert_key を付けておくと、あとで解消できます。
curl https://api.nodd.blipdrop.net/in/generic/nodd_live_i_... \
-H "Content-Type: application/json" \
-d '{"kind":"alert","level":"high","title":"ディスクの残りが 5% です","alert_key":"disk.full:web-1"}'
送信キーを使う場合は、CLI の nodd resolve ALERT_KEY か POST /v1/alerts/{alert_key}/resolve で解消できます。各項目の詳しい変換の規則は受信 URL のページにまとめています。
解消、受信状況、担当
回復で自動に解消する
Grafana と Alertmanager の status: resolved、Datadog の回復、Sentry の resolved、PagerDuty の incident.resolved で、同じアラートを解消します。発火と回復は、サービスごとの ID から作った同じ alert_key で結びます。解消したアラートは対応タブから外れます。
連携は発火と回復に同じ dedupe_key も付けます。同じキーの未解決のアラートは 1 件にまとめて回数を数えるので、同じアラートが鳴り続けても一覧が埋まりません。
誰が受け取ったか
通知を長押しして「受信状況」を開くと、メンバーごとに受信、遅れて受信、未確認、配信失敗が分かります。未確認は、届いていないという意味ではありません。端末から受信の報告がまだ届いていない状態です。未確認の人がいるときは、Responder 以上が再通知を送れます。
誰が対応しているか
誰も担当していないアラートは、対応タブの「未対応」に並びます。長押しのリアクションで「担当する」を選ぶと、ほかの人の一覧では「チームで対応中」に移り、その人たちの件数から外れます。「担当する」と「完了」は Responder 以上が使えます。
重要度と通知しない時間帯
重要度 high は iOS の Time Sensitive の通知です。通知しない時間帯を設定していても、high は届きます。チャンネルごとに「すべて」「high のみ」「オフ」を選べるので、夜は high だけ鳴らす、という分け方ができます。
注意と上限
- 受信 URL は承認や選択を受けません。
genericにapprovalやchoiceを送ると422です - 引き継ぎ(
escalate_after、Team だけ)は、応答が要る承認と選択の機能です。受信 URL のアラートには使えません。未確認の人には、受信状況の画面から再通知を送ります - 当番表、電話や SMS での呼び出しはありません
- 本文は 256 KB までです。1 回で発火は 20 件まで届けます。超えるときは 19 件と、残りの件数をまとめた 1 件にします
- 1 回で解消は 100 件までです。回数の上限は送信 API と同じです
- 無料プランは 1 人、月 1,000 通です。交代で受けるチームなら Team が向いています
よくある質問
- Grafana のアラートを iPhone に通知するには、何が必要ですか。
- Grafana の Alerting で Webhook の連絡先を作り、Nodd のアプリで発行した Grafana 用の受信 URL を貼ります。認証のヘッダーは要りません。
- 回復したアラートは通知に残りますか。
- 残りません。回復の知らせが届くと、同じアラートを解消し、対応タブから外します。Alertmanager では send_resolved を true にしてください。
- チームの誰がアラートを受け取ったか分かりますか。
- 分かります。通知を長押しして受信状況を開くと、メンバーごとの受信の状態が出ます。未確認の人には、Responder 以上が再通知を送れます。
- 応答がないときに別の人へ回せますか。
- 引き継ぎは Team プランの承認と選択の機能で、受信 URL のアラートには使えません。アラートの呼び出しを段階的に回したいときは、PagerDuty などの当番ツールと組み合わせてください。
- 受信 URL が漏れたらどうなりますか。
- 通知を送られるおそれはありますが、承認を求めることはできません。アプリで失効して、新しい URL を発行してください。
Nodd は、スクリプトや CI、AI エージェントからの確認を iPhone に届け、Face ID での承認を送った側のプログラムへ返すアプリです。無料プランがあります。