部署环境:
两台 Docker Host 10.12.31.211 10.12.31.212
监控内容:
使用Prometheus 监控两台host以及上面的容器
安装组件:
Prometheus Server
以容器的形式运行在 10.12.31.212 上
Exporter
Prometheus有很多现成的Exporter,完成的列表请参考
https://prometheus.io/docs/instrumenting/exporters/
使用
Node Exporter 收集host硬件和操作系统数据。他将以容器的方式运行在所有host上
使用
cAdvisor收集容器数据,他将以容器的方式运行在所有host上
Grafana
显示多维数据,以容器的方式运行在 10.12.31.212 上
安装node-exporter ( 10.12.31.211 10.12.31.212 )
docker run -d -p 9100:9100 \
-v "/proc:/host/proc" \
-v "/sys:/host/sys" \
-v "/:/rootfs" \
--net=host \
prom/node-exporter \
--path.procfs /host/proc \
--path.sysfs /host/sys \
--collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)"
安装cadvisor( 10.12.31.211 10.12.31.212 )
docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
--net=host \
google/cadvisor:latest
安装prometheus( 10.12.31.212 )
docker run -d -p 9090:9090 \
-v /root/prometheus.yml:/etc/prometheus/prometheus.yml \
--name prometheus \
--net=host \
prom/prometheus
配置prometheus( 10.12.31.212 )
root@host2:~# docker exec -it prometheus /bin/sh
/prometheus $ vi /etc/prometheus/prometheus.yml
编辑 static_configs - targets ,添加需要监控的接口,修改完毕后需要重启一下容器
static_configs:
- targets: ['localhost:9090','localhost:8080','localhost:9100','192.168.56.102:8080','192.168.56.102:9100']
安装grafana( 10.12.31.212 )
docker run -d -i -p 3000:3000 \
-e "GF_SERVER_ROOT_URL=http://grafana.server.name" \
-e "GF_SECURITY_ADMIN_PASSWORD=secret" \
--net=host \
grafana/grafana
http://10.12.31.212:3000/ admin secret
安装完成后,访问 Prometheus 查看监控内容是否正常
http://10.12.31.212:9090/targets
配置Grafana
http://10.12.31.212:3000/ admin secret
添加数据源
在列举出来的数据源类型中选择 Prometheus
在URL处填写Prometheus的地址,因为就在本机,所以
http://localhost:9090 即可,然后点击“Save & Test”按钮
返回首页,点击左侧 + ,Create - Import
有三种方式可以导入 dashboard ,填写官网上的模板id ,上传json文件,粘贴json内容
我们去Grafana官网去查找docker的模板
https://grafana.com/dashboards?dataSource=prometheus&search=docker
这里我们选择模板“Docker and system monitoring” 我们可以拷贝模板id,也可以下载json文件
这里我们在本地的Grafana中填写模板的id 893
因为本地的是Grafana是联网的,自动联网查询模板 893 的信息,我们需要做的就是在Prometheus处的下拉菜单中选择 Prometheus,然后点击 Import 按钮即可
然后我们就可以看到绚丽的监控画面了