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
この額面をインポートした後