4.1 Prometheusのインストール
Prometheus — これは、オープンソースの強力なモニタリングと通知システムで、Dockerコンテナを含むさまざまなソースからメトリクスを収集して保存するために設計されたものです。この講義では、Prometheusを使ったコンテナモニタリングの設定手順、インストール、メトリクス収集の設定、Dockerとの統合について詳しく説明します。
1. Prometheusのダウンロードとインストール
まず、公式サイトから最新バージョンのPrometheusをダウンロードしてください:
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
アーカイブを解凍します:
tar xvfz prometheus-*.tar.gz
cd prometheus-*
バイナリファイルを/usr/local/bin
に移動します:
sudo mv prometheus /usr/local/bin/
sudo mv promtool /usr/local/bin/
4.2 Prometheus設定ファイルの設定
Prometheus は prometheus.yml
という設定ファイルを使ってメトリックの取得元やデータ収集の設定を定義するよ。このファイルを作成または編集しよう:
global:
scrape_interval: 15s # メトリック収集の間隔
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'cadvisor'
static_configs:
- targets: ['localhost:8080']
この設定ファイルには2つのジョブ (job) が含まれてるよ:
prometheus
: Prometheus自身からメトリックを収集するため。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
cAdvisor
はhttp://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の設定ファイルに追加のメトリクスを追加して、コンテナに関するデータをさらに収集することができるよ。追加のメトリクスの例はこんな感じ:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
これを行うには、node_exporter
をインストールする必要があるよ。これでホストシステムの状態に関するメトリクスが提供されるんだ。
node_exporter
をダウンロード&インストールしよう:
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
を起動してみよう:
node_exporter &
これでnode_exporter
はhttp://localhost:9100 でアクセスできるようになるよ。
5.8 アラートルールの作成
Prometheus は、問題について管理者に通知するアラートルールの作成をサポートしています。prometheus.yml
設定ファイルにアラートルールを追加してください:
rule_files:
- "alert.rules"
alerting:
alertmanagers:
- static_configs:
- targets:
- "localhost:9093"
alert.rules
ファイルを作成し、ルールの例を以下のように記述してください:
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を使用しています。"
GO TO FULL VERSION