プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2022/12/13

Grafana から Rocket.Chat へ通知を行う

event_note2022/12/13 8:22

Grafana 自体は Rocket.Chat に対応していませんが、Webhook を使うことで Rocket.Chat に通知できます。

アラートの基本的な設定方法については以下を参照してください。

ここでは Rocket.Chat への通知の設定のみ記載します。

Rocket.Chat 側の設定

管理画面のメニューから サービス連携 を選択し、Incoming で新規作成を行います。
スクリプトを有効にし、以下のスクリプトを記入します。


class Script {

  process_incoming_request({ request }) {
    let color = "#00FF00"; // green
    switch(request.content.state) {
      case 'ok':
        color = '#00FF00';
        break;
      case 'paused':
        color = '#666666';
        break;
      case 'alerting':
        color = '#FF0000';
        break;
      case 'pending':
        color = '#CCCCCC';
        break;
      case 'no_data':
        color = '#333333';
        break;
      default:
        color = '#666666';
    }
    return {
      content:{
        text: request.content.title,
        "attachments": [{
           "color": color,
           "title": request.content.title,
           "title_link": request.content.ruleUrl,
           "text": request.content.message,
           "image_url": request.content.imageUrl,
         }]
       }
    };
  }
}

その他、投稿先チャンネルや投稿ユーザーなどの基本的な設定を行います。
Grafana の設定で Webhook URL が必要になるのでコピーしておきます。

Grafana 側の設定

Grafana のサイドメニューから Alert rules を選択し、Contact Points で以下の設定を行います。

  • New contact point をクリック
  • Name にはわかりやすい名前を適当に入力する
  • Contact point typeWebhook を選択する
  • Webhook URL に上記で取得した URL を入力する

Rocket.Chat に関する設定は以上で完了です。