docker 命令
docker stats
这样虽然也能展示,但是数据没有持久化,没有健康指标过线预警等功能
CAdvisorCAdvisor是一个容器监控资源工具,包括容器的内存、CPU、网络IO、磁盘IO等监,同时提供了一个web页面用于查看容器的实时运行状态。CAdvisor默认存储2分钟的数据,而且只是针对物理机。不过CAdvisor提供了很多数据集成接口,支持InfluxDB,Redis,Kafka,ES等集成,可以加上对应配置将监控数据发往这些数据库存储起来
主要功能
1 展示Host和容器两个层次的监控数据
2 展示历史变化数据
InFluxDBInFluxDB是用GO语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖
CAdvisor默认只存储2分钟的数据,为了持久化数据和统一收集展示监控数据,需要将数据存储到InFluxDB中。InFluxDB是一个时序数据库,专门用于存储时序相关数据,很适合存储CAdvisor的数据,而且CAdvisor本身已提供InFluxDB的集成方法,只需要启动容器时指定配置即可。
主要功能
1 基于时间时序、支持与时间有关的相关函数(如最大、最小、求和等)
2 可度量性:可以实时对大量数据进行计算
3 基于事件:支持任意的事件数据
GranfanaGranfana是一个开源的数据监控分析可视化平台,支持多种数据源配置和丰富的插件及模板功能,支持图表权限控制和报警
主要特性:
1 灵活丰富的图形化选项
2 可以混合多种风格
3 支持白天和夜间模式
4 多个数据源
新建文件夹,创建docker-compose.yml
docker-compose内容:
version: "3.1"volumes:grafana_data: {}services: influxdb: image: tutum/influxdb:0.9 container_name: ms01 restart: alwaysenvironment: - PRE_CREATE_DB=cadvisorports: - "8083:8083" - "8086:8086" volumes: - ./data/influxdb:/datacadvisor:image: google/cadvisorlinks:- influxdb:influxsrvcommand: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086restart: alwaysports:- "8080:8080"volumes: - /:/rootfs:ro - /var/run:/var/run:rw- /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:rografana:user: "104"image: grafana/grafanauser: "104"restart: alwayslinks:- influxdb:influxsrvports:- "3000:3000"volumes:- grafana_data:/var/lib/grafanaenvironment:- HTTP_USER=admin - HTTP_PASS=admin - INFLUXDB_HOST=influxsrv- INFLUXDB_PORT=8086 - INFLUXDB_NAME=cadvisor - INFLUXDB_USER=root - INFLUXDB_PASS=root
检查配置文件
启动docker-compose文件
docker-compose up -d
浏览CAdvisor,第一次进的比较慢,下面的东西比较多,此处略过
ip:8080
浏览influxdb存储服务,http://ip:8083/,可以看到在docker-compose创建的数据库已经存在
浏览grafana展现服务,http://ip:3000
ip+3000端口的方式访问,默认帐户密码(admin/admin)
1 配置数据源
2 选择influxdb
3 配置细节
4 配置面板panel