Prometheus

提供: ArchWiki
2022年2月12日 (土) 22:39時点におけるHirsak13 (トーク | 投稿記録)による版 (→エクスポーター: 見出しの階層を訂正)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

関連記事

Prometheus はオープンソースのメトリクス収集・処理ツールです。時系列データベースと保存されているメトリクスにアクセス・処理するクエリ言語から成ります。Prometheus は複数のサービスからメトリクスを収集できます。ミニマルなウェブ UI を備えており、 Grafana などのサードパーティのツールによるダッシュボードを使うこともできます。

インストール

prometheus パッケージをインストールしてください。その後、prometheus サービスを起動有効化することで HTTP のポート 9090 からアプリケーションにアクセスできます。

デフォルト設定では自身の prometheus プロセスを監視します。システムの監視を行うには prometheus-node-exporter をインストールします。ローカルシステムからメトリクスが収集されます。prometheus-node-exporter サービスを起動・有効化することで使うことができ、デフォルトでポート 9100 が開きます。prometheus-node-exporter サービスが起動したら、これを定期的にスクレイピングするよう Prometheus の設定をすることにより、実際にデータが収集できるようになります。これは後述の手順 メトリクスの追加 に従って行います。

警告: デフォルト設定の場合 prometheus*:9090 を、 prometheus-node-exporter*:9100 を listen します。そのため、忘れずに設定変更、もしくは、対応するファイアウォールのルールを有効にしてください。また、Prometheus security model もあわせて確認してください。

設定

Prometheus の設定は YAML を使用し、メインの設定ファイルは /etc/prometheus/prometheus.yml です。

メトリクスの追加

scrape_configs 配列にメトリクスの収集先を追加することができます。ソースとしてローカルのノードエクスポータを追加したい場合、設定は以下のようになります:

 scrape_configs:
   - job_name: 'prometheus'
     static_configs:
       - targets: ['localhost:9090']
   - job_name: 'localhost'
     static_configs:
       - targets: ['localhost:9100']

エクスポーター

Arch Linuxのリポジトリには 利用可能なエクスポーター の一部が登録されています:

各エクスポーターはサービスの形で実現されています。例えば node exporter を実行する場合は prometheus-node-exporter.service起動有効化 します。

UI を使う

Prometheus には設定を確認したりメトリクスにアクセス・グラフ化するための限定的な UI が付属しています。デフォルトでは http://localhost:9090 から使用できます。Prometheus のクエリ言語について詳しくは Prometheus のドキュメント を参照してください。

アラート

alertmanagerでは、特定の条件を満たした際にカスタマイズしたアラートを送信することができます。 送信する条件は /etc/prometheus/alert.rules.yml に、送信する内容は /etc/alertmanager/alertmanager.yml に設定します。アラートマネージャーでは、メールやSlackなど、さまざまな方法での通知が可能です。メールでのアラートを設定するためには、次の行を追加します:

global:
  resolve_timeout: 5m
  smtp_smarthost: 'smtp.example.com:25'
  smtp_from: 'alertmanager@example.com'
route:
  group_by: ['instance', 'severity']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 3h
  receiver: team-1
receivers:
  - name: 'team-1'
    email_configs:
      - to: 'admin@example.com'

Prometheus から AlertManger にアラートを送るためには次の行を /etc/prometheus/prometheus.yml に追加します:

alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - localhost:9093

systemdのユニットが失敗した場合のアラートの設定には /etc/prometheus/alert.rules.yml に次の行を追加します。このほかの条件についてはアラート条件 のドキュメントを参照してください。

- name: systemd_unit
  interval: 15s
  rules:
  - alert: systemd_unit_failed
    expr: |
      node_systemd_unit_state{state="failed"} > 0
    for: 3m
    labels:
      severity: critical
    annotations:
      description: 'Instance : Service failed'
      summary: 'Systemd unit failed'

参照