記事ディレクトリ
cAdvisor+Prometheus+Grafana Docker コンテナー監視プラットフォームを取得するのに 10 分
cAdvisor(Container Advisor)
これは、コンテナー リソースの使用状況とパフォーマンスを監視するために使用できるGoogle
オープン。実行中のコンテナーに関する情報を収集、集約、処理、およびエクスポートするために使用されます。具体的には、このコンポーネントは、リソース分離パラメーター、リソース使用履歴、完全なリソース使用履歴のヒストグラム、および各コンテナーのネットワーク統計を記録します。コンテナcAdvisor
自体をサポートするだけでなく、他のタイプのコンテナも可能な限りサポートし、すべてのタイプのコンテナに互換性と適応性を持たせるよう努めています。Docker
上記の紹介から, コンテナエンジンを監視するために使用されていることがわかりますcAdvisor
. 監視の実用性により,Kubernetes
デフォルトでコンテナ監視インジケータのデフォルトツールとしてKubelet
統合され. したがって, クラウドネイティブクラスタの場合, 直接使用するKubelet
コンポーネントによって提供される指標コレクションのアドレスそれだけです。
cAdvisor の導入
1. 次のコマンドを使用して、 をインストールして起動しますcAdvisor组件
。
docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--volume=/dev/disk/:/dev/disk:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
--privileged \
--device=/dev/kmsg \
google/cadvisor:latest
2. この時点で、cAdvisor组件
それは開始されており、ブラウザhttp://自己IP地址:8080
をcAdvisor组件
アクセスできますWeb UI
。
3. 複数のホストの場合、すべてのノードで 1 つのホストを実行し、cAdvisor
それぞれのノードでWeb UI
監視情報を表示するのは明らかに不便ですがcAdvisor
、デフォルトでは 2 分間の監視データのみが保存されます。良いニュースは、cAdvisor
組み込みのPrometheus
サポートが既にあることです。http://自己的IP地址:8080/metrics
標準のPrometheus
監視サンプル出力は、次の場所にアクセスして取得できます。
4. 次の表は、以下cAdvisor
で得られる典型的な監視指標の一部を示しています。
指標名 | タイプ | 意味 |
---|---|---|
container_cpu_load_average_10s | ゲージ | 過去 10 秒間のコンテナ CPU の平均負荷 |
container_cpu_usage_seconds_total | カウンター | 各CPUコアにおけるコンテナの累積占有時間(単位:秒) |
container_cpu_system_seconds_total | カウンター | システムCPU累積使用時間(単位:秒) |
container_cpu_user_seconds_total | カウンター | ユーザーの累積CPU使用時間(単位:秒) |
container_fs_usage_bytes | ゲージ | コンテナ内のファイルシステムの使用量(単位:バイト) |
container_fs_limit_bytes | ゲージ | コンテナが使用できるファイルシステムの総量(単位:バイト) |
container_fs_reads_bytes_total | カウンター | コンテナ内の累計読み込みデータ量(単位:バイト) |
container_fs_writes_bytes_total | カウンター | コンテナに累積的に書き込まれたデータの総量 (単位: バイト) |
container_memory_max_usage_bytes | ゲージ | コンテナーの最大メモリ使用量 (単位: バイト) |
container_memory_usage_bytes | ゲージ | コンテナーの現在のメモリ使用量 (単位: バイト) |
container_spec_memory_limit_bytes | ゲージ | コンテナのメモリ使用制限 |
machine_memory_bytes | ゲージ | 現在のホストのメモリの合計量 |
container_network_receive_bytes_total | カウンター | コンテナネットワークが受信した累計データ量(単位:バイト) |
container_network_transmit_bytes_total | カウンター | コンテナネットワーク上で累積転送されたデータの総量(単位:バイト) |
プロメテウスの展開
1.prometheus
コンテナの再起動時にデータが失われないように、データを保存するための外部ディレクトリを作成します。
mkdir -p /disk/docker-monitor/prometheus/data
chmod 777 /disk/docker-monitor/prometheus/data
2.prometheus
構成ファイルは、簡単に変更できるようにプラグアウトされていますvi /disk/docker-monitor/prometheus/prometheus.yml
。
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
rule_files:
- rule/record/*.yml
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- job_name: "cadvisor"
static_configs:
- targets: ["124.222.45.207:8080"]
job_name: "prometheus" は、Prometheus 自身の関連インジケーターを取得するように構成されています。
job_name: "cadvisor" は、以前に構成された cAdvisor コンポーネント インジケーターをキャプチャするように構成されています。
3.Docker
展開Prometheus
:
docker run -d -p 9090:9090 --name prometheus \
-v /disk/docker-monitor/prometheus/conf:/opt/bitnami/prometheus/conf \
-v /disk/docker-monitor/prometheus/data:/opt/bitnami/prometheus/data \
bitnami/prometheus:2.42.0 \
--web.enable-lifecycle --web.enable-admin-api\
--config.file=/opt/bitnami/prometheus/conf/prometheus.yml\
--storage.tsdb.path=/opt/bitnami/prometheus/data
–web.enable-lifecycle –web.enable-admin-api は、ホット ローディングの構成など、prometheus を管理するための REST API インターフェイスを提供します: curl -XPOST http://localhost:9090/-/reload。
注: コンテナーの再始動後のデータ損失を避けるために、prometheus 構成ファイルとストレージ・ディレクトリーはここにぶら下がっています。
4.Prometheus
起動が完了すると、ブラウザは次の場所にアクセスします。
Status -> Targets
ページにアクセスして、設定された 2 つのキャプチャがJob
表示されていることを確認し、State
それらが緑色の場合UP
、アクセスは成功しています。
5.cAdvisor
サンプルデータが正常に収集された後、コンテナは次の式で計算できますCPU使用率
。sum(irate(container_cpu_usage_seconds_total{image!=""}[1m])) without (cpu)
Grafana のデプロイ
1.展開Grafana
:
docker run -d --name=grafana -p 3000:3000 -v grafana:/var/lib/grafana grafana/grafana
The /var/lib/grafana path is plugged out. このディレクトリには、Grafana プラグインとデータ情報が格納され、Docker コンテナーの再起動時にデータが失われるのを回避できます。
2. にアクセスしてhttp://自己的IP:3000/login
、口座番号を入力してくださいadmin/admin
:
3.Prometheus
作成したばかりのものを指す型データ ソースを作成しますPrometheus
。
4.Docker
コンテナー監視パネルをインポートします。ここでは次を使用します11277
。
5. モニタリング パネルでコンテナの実行状況を確認できますDocker
. 下の図に示すように、現在実行中のコンテナは 4 つあり、合計メモリ使用量は約 1.84%319MB
です.CPU使用率
それぞれのCPU使用率
メモリ使用量, ネットワーク IO およびディスクコンテナは曲線IO などで表示されます。