在Marathon 上部署 cAdvisor + InfluxDB + Grafana Docker监控
2017-04-14 19:47
1336 查看
关于 Docker 容器的监控,google cAdvisor 是个很好的工具,但是它默认只显示实时数据,不储存历史数据。为了存储和显示历史数据、自定义展示图,可以把将cAdvisor与InfluxDB、Grafana 集成起来。
需要的镜像:
tutum/influxdb
google/cadvisor
grafana/grafana
安装:有8台mesos-slave,都需要运行一个cAdvisor docker实例对docker进行监控,然后需要运行一个InfluxDB docker实例存储cAdvisor 产生的数据,然后运行一个Grafana docker实例将InfluxDB数据库里面的数据取出来展示到图上面。
UI 通过 marathon-lb 的虚拟主机发布;
数据端口 8086 通过 servicePort 发布到 marathon-lb所在的slaves;
servicePort需要设置为固定值,比如:28086,以便于cAdvisor和Grafana连接;
数据目录 /data 映射到 nfs共享目录;
为每个mesos slave创建一个单独的数据库,分别为:cadvisor112, cadvisor113, ...
UI 通过marathon-lb的虚拟主机发布;
设置 storage_drive 为 influxdb;
查看cAdvisor UI:
http://cadvisor112.zyyt.osp.cloud
UI 通过 marathon-lb 虚拟主机发布;
数据目录 /var/lib/grafana 映射到 nfs 共享存储,以便于持久化存储;
http://grafana.zyyt.osp.cloud
URL:http://influxdb.osp.cloud:28086
Access:direct
Database:选择一个slave的数据库,如:cadvisor112
创建graph:
效果图:
参考: http://www.mamicode.com/info-detail-1393800.html
需要的镜像:
tutum/influxdb
google/cadvisor
grafana/grafana
安装:有8台mesos-slave,都需要运行一个cAdvisor docker实例对docker进行监控,然后需要运行一个InfluxDB docker实例存储cAdvisor 产生的数据,然后运行一个Grafana docker实例将InfluxDB数据库里面的数据取出来展示到图上面。
部署 InfluxDB
InfluxDB只需要一个实例;UI 通过 marathon-lb 的虚拟主机发布;
数据端口 8086 通过 servicePort 发布到 marathon-lb所在的slaves;
servicePort需要设置为固定值,比如:28086,以便于cAdvisor和Grafana连接;
数据目录 /data 映射到 nfs共享目录;
{ "id": "/influxdb", "cmd": null, "cpus": 0.3, "mem": 1024, "disk": 0, "instances": 1, "acceptedResourceRoles": [], "container": { "type": "DOCKER", "volumes": [ { "containerPath": "/etc/localtime", "hostPath": "/etc/localtime", "mode": "RO" }, { "containerPath": "/data", "hostPath": "/home/nfs/InfluxDB", "mode": "RW" } ], "docker": { "image": "10.80.163.110:5000/influxdb", "network": "BRIDGE", "portMappings": [ { "containerPort": 8083, "hostPort": 0, "servicePort": 10010, "protocol": "tcp", "labels": {} }, { "containerPort": 8086, "hostPort": 0, "servicePort": 28086, "protocol": "tcp", "labels": {} } ], "privileged": false, "parameters": [], "forcePullImage": false } }, "labels": { "HAPROXY_0_VHOST": "influxdb.osp.cloud", "HAPROXY_GROUP": "external" }, "portDefinitions": [ { "port": 10010, "protocol": "tcp", "name": "default", "labels": {} }, { "port": 28086, "protocol": "tcp", "labels": {} } ] }
创建监控数据库
打开 http://influxdb.osp.cloud设置 Host 和 Port 分别为http://influxdb.osp.cloud 和 28086。为每个mesos slave创建一个单独的数据库,分别为:cadvisor112, cadvisor113, ...
部署 cAdvisor
每个mesos slave都要部署一个实例;UI 通过marathon-lb的虚拟主机发布;
设置 storage_drive 为 influxdb;
{ "id": "/cadvisor112", "cmd": null, "cpus": 0.1, "mem": 256, "disk": 0, "instances": 1, "constraints": [ [ "hostname", "CLUSTER", "10.80.163.112" ] ], "acceptedResourceRoles": [ "*" ], "container": { "type": "DOCKER", "volumes": [ { "containerPath": "/etc/localtime", "hostPath": "/etc/localtime", "mode": "RO" }, { "containerPath": "/rootfs", "hostPath": "/", "mode": "RO" }, { "containerPath": "/var/run", "hostPath": "/var/run", "mode": "RW" }, { "containerPath": "/sys", "hostPath": "/sys", "mode": "RO" }, { "containerPath": "/var/lib/docker", "hostPath": "/var/lib/docker", "mode": "RO" }, { "containerPath": "/cgroup", "hostPath": "/cgroup", "mode": "RO" } ], "docker": { "image": "10.80.163.110:5000/cadvisor", "network": "BRIDGE", "portMappings": [ { "containerPort": 8080, "hostPort": 0, "servicePort": 10011, "protocol": "tcp", "labels": {} } ], "privileged": false, "parameters": [], "forcePullImage": false } }, "labels": { "HAPROXY_0_VHOST": "cadvisor112.zyyt.osp.cloud", "HAPROXY_GROUP": "external" }, "portDefinitions": [ { "port": 10011, "protocol": "tcp", "name": "default", "labels": {} } ], "args": [ "-storage_driver", "influxdb", "-storage_driver_host", "influxdb.osp.cloud:28086", "-storage_driver_db", "cadvisor112" ] }
查看cAdvisor UI:
http://cadvisor112.zyyt.osp.cloud
部署 Grafana
只需要部署一个实例;UI 通过 marathon-lb 虚拟主机发布;
数据目录 /var/lib/grafana 映射到 nfs 共享存储,以便于持久化存储;
{ "id": "/grafana", "cmd": null, "cpus": 0.3, "mem": 512, "disk": 0, "instances": 1, "constraints": [ [ "hostname", "CLUSTER", "10.80.163.112" ] ], "acceptedResourceRoles": [ "*" ], "container": { "type": "DOCKER", "volumes": [ { "containerPath": "/etc/localtime", "hostPath": "/etc/localtime", "mode": "RO" }, { "containerPath": "/var/lib/grafana", "hostPath": "/home/nfs/GrafanaData", "mode": "RW" } ], "docker": { "image": "10.80.163.110:5000/grafana:2.0.2", "network": "BRIDGE", "portMappings": [ { "containerPort": 3000, "hostPort": 0, "servicePort": 10012, "protocol": "tcp", "labels": {} } ], "privileged": false, "parameters": [], "forcePullImage": false } }, "labels": { "HAPROXY_0_VHOST": "grafana.zyyt.osp.cloud", "HAPROXY_GROUP": "external" }, "portDefinitions": [ { "port": 10012, "protocol": "tcp", "name": "default", "labels": {} } ] }
创建数据分析图
打开 Grafana UI:http://grafana.zyyt.osp.cloud
设置数据源:
类型:InfluxDBURL:http://influxdb.osp.cloud:28086
Access:direct
Database:选择一个slave的数据库,如:cadvisor112
创建graph:
效果图:
参考: http://www.mamicode.com/info-detail-1393800.html
相关文章推荐
- Docker+ cadvisor+Prometheus+Grafana监控部署实践
- 使用 cAdvisor + InfluxDB + Grafana 配置 Docker 监控
- Docker监控快速部署,cAdvisor+InfluxDB+Grafana
- Docker swarm 集群监控平台搭建流程 (influxdb + cadvisor + grafana)
- docker:快速构建容器监控系统cAdvisor+InfluxDB+Grafana
- cAdvisor、InfluxDB、Grafana搭建Docker1.12性能监控平台
- 使用influxdb+cadvisor+grafana的docker镜像搭建一个实时监控系统的环境
- (原)ubuntu下cadvisor+influxdb+grafana+supervisord监控主机和docker的containers
- Kubernetes监控:部署Heapster、InfluxDB和Grafana
- Cadvisor-InfluxDB-Grafana监控实现
- InfluxDB+cAdvisor+Grafana配置Docker监控
- InfluxDB、grafana、collect部署监控(centos6.8)
- Docker 集群监控平台---cAdvisor-InfluxDB-Grafana
- cAdvisor、InfluxDB、Grafana搭建Docker1.12性能监控平台
- Linux下部署grafana + influxdb + telegraf , 构建性能监控平台
- [置顶] cAdvisor、InfluxDB、Grafana搭建Docker1.12性能监控平台
- 八 、DockerUI与Shipyard以及InfluxDB+cAdvisor+Grafana配置监控
- 使用InfluxDB+cAdvisor+Grafana配置Docker监控
- Docker监控套件(Telegraf+Influxdb+Grafana)研究与实践
- Docker监控——Cadvisor+InfluxDB+Grafana搭建过程