CodeGym /コース /Docker SELF /コンテナの監視をPrometheusで設定する

コンテナの監視をPrometheusで設定する

Docker SELF
レベル 21 , レッスン 3
使用可能

4.1 Prometheusのインストール

Prometheus — これは、オープンソースの強力なモニタリングと通知システムで、Dockerコンテナを含むさまざまなソースからメトリクスを収集して保存するために設計されたものです。この講義では、Prometheusを使ったコンテナモニタリングの設定手順、インストール、メトリクス収集の設定、Dockerとの統合について詳しく説明します。

1. Prometheusのダウンロードとインストール

まず、公式サイトから最新バージョンのPrometheusをダウンロードしてください:

Terminal

wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz

アーカイブを解凍します:

Terminal

tar xvfz prometheus-*.tar.gz
cd prometheus-*      

バイナリファイルを/usr/local/binに移動します:

Terminal

sudo mv prometheus /usr/local/bin/
sudo mv promtool /usr/local/bin/

4.2 Prometheus設定ファイルの設定

Prometheus は prometheus.yml という設定ファイルを使ってメトリックの取得元やデータ収集の設定を定義するよ。このファイルを作成または編集しよう:

Yaml

global:
  scrape_interval: 15s  # メトリック収集の間隔
      
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
      
  - job_name: 'cadvisor'
    static_configs:
      - targets: ['localhost:8080']

この設定ファイルには2つのジョブ (job) が含まれてるよ:

  1. prometheus: Prometheus自身からメトリックを収集するため。
  2. cadvisor: Dockerコンテナをモニタリングするために使用されるcAdvisorからメトリックを収集するため。

5.3 Prometheusの起動

作成した設定ファイルを使ってPrometheusを起動する:

ターミナル

prometheus --config.file=prometheus.yml

Prometheusはhttp://localhost:9090でアクセスできるよ。

5.4 cAdvisorのインストールと設定

cAdvisor (Container Advisor) は、Dockerコンテナのメトリクスを収集して提供するための監視ツールだよ。これを使うには、以下の手順を実行してね:

cAdvisorをDockerコンテナで起動する:

ターミナル

docker run -d \
  --name=cadvisor \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:ro \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --publish=8080:8080 \
  --privileged \
  gcr.io/cadvisor/cadvisor:latest

cAdvisorhttp://localhost:8080でアクセス可能だよ。

5.5 cAdvisor向けのPrometheus設定の更新

Prometheusの設定にcAdvisor用のジョブが含まれていることを確認してね。設定例は上の方に示されてるよ。

変更が適用されるようにPrometheusを再起動しよう:

ターミナル

prometheus --config.file=prometheus.yml

5.6 メトリクス収集の確認

Prometheusのウェブインターフェースにアクセスして (http://localhost:9090)、PrometheusがcAdvisorからメトリクスを収集していることを確認しよう。そのためには、Prometheusで以下のクエリを実行してね:

ターミナル

container_cpu_usage_seconds_total

Dockerコンテナから収集されたデータが表示されるはずだよ。

5.7 追加のメトリクスを設定する

Prometheusの設定ファイルに追加のメトリクスを追加して、コンテナに関するデータをさらに収集することができるよ。追加のメトリクスの例はこんな感じ:

Yaml

  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']

これを行うには、node_exporterをインストールする必要があるよ。これでホストシステムの状態に関するメトリクスが提供されるんだ。

node_exporterをダウンロード&インストールしよう:

Terminal

wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
tar xvfz node_exporter-*.tar.gz
sudo mv node_exporter-1.2.2.linux-amd64/node_exporter /usr/local/bin/

node_exporterを起動してみよう:

Terminal

node_exporter &

これでnode_exporterはhttp://localhost:9100 でアクセスできるようになるよ。

5.8 アラートルールの作成

Prometheus は、問題について管理者に通知するアラートルールの作成をサポートしています。prometheus.yml 設定ファイルにアラートルールを追加してください:

Yaml

rule_files:
  - "alert.rules"
      
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - "localhost:9093"

alert.rules ファイルを作成し、ルールの例を以下のように記述してください:

Yaml

groups:
- name: example
  rules:
  - alert: HighCPUUsage
    expr: container_cpu_usage_seconds_total{job="cadvisor"} > 0.85
    for: 1m
    labels:
      severity: warning
    annotations:
      summary: "高いCPU使用率が検出されました"
      description: "コンテナが1分間以上85%以上のCPUを使用しています。"
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION