【クラウドネイティブ・Docker】cAdvisor+Prometheus+Grafana 10分でDockerコンテナ監視プラットフォーム完成

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地址:8080cAdvisor组件アクセスできますWeb UI

画像-20230201210633012

画像-20230201210855995画像-20230319171651423

3. 複数のホストの場合、すべてのノードで 1 つのホストを実行し、cAdvisorそれぞれのノードでWeb UI監視情報を表示するのは明らかに不便ですがcAdvisor、デフォルトでは 2 分間の監視データのみが保存されます。良いニュースは、cAdvisor組み込みのPrometheusサポートが既にあることです。http://自己的IP地址:8080/metrics標準のPrometheus監視サンプル出力は、次の場所にアクセスして取得できます。

画像-20230319172646079

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起動が完了すると、ブラウザは次の場所にアクセスします。

画像-20230319181053411

Status -> Targetsページにアクセスして、設定された 2 つのキャプチャがJob表示されていることを確認し、Stateそれらが緑色の場合UP、アクセスは成功しています。

5.cAdvisorサンプルデータが正常に収集された後、コンテナは次の式で計算できますCPU使用率sum(irate(container_cpu_usage_seconds_total{image!=""}[1m])) without (cpu)

画像-20230319181712554

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:

画像-20230319182215216

3.Prometheus作成したばかりのものを指す型デ​​ータ ソースを作成しますPrometheus

画像-20230319182500971

4.Dockerコンテナー監視パネルをインポートします。ここでは次を使用します11277

画像-20230319191651776

5. モニタリング パネルでコンテナの実行状況を確認できますDocker. 下の図に示すように、現在実行中のコンテナは 4 つあり、合計メモリ使用量は約 1.84%319MBです.CPU使用率それぞれのCPU使用率メモリ使用量, ネットワーク IO およびディスクコンテナは曲線IO などで表示されます。

画像-20230319191905993

おすすめ

転載: blog.csdn.net/god_86/article/details/129654988
おすすめ