コンテンツにスキップ

Grafanaアラート設定

概要

サーバー異常状態発生時に任意のアプリへ通知を送信する設定です。
サーバー監視には必須設定となります。

1.事前確認

Grafanaバージョン確認

grafana-cli -v

Grafanaアップデート

sudo apt update -y && sudo apt upgrade -y

2.アラートルールの作成

通知の基準となるアラートルールを作成します。

1.左サイドメニューから「ベルマーク」→「Alert rules」→「Create alert rule」の順にクリックする

2-1.ノードスロット監視

  • ①:Relay1-スロット監視など任意のルール名
  • ②:Grafana managed alertを選択
  • ③:Prometheusを選択
  • ④:now-10m to nowを選択
  • ⑤:codeを選択
  • ⑥:Metrics Browserをクリック
  • ⑦:cardano_node_metrics_slotInEpoch_intを選択
  • ⑧:aliasを選択
  • ⑨:監視するノード名を選択
  • ⑩:Optionをクリック
  • ⑪:Instantを選択
  • ⑫:Use queryをクリック

  • ⑬:Classic_conditionを選択

  • ⑭:last() / A / HAS NO VALUE選択
  • Cパネルは削除する

  • ⑮:SJGを入力し+Add newをクリックしEnter

  • ⑯:ノード監視を入力し+Add newをクリック
  • ⑰:10sを入力
  • ⑱:20sを入力
  • ⑲:Alertingを選択
  • ⑳:Alertingを選択
  • ㉑:削除
  • ㉒:削除
  • ㉓:Summryから+Add newをクリックし検知内容と入力
  • 隣フィールドに検知メッセージを入力
    例)Relay1のスロットを取得出来ませんでした。ノード起動状態を確認してください
  • ㉔:ページ上部へスクロールし、Save and exitをクリック

残りの全てのノードのスロット監視を設定する

上記で作成したルールをコピーする

  • ①を書き換える
  • ⑥:Metrics Browserを書き換える
    例)
    cardano_node_metrics_slotInEpoch_int{alias="block-producing-node"}
    cardano_node_metrics_slotInEpoch_int{alias="relaynode2"}

  • 「4 Add details for your alert rule」の検知内容のメッセージ内容を書き換える

  • ㉔:ページ上部へスクロールし、Save and exitをクリック

2-2.BP→リレー接続監視

上記で作成したルールをコピーする

  • ①:BPリレー接続監視など任意のルール名に書き換える
  • ⑥:Metrics Browsercardano_node_metrics_peers_connectedPeers_int{alias="block-producing-node"}に置き換える
  • ⑭:last() / A / IS BELOWに切り替え1を入力
  • ⑲:Alertingを選択
  • ⑳:Alertingを選択
  • 「4 Add details for your alert rule」の検知内容のメッセージ内容を書き換える
    例)BPからリレーへの接続が確認できません。接続状況を確認してください
  • ㉔:ページ上部へスクロールし、Save and exitをクリック

2-3.チェーン密度監視

上記で作成したルールをコピーする

  • ①:チェーン密度監視など任意のルール名に書き換える
  • ⑥:Metrics Browsercardano_node_metrics_density_real{alias="relaynode1"} * 100に置き換える
  • ⑭:last() / A / IS BELOWに切り替え4.5を入力
  • ⑲:OKを選択
  • ⑳:OKを選択
  • 「4 Add details for your alert rule」の検知内容のメッセージ内容を書き換える
    例)チェーン密度が4.5%を下回っています。これはカルダノチェーン全体の問題です
  • ㉔:ページ上部へスクロールし、Save and exitをクリック

2-4.ノードタイム監視

上記で作成したルールをコピーする

  • ①:Relay1-ノードタイム監視など任意のルール名に書き換える
  • ⑥:Metrics Browsernode_timex_maxerror_seconds{alias="relaynode1"} * 1000に置き換える
  • ⑭:last() / A / IS ABOVEに切り替え100を入力
  • ⑲:OKを選択
  • ⑳:OKを選択
  • 「4 Add details for your alert rule」の検知内容のメッセージ内容を書き換える
    例)Relay1のノードタイムが100msを超えています。chronyを再起動してください
  • ㉔:ページ上部へスクロールし、Save and exitをクリック

残り全てのノードのノードタイム監視を設定する

上記で作成したルールをコピーする

  • ①を書き換える
  • ⑥:Metrics Browserを書き換える
    例)
    node_timex_maxerror_seconds{alias="block-producing-node"} * 1000
    node_timex_maxerror_seconds{alias="relaynode2"} * 1000

  • 「4 Add details for your alert rule」の検知内容のメッセージ内容を書き換える

  • ㉔:ページ上部へスクロールし、Save and exitをクリック

3.通知先アプリの設定

通知先アプリの設定

アラートの通知先はLINE/Discord/Telegram/Slackを複数指定することが可能です。
ブロック生成ステータス通知の通知アプリ設定で設定した手順と同様に、通知先名などを変えてトークンを発行してください。

4.通知テンプレート設定

  • 「Contact points」をクリックし「Add template」をクリック

  • 任意のテンプレート名SJGを入力し、以下のテンプレートデータを入力

    {{ define "myalert" }}
    {{ if gt (len .Annotations) 0 }}{{ range .Annotations.SortedPairs }}{{ .Name }}: {{ .Value }}{{ end }}
    {{ end }}{{ end }}
    
    
    {{ define "mymessage" }}
    {{ if gt (len .Alerts.Firing) 0 }} 【 ❌障害発生❌ 】{{len .Alerts.Firing}}件 {{ range .Alerts.Firing }}
    {{ template "myalert" .}} {{ end }}{{ end }}
    {{ if gt (len .Alerts.Resolved) 0 }}✅以下の障害は復旧しました✅{{len .Alerts.Resolved}}件{{ range .Alerts.Resolved }}
    {{ template "myalert" .}} {{ end }}{{ end }}
    {{ end }}
    

  • 「Save tempelate」をクリック

5.通知先設定

  • 「Contact points」をクリックし「Add contact point」をクリック

通知先を指定する

  • 任意の通知名Self-Alertを入力
  • 通知先を選択し情報を入力
  • [3.通知先アプリの設定]で取得した通知アプリごとのトークンIDやWebhookURLを入力する
  • Option *** SettingsをクリックしDiscriptionに以下のタグを入力
    {{ template "mymessage" . }}
    

通知先ごとのタグ入力欄表記違い

  • LINE→Description
  • Discord→Message Content
  • Slack→Text Body
  • Telegram→Message

  • 「Save contact point」をクリック

複数の通知先を設定可能

「Add contact point integration」をクリックすれば、複数の通知先を設定可能

  • 「Notification policies」→「Edit」をクリック

  • Self-Alertを選択

  • Group bygrafana_folderalertnameを指定
  • Group interval1 Minutesに設定
  • Repeat interval10 Minutesに設定
  • Saveをクリック

6.通知内容URLカスタマイズ

注意

xxxx.bbb.com[Grafanaセキュリティ設定]で取得したドメイン(サブドメイン)に置き換えて実行する
https://は不要

domain=xxxx.bbb.com

以下コマンドをすべてコピーして実行する

sudo sed -i /etc/grafana/grafana.ini \
    -e 's!;domain = localhost!domain = '${domain}'!' \
    -e 's!;root_url = %(protocol)s://%(domain)s:%(http_port)s/!root_url = https://%(domain)s/!'

Grafanaを再起動する

sudo systemctl restart grafana-server.service