Prometheusでコンテナの情報や、AWSやGCPでのService Discoveryをやって、
上手い感じに監視対象を入れたり、Grafanaで欲しい情報を載せたりしてみたけど、肝心のアラート通知をしてなかったです。
Grafanaでアラートの設定をしてみる
導入当初はAlertManagerでアラート通知すると思ってたけど、Grafana入れたらAlertManager要らないんだね。
Graphの中で設定すれば良いらしい。
メモリ使用率のアラート
1.[Create Alert]クリック
2.グラフの右に出てくるハートの部分をドラッグアンドドロップで閾値設定。(簡単!)
※これをすると勝手にConditions(下の条件式的な個所)の設定が反映されます。
3.その他の設定をする。
Alert Config
- Name : 任意
- Evaluate every : 60s 閾値の監視間隔
- [If no data or all values are null] ※値がない場合の挙動
- [If execution error or timeout]※値が取れなかった場合の挙動
TestRule実行! しかし。。
[Template variables are not supported in alert queries]
テンプレート変数がアラートクエリでサポートされていません。だそうです。
んー。テンプレート変数というと、このグラフ(というかダッシュボード)はサーバ毎に表示するようにテンプレート変数を使ってるけど、それだとダメって事か。
別のダッシュボードで試す。
importしないでアラート用としてダッシュボードを作ってみました。
メモリ用グラフ(node_exporterで取得できるサーバのメモリ使用率が全部載ってる)
OK!
matchってなってるのが閾値を超えたやつで、logsの中でEval: falseは閾値超えてないって感じかな。
今だとアラート通知はメールになってるから、次はTeamsに通知だ!
Teams側設定
Teams側の設定は以下を参考にしました。
Microsoft Teams に PowerShell で投稿してみる
※チャンネルにIncoming Webhookを追加する所まででURLをコピーしておく。
Grafana Notification
左メニューにある[Alerting]の[Notification Channels]から[New Channels]をクリック
TypeをMicorosft TeamsにしてUrlにさっきコピーした物を張り付けるだけ。
(簡単!)
通知テスト
Notification Channelの設定画面で[Send Test]があるのでクリック。
(簡単!)
Prometheus 過去記事
Prometheusのすすめ - Grafanaで監視対象のユーザ一覧が欲しい -
Prometheusのすすめ - 初期導入 -
Prometheusのすすめ - Service Discovery -
Prometheusのすすめ - exporter導入 node-exporter(apt-get) -
Prometheusのすすめ - exporter導入 node-exporter(バイナリ) -
Prometheusのすすめ - Service Discovery - EndPointが「http://:9100/metrics」になって、自分自身になってしまう件