GRAFANA

モニタリングツールの導入

Grafanaを用いたモニタリングツールを導入します。必要なスクリプトは以下のGitHubリポジトリにまとめてあります。 このREADMEを参照しながら実行することで、広島サイトではホストサーバー(grid02)から各ノードの監視を行っています。

GitHub Favicon
GitHub - mochimochino/setup_prometheus_grafana

Contribute to mochimochino/setup_prometheus_grafana development by creating an account on GitHub.

github.com

アラートの設定

Grafanaから異常を検知したときに、Gmailへアラートが飛ぶように設定を行います。

設定手順(Gmail通知)

Grafanaのアラート設定は大きく4ステップで構成されます。

  1. アラートルールの作成
  2. 通知先の作成
  3. 通知ポリシーの設定
  4. SMTP設定

Step 1: アラートルールの作成

アラートを発動させる条件を定義します。

  1. Grafanaの左側メニューから Alerting → Alert rules を開きます。
  2. New alert rule をクリックします。
  3. クエリと条件の設定 (Set up queries and expressions)

    • A (Query): 監視したいデータ(メトリクス)を選択します。 (例: サーバーのCPU使用率やディスク空き容量など)
    • B (Expression): アラートを発動させる「しきい値」を設定します。Classic conditionを選択し、WHEN last() OF B IS ABOVE 80 のように記述します。(意味:クエリBの結果が80を超えたら)
  4. ルールの詳細設定 (Add details for your alert rule)

    • Rule name: アラートルールの名前を入力します。(例: High CPU Usage
    • Evaluate every: アラート条件をチェックする頻度を設定します。(例: 1m = 1分ごと)
    • For: 条件が継続したらアラートを確定させる時間を設定します。(例: 5m = 5分間継続したら)※一時的なスパイクでの誤報を防ぎます。
    • Summary and annotations: 通知メールの件名や本文になる内容を記述します。
  5. 最後に Save rule and exit をクリックして保存します。

Step 2: 通知先 (Contact Point) の作成

アラート通知を送るメールアドレスを登録します。

  1. Alerting → Contact points を開きます。
  2. New contact point をクリックします。
  3. Name: 通知先の名前を入力します。(例: Gmail Admins
  4. Integration: Email を選択します。
  5. Addresses: 通知を受け取りたいアドレスを入力します。(今回は大学メールを設定しました)
  6. Save contact point をクリックします。

Step 3: 通知ポリシー (Notification Policy) の設定

どのアラートルールが発動したときに、どの通知先に連絡するかを関連付けます。(今回はすべての通知をデフォルトの通知先に送る設定です。)

  1. Alerting → Notification policies を開きます。
  2. Default contact point のドロップダウンメニューから、先ほど作成した Gmail Admins を選択します。
  3. Save policy をクリックします。

Step 4: SMTP設定 (Grafanaからメールを送るための設定)

GrafanaがGmailのサーバーを使ってメールを送信できるように設定します。(Googleアカウントを新規作成して行いました。)

  1. 【Google側での準備】

    • お使いのGoogleアカウントで「2段階認証プロセス」を有効にします。
    • Grafana専用の「アプリパスワード」(16桁)を生成します。(一度しか表示されないので注意)
  2. 【Grafana側での設定】

    Grafanaの設定ファイル /etc/grafana/grafana.ini を開き、[smtp] セクションを以下のように編集・保存します。

    [smtp]
    enabled = true
    host = smtp.gmail.com:587
    user = your-email@gmail.com
    # If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
    password = abcd efgh ijkl mnop
    skip_verify = false
    from_address = your-email@gmail.com
    from_name = Grafana Alerts
    
  3. 【Grafanaの再起動】

    設定ファイルを保存し、Grafanaサーバーを再起動して設定を反映させます。

    sudo systemctl restart grafana-server

Step 5: 最終テスト

全ての設定が完了したら、動作確認を行います。

  1. Alerting → Contact points を再度開きます。
  2. 作成した Gmail Admins の右側にある Test ボタンをクリックします。
  3. テスト通知の画面が表示されたら Send test notification をクリックします。

指定したGmailアドレスに「[FIRING:1] (Test notification)」のような件名のテストメールが届けば成功です。