Debian 12 bookworm
Sponsored Link

Prometheus : アラートの設定 (Email)2023/07/11

 
Prometheus のアラートの設定です。
Prometheus のアラートは、類似のアラートをグループ化してまとめ、一回で通知することが可能なため、不要な通知を極力省くといったことができます。
アラートの受け取り方法は、Slack, HipChat, WeChat 等々、多くの手段が提供されていますが、当例では Email での通知の設定をします。
アラート設定の詳細は公式サイトを参照ください。
⇒ https://prometheus.io/docs/alerting/configuration/
[1]
メールでの通知をする場合は、使用可能な SMTP サーバーが必要となります
当例ではローカルホストで SMTP サーバーが稼働していることを前提に設定します。
[2] Prometheus サーバーが稼働するホストで、アラートの機能を提供する Alertmanager をインストールします。
root@dlp:~#
apt -y install prometheus-alertmanager

[3] 例として、Email で通知する場合の Alertmanager の設定です。
root@dlp:~#
mv /etc/prometheus/alertmanager.yml /etc/prometheus/alertmanager.yml.org

root@dlp:~#
vi /etc/prometheus/alertmanager.yml
# 新規作成

global:
  # 使用する SMTP サーバー
  smtp_smarthost: 'localhost:25'
  # TLS 要/不要
  smtp_require_tls: false
  # 通知メールの送信者アドレス
  smtp_from: 'Alertmanager <root@dlp.srv.world>'
  # SMTP Auth を設定している場合はアカウント名とパスワード
  # smtp_auth_username: 'alertmanager'
  # smtp_auth_password: 'password'

route:
  # 通知先の Receiver名
  receiver: 'email-notice'
  # アラートをグループ化する条件
  group_by: ['alertname', 'Service', 'Stage', 'Role']
  # グループ化されたアラートを初回通知するまでの待ち時間
  # 待ち時間の間に発生した同様のアラートはグループ化される
  group_wait:      30s
  # 通知済みのグループアラートに新しいアラートが追加された場合の次回通知までの待ち時間
  group_interval:  5m
  # 通知済みの同内容のアラートを再送信する間隔
  repeat_interval: 4h

receivers:
# 任意の [Receiver] 名
- name: 'email-notice'
  email_configs:
  # 通知先アドレス
  - to: "root@localhost"

# アラートルールの設定

root@dlp:~#
vi /etc/prometheus/alert_rules.yml
# 新規作成

# 例として [node-exporter] の [Up/Down] を監視

groups:
- name: Instances
  rules:
  - alert: InstanceDown
    expr: up == 0
    for: 5m
    labels:
      severity: critical
    annotations:
      description: '{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes.'
      summary: 'Instance {{ $labels.instance }} down'

root@dlp:~#
vi /etc/prometheus/prometheus.yml
# 17行目 : (Alertmanager 稼働ホスト):(ポート)
alerting:
  alertmanagers:
  - static_configs:
    - targets: ['localhost:9093']

# 23行目 : 作成したアラートルールを追記
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
  - "alert_rules.yml"

root@dlp:~#
systemctl restart prometheus prometheus-alertmanager

root@dlp:~#
systemctl enable prometheus-alertmanager

[4] [node-exporter] がダウンすると以下のようなメールが送信されます。(本文は HTML 形式)
root@dlp:~#
mail

? 1
Return-Path: <root@dlp.srv.world>
X-Original-To: root@localhost
Delivered-To: root@localhost
Received: from localhost (localhost [IPv6:::1])
        by dlp.srv.world (Postfix) with UTF8SMTP id CAB68A08FF
        for <root@localhost>; Mon, 10 Jul 2023 23:14:37 -0500 (CDT)
Subject: [FIRING:1] InstanceDown (node01.srv.world:9100 Hiroshima example critic
al)
To: root@localhost
From: Alertmanager <root@dlp.srv.world>
Message-Id: <1689048877830755260.9065214416407498040@dlp.srv.world>
Date: Mon, 10 Jul 2023 23:14:37 -0500
Content-Type: multipart/alternative;  boundary=ea1db661a52a2fc51c58be1772603c350
db11b35a8200af2fa337f49c289
MIME-Version: 1.0

--ea1db661a52a2fc51c58be1772603c350db11b35a8200af2fa337f49c289
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=UTF-8
.....
.....
関連コンテンツ