監控docker
## 一、概述
### 1.1 監控docker的意義
基于程序運行的性能、便性、隔離性等優點,docker程序事實上已經成為了企業云原生部罷的標準選擇。那么docker環境是否穩定,docker上運行的各類容器程序cpu使用率、內存使用、網絡、磁盤空間等性能參數,就非常有必要
### 1.2 docker stat命令
最簡單的docker容器性能監控命令是
docker stats

### 1.3 基于cAdvisor組件的docker容器監控
之前centos1部罷時,已經安裝了prometheus、node_exporter以及cAdvisor的組件。yaml的回顧

<hr>
## 二、cAdvisor組件介紹
### 2.1 docker安裝(略)
### 2.2 docker-compose安裝(略)
### 2.3 安裝rabbitmq
創建rabbitmq目錄
mkdir /data/vadisor -p
cd /data/vadisor
創建docker-compose.yaml
vim docker-compose.yaml
配置如下:
services:
cadvisor:
image: registry.cn-hangzhou.aliyuncs.com/ldw520/cadvisor:latest
container_name: cadvisor
restart: always
volumes:
- /etc/localtime:/etc/localtime:ro
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
ports:
- '8079:8080'
啟動 docker-compose.yaml
docker-compose up -d
查看docker的信息
docker images
docker ps -a
宿主機上訪問cadvisor的metrics
http://192.168.100.141:8079/metrics
<hr>
## 2.6 prometheus服務器添加cadvisor的地址
192.168.100.85的centos上,修改prometheus的配置文件
#進入docker-prometheus目錄
cd /data/docker-prometheus
#修改prometheus.yml
vi prometheus/prometheus.yml
添加cadvisor配置如下圖:

- targets: ["192.168.100.141:8079"]
labels:
instance: "Centos2服務器的cadvisor-server" # 修改為更具體的實例名稱
保存后輸入命令更新:
curl -XPOST http://localhost:9090/-/reload
成功監聽

<hr/>
## 三、常用的docker監控指標
| 指標名稱 | 類型 | 含義
| container_cpu_load_average_10s | gauge | 過去10秒容器CPU平均負載
| container_cpu_usage_seconds_total | counter | 容器在每個CPU內核上累計占用時間(單位:秒)
| container_cpu_system_seconds _total | counter | System CPU累計占用時間(單位:秒)
| container_cpu_user_seconds_total | counter | User CPU累計占用時間(單位:秒)
| container_fs_usage_bytes | gauge | 容器中文件系統的使用量(單位:字節)
| container_fs_limit_bytes | gauge | 容器可以使用的文件系統總量(單位:字節)
| container_fs_reads_bytes_total | counter | 容器累計讀取數據的總量(單位:字節)
| container_fs_writes_bytes_total | counter | 容器累計寫入數據的總量(單位:字節)
| container_memory_max_usage_bytes | gauge | 容器的最大內存使用量(單位:字節)
| container_memory_usage_bytes | gauge | 客器當前的內存使用量
| container_spec_memory_limit_bytes | gauge | 容器內存使用量限制
| machine_memory_bytes | gauge | 當前主機的內存總量
| container_network_receive_bytes_total | gauge | 容器網絡累計接收數據總量(單位:字節)
| container_network_transmit_bytes_total | counter | 容器網絡累計傳輸數據總量(單位:字節)
### 3.1grafana中對cadvisor進行監控
copy id to clipboard->grafana的dashboards中lmport dashboard
https://grafana.com/grafana/dashboards/11600-docker-container/


- Prometheus教程
- 一. dokcer 安裝
- 二. 安裝docker-compose
- 三. docker-compose安裝Prometheus
- 四. 配置grafana的數據源
- 五. Prometheus的Exporter
- 六. Prometheus的基本術語
- 七. 監控Linux
- 八. 監控redis和mongodb
- 九. 監控mysql數據庫
- 十. 監控go程序
- 十一. 監控nginx
- 十二. 監控消息隊列
- 十三. 監控docker
- 十四. 監控進程
- 十五. 域名監控
- 十六. SNMP監控
- 十七. 黑盒監控
- 十八. 自定義監控
- 十九. go實現自定義監控
- 二十. 服務發現概述
- 二十一. 基于文件的服務發現
- 二十二. 基于Consul的服務發現
- 二十三. relabeling機制