Prometheus + Grafana監視システムはCadvisorと連携して、Dockerコンテナを監視します

Prometheusはcadvisorを使用してdockerコンテナを監視します

1.キャドバイザーの概要

一般に、企業には多数のdockerホストがあるため、dockerを監視する必要があります。dockermonitoringは、シェルコマンドでdocker statsを使用して監視の値を取得できますが、収集のためにprometheusに渡すことはできません。Zabbix監視dockerは、より面倒です。だからGoogleのcadvisorがあります

Cadvisorは、マシン上で実行中のすべてのコンテナー情報を収集できるだけでなく、プロメテウスがデータをキャプチャするのに便利な基本的なクエリインターフェイスのhttpインターフェイスも提供します。

Cadvisorは、CPU使用率、メモリ使用量、ネットワークスループット、ファイルシステム使用率など、ノードマシンのリソースとコンテナでリアルタイムの監視とパフォーマンスデータの収集を実行できます。ただし、cadvisorには欠陥があり、現在の監視データのみをリアルタイムで表示できます。 。、時系列データは保持されないため、cadvisorをprometheusに接続する必要があり、時系列データはprometheusの組み込みtsdbデータベースによって保存されます。

Cadvisorは、Linux cgroupsを使用して、k8sに統合されたコンテナーのリソース使用量と、公式の標準構成を取得します。

CadvisorはすべてのDockerホストにインストールする必要があります

Dockerは主にコンテナのメモリ、CPU、ディスク、ネットワークカードを監視します

dockerstatsを使用してコンテナーのパフォーマンスを監視するコマンド

[root @ 192_168_81_220 docker] #docker stats --no-stream Neuro_moserコンテナ
ID名CPU%MEM使用
量/制限MEM%NET I / OブロックI / O PIDS e265e173ac98 Neuro_moser 0.00%5.605MiB / 972.6MiB 0.58%2.42kB / 0B 27.3MB / 22.5kB 2

最後に、grafanaと協力して、Dockerコンテナーを監視する効果を示します。図で
は、CPU、各コンテナーのメモリ使用量、および各ホストで実行されているコンテナーの数を明確に確認できます。
ここに画像の説明を挿入

2.環境への備え

IP CPU名 サービス
192.168.81.210 プロメテウスサーバー プロメテウス、グラファナ
192.168.81.220 192_168_81_220 docker、cadvisor
192.168.81.230 192_168_81_230 docker、cadvisor

3.dockerサーバーにdockerをデプロイします

192.168.81.220/92.168.81.230サーバーを操作する必要があります

1.获取镜像源
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
 
sed -i 's#download.docker.com#mirrors.tuna.tsinghua.edu.cn/docker-ce#' /etc/yum.repos.d/docker-ce.repo 

yum makecache fast

2.安装docker
yum -y install docker-ce
systemctl start docker
systemctl enable docker

3.配置镜像加速器
 tee /etc/docker/daemon.json <<-'EOF'
{
   "registry-mirrors": ["https://zggyaen3.mirror.aliyuncs.com"]
}
EOF


4.启动docker
systemctl restart docker

5.简单运行一个容器
docker run -d nginx:latest

4.Dockerインストールcadvisorモニタリング

4.1.cadvisorをインストールします

Dockerホスト、192.168.81.220 /92.168.81.230サーバーでのすべての操作をすべて操作する必要があります

docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:rw \
  --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 \
  google/cadvisor:latest
  
注释:   --volume=/:/rootfs:ro 		#将/目录挂载到容器的/rootfs,权限为读
	    --volume=/var/run:/var/run:rw 	#将/var/run挂载到容器的/var/run目录,权限为读写
	    其他的volume都是这个意思,ro为读,rw为读写
	    --volume=/var/lib/docker/:/var/lib/docker:ro			#这个是将宿主机的docker目录挂载到容器,因为cadvisor需要监控所有容器,因此需要挂载
	    --publish=8080:8080 		#开放公共端口

最終的な効果は、両方のマシンがcadvisorとnginxミラーリングを開始したことです

ここに画像の説明を挿入

4.2。cadvisorにアクセスして、監視データを表示します

http:// host ip:8080jにアクセスします

ここに画像の説明を挿入

4.3。特定のコンテナの監視情報を表示する

ホームページ/ Dockerをクリックすると、ジャンプするとサブコンテナの下にコンテナリストが表示されます。以下に表示されるコンテナIDはすべてコンテナIDです。dockerpsを使用して特定のコンテナを表示できます。

ここに画像の説明を挿入

開くと、特定のコンテナ監視インジケータが表示されます

ここに画像の説明を挿入

画像もご覧いただけます

ここに画像の説明を挿入

4.4。cadvisorモニタリングインデックスページ

http:// host ip:8080 / metricsにアクセスしてください
ここに画像の説明を挿入

5.prometheusはcadvisorモニタリングを追加します

5.1。プロメテウスのインストール

二进制安装详细看上一篇文章
docker安装
[root@prometheus-server ~]# docker run -d -p9090:9090  -v /data/prom/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus:latest 

5.1。プロメテウス構成ファイルを変更します

1.修改配置文件增加docker监控cadvisor
[root@prometheus-server ~]# vim /etc/prometheus/prometheus.yml 
  - job_name: "docker"
    static_configs:
    - targets: ['192.168.81.220:8080','192.168.81.230:8080']
2.刷新配置
[root@prometheus-server ~]# curl -X POST http://127.0.0.1:9090/-/reload

Docker監視ホストが稼働しています

ここに画像の説明を挿入

監視項目を確認してください。コンテナの先頭が監視中です。

ここに画像の説明を挿入

6.prometheus + grafanaは、Dockerコンテナの監視とグラフィック表示を実現します

6.1.安装grafana

[root@prometheus-server ~]# rpm -ivh grafana-6.3.2-1.x86_64.rpm 
[root@prometheus-server ~]# systemctl start grafana-server
[root@prometheus-server ~]# systemctl enable grafana-server

http:// server address:3000にアクセスします

ここに画像の説明を挿入

6.1。プロメテウスデータソースを追加する

[データソースの追加]をクリックします

ここに画像の説明を挿入

プロメテウスを選ぶ

ここに画像の説明を挿入

プロメテウスの住所を記入してください

ここに画像の説明を挿入

6.2.Dockerモニタリンググラフィックテンプレートをインポートする

6.2.1。+記号をクリックします—インポート

ここに画像の説明を挿入

6.2.2。監視テンプレートIDを入力します

ここに監視テンプレートのID番号を入力します。Docker監視テンプレートNo.193の方が適しています

ここに画像の説明を挿入

6.2.3。プロメテウスソースを選択する

ID番号を入力すると、対応するテンプレートが自動的に見つかります

対応するプロメテウスソースを選択し、[インポート]をクリックします

ここに画像の説明を挿入

6.3。グラフィックを表示する

Dockerモニタリングを選択する

ここに画像の説明を挿入

このテンプレートの軟膏のフライは、特定のホスト上のコンテナーを表示できないことですが、代わりに、Dockerホストのすべてのコンテナーをここにリストします。
ここに画像の説明を挿入

7.Dockerホストのテンプレートインポートを選択できます

最後に、grafanaでホストを選択できるDockerモニタリングテンプレートを見つけました

ダウンロードリンクhttps://grafana.com/api/dashboards/8321/revisions/3/download

この額面をインポートした後
ここに画像の説明を挿入

8.最終的な効果

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_44953658/article/details/111629225
おすすめ