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 を貼るだけで、認証のヘッダーは要りません。

  1. アプリでチャンネルの詳細を開き、「連携を追加」から連携の種類を選びます
  2. Face ID で URL を発行します。URL は発行したときにだけ表示されます
  3. 監視サービスの Webhook の設定に URL を貼ります

URL の発行は Manager、Owner、Admin ができます。URL が分からなくなったら、失効して発行し直します。対応している種類は次のとおりです。

grafanaGrafana の Webhook の連絡先
alertmanagerAlertmanager の webhook_configs
datadogDatadog の Webhooks 連携。回復で解消します。Nodd 1.1 以降のアプリで発行します
sentrySentry の Internal Integration とアラートルール。解消も連動します。Nodd 1.1 以降のアプリで発行します
pagerdutyPagerDuty の Generic Webhooks (v3)。解消も連動します。Nodd 1.1 以降のアプリで発行します
slackSlack の Incoming Webhook の形式。Slack へ送れるサービスなら、そのまま向け先を変えられます
genericPOST /v1/messages と同じ形式。notice、progress、alert だけを受けます
URL そのものが秘密です。漏れても承認は求められません。受信 URL はボタンの要らない通知だけを受けます。

サービスごとの設定

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

  1. アプリで Datadog の URL を発行します
  2. Datadog の Integrations で Webhooks を開き、新しい Webhook に URL を貼ります
  3. Payload に次の JSON を入れます
  4. モニターの通知の本文に @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

  1. アプリで Sentry の URL を発行します
  2. Sentry の Settings で Developer Settings を開き、Internal Integration を作ります
  3. Webhook URL に URL を貼り、Webhooks の Issue を有効にします
  4. アラートルールからも送るときは、Alert Rule Action を有効にして、ルールのアクションに選びます

Issue の作成で通知し、resolved で解消します。

PagerDuty

  1. アプリで PagerDuty の URL を発行します
  2. PagerDuty の Integrations で Generic Webhooks (v3) を開き、新しい Webhook に URL を貼ります
  3. イベントに 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 だけ鳴らす、という分け方ができます。

注意と上限

よくある質問

Grafana のアラートを iPhone に通知するには、何が必要ですか。
Grafana の Alerting で Webhook の連絡先を作り、Nodd のアプリで発行した Grafana 用の受信 URL を貼ります。認証のヘッダーは要りません。
回復したアラートは通知に残りますか。
残りません。回復の知らせが届くと、同じアラートを解消し、対応タブから外します。Alertmanager では send_resolved を true にしてください。
チームの誰がアラートを受け取ったか分かりますか。
分かります。通知を長押しして受信状況を開くと、メンバーごとの受信の状態が出ます。未確認の人には、Responder 以上が再通知を送れます。
応答がないときに別の人へ回せますか。
引き継ぎは Team プランの承認と選択の機能で、受信 URL のアラートには使えません。アラートの呼び出しを段階的に回したいときは、PagerDuty などの当番ツールと組み合わせてください。
受信 URL が漏れたらどうなりますか。
通知を送られるおそれはありますが、承認を求めることはできません。アプリで失効して、新しい URL を発行してください。

Nodd は、スクリプトや CI、AI エージェントからの確認を iPhone に届け、Face ID での承認を送った側のプログラムへ返すアプリです。無料プランがあります。

関連する記事