コンテンツにスキップ

「Prometheus」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
ページの作成:「Category:ネットワーク監視 Category:ウェブアプリケーション en:Prometheus {{Related articles start}} {{Related|Zabbix}} {{Related|Munin}} {{R...」
 
→エクスポーター: 見出しの階層を訂正
 
(2人の利用者による、間の6版が非表示)
6行目: 6行目:
{{Related|Munin}}
{{Related|Munin}}
{{Related|Grafana}}
{{Related|Grafana}}
{{Related|TICK stack}}
{{Related articles end}}
{{Related articles end}}
[https://prometheus.io/ Prometheus] はオープンソースのメトリクス収集・処理ツールです。時系列データベースと保存されているメトリクスにアクセス・処理するクエリ言語から成ります。Prometheus は複数のサービスからメトリクスを収集できます。ミニマルなウェブ UI を備えており、 [[Grafana]] などのサードパーティのツールによるダッシュボードを使うこともできます。
[https://prometheus.io/ Prometheus] はオープンソースのメトリクス収集・処理ツールです。時系列データベースと保存されているメトリクスにアクセス・処理するクエリ言語から成ります。Prometheus は複数のサービスからメトリクスを収集できます。ミニマルなウェブ UI を備えており、 [[Grafana]] などのサードパーティのツールによるダッシュボードを使うこともできます。
11行目: 12行目:
== インストール ==
== インストール ==


{{AUR|prometheus}} または {{AUR|prometheus-bin}} パッケージを[[インストール]]してください。その後、{{ic|prometheus}} サービスを[[起動]]・[[有効化]]することで HTTP のポート 9090 からアプリケーションにアクセスできます。
{{Pkg|prometheus}} パッケージを[[インストール]]してください。その後、{{ic|prometheus}} サービスを[[起動]]・[[有効化]]することで HTTP のポート 9090 からアプリケーションにアクセスできます。


デフォルト設定では自身の {{ic|prometheus}} プロセスを監視します。システムの監視を行うには {{AUR|prometheus-node-exporter}} または {{AUR|prometheus-node-exporter-bin}} をインストールします。ローカルシステムからメトリクスが収集されます。{{ic|prometheus-node-exporter}} サービスを起動・有効化することで使うことができ、デフォルトでポート 9100 が開きます。
デフォルト設定では自身の {{ic|prometheus}} プロセスを監視します。システムの監視を行うには {{Pkg|prometheus-node-exporter}} をインストールします。ローカルシステムからメトリクスが収集されます。{{ic|prometheus-node-exporter}} サービスを起動・有効化することで使うことができ、デフォルトでポート 9100 が開きます。{{ic|prometheus-node-exporter}} サービスが起動したら、これを定期的にスクレイピングするよう Prometheus の設定をすることにより、実際にデータが収集できるようになります。これは後述の手順 [[#メトリクスの追加|メトリクスの追加]] に従って行います。
{{Warning|デフォルト設定の場合 {{ic|prometheus}} は {{ic|*:9090}} を、 {{ic|prometheus-node-exporter}} は {{ic|*:9100}} を listen します。そのため、忘れずに設定変更、もしくは、対応するファイアウォールのルールを有効にしてください。また、[https://prometheus.io/docs/operating/security/ Prometheus security model] もあわせて確認してください。}}


== 設定 ==
== 設定 ==
30行目: 32行目:
static_configs:
static_configs:
- targets: ['localhost:9100']
- targets: ['localhost:9100']

== エクスポーター ==
Arch Linuxのリポジトリには [https://prometheus.io/docs/instrumenting/exporters/ 利用可能なエクスポーター] の一部が登録されています:

* {{Pkg|prometheus-node-exporter}} - システムのメトリクス
* {{Pkg|prometheus-blackbox-exporter}} - エンドポイント(HTTP, HTTPS, DNS, TCP, ICMP)に対するブラックボックス探査
* {{Pkg|prometheus-memcached-exporter}} - {{ic|memcached}} のメトリクス
* {{Pkg|prometheus-mysqld-exporter}} - MySQLサーバーのメトリクス

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


== UI を使う ==
== UI を使う ==


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

== アラート ==

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

{{bc|
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 にアラートを送るためには次の行を {{ic|/etc/prometheus/prometheus.yml}} に追加します:

{{bc|
alerting:
alertmanagers:
- static_configs:
- targets:
- localhost:9093
}}

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

{{bc|<nowiki>
- 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'
</nowiki>}}


== 参照 ==
== 参照 ==

2022年2月12日 (土) 22:39時点における最新版

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'

参照