Docker(七) Docker监控平台

监控维度

  • 主机维度

    • 主机cpu
    • 主机内存
    • 主机本地镜像情况
    • 主机上容器运行情况
  • 镜像维度
    • 镜像的基本信息
    • 镜像与容器的基本信息
    • 镜像构建的历史信息(层级依赖信息)
  • 容器维度
    • 容器基本信息
    • 容器的运行状态信息
    • 容器用量信息

docker监控命令

docker ps
docker images
docker stats
# 注意:docker stats只有选择libcontainer作为执行驱动时才可以使用
# docker stats时常会有一些限制,使用stats api会显示更多的信息
echo -e "GET /containers/tools/stats HTTP/1.0\r\n" | nc -U /var/run/docker.sock
docker inspac
docker top
docker port

cAdvisor

google cAdvisor的一些特性:

  • 拥有远程管理的丰富api支持api docs
  • 有web ui管理界面
  • 是google除支持k8s外的另一个项目
  • 监控信息输出到influxdb数据库进行存储和读取,支持很多其他的插件
  • 支持将容器的统计信息一prometheus标准指标形式输出并存储在/metrics HTTP服务端点
sudo 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

DataDog

SoundCloud的Promtheus

Promtheus是一个开源服务监控系统与时间序列数据库,结合exporter使用,exporter是基于prometheus开放的Http接口二次开发用来抓取应用程序的指标数据

Global setting

network configure

docker network create --driver bridge --subnet 10.0.0.0/24 --gateway 10.0.0.1 monitor

Grafana configure

Grafana Template

# pull grafana image
docker pull grafana/grafana

grafana目录

  • 配置文件/etc/grafana/
  • sqlite3 database file /var/lib/grafana

grafana在docker中的环境变量

  • GF_SERVER_ROOT_URL=http://grafana.server.name 指定grafana的访问路径
  • GF_SECURITY_ADMIN_PASSWORD=secret 指定grafana的登录密码
  • GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource 指定安装插件的变量

构建持久性存储

docker run  -d  -v /var/lib/grafana  --name grafana-storage  busybox:latest

启动容器

# 启动Grafana容器
docker run  -d  -p 3000:3000  --name grafana  --volumes-from grafana-storage  -e "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource"  -e "GF_SERVER_ROOT_URL=http://10.0.0.10:3000"  -e "GF_SECURITY_ADMIN_PASSWORD=marion"  --network monitor  --ip 10.0.0.10  --restart always  grafana/grafana

# 查看配置文件以及数据目录的挂载位置
docker inspect grafana

cAdvisor

sudo 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   --detach=true   --name=cadvisor   --network monitor   --ip 10.0.0.11   google/cadvisor:latest

Deploy by docker-compose yaml file

docker-compose.yml

prometheus:
    image: prom/prometheus:latest
    container_name: monitoring_prometheus
    restart: unless-stopped
    volumes:
      - ./data/prometheus/config:/etc/prometheus/
      - ./data/prometheus/data:/prometheus
    command:
      - ‘-config.file=/etc/prometheus/prometheus.yml‘
      - ‘-storage.local.path=/prometheus‘
      - ‘-alertmanager.url=http://alertmanager:9093‘
    expose:
      - 9090
    ports:
      - 9090:9090
    links:
      - cadvisor:cadvisor
      - node-exporter:node-exporter

  node-exporter:
    image: prom/node-exporter:latest
    container_name: monitoring_node_exporter
    restart: unless-stopped
    expose:
      - 9100

  cadvisor:,
    image: google/cadvisor:latest
    container_name: monitoring_cadvisor
    restart: unless-stopped
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:rw
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
    expose:
      - 8080

  grafana:
    image: grafana/grafana:latest
    container_name: monitoring_grafana
    restart: unless-stopped
    links:
      - prometheus:prometheus
    volumes:
      - ./data/grafana:/var/lib/grafana
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=MYPASSWORT
      - GF_USERS_ALLOW_SIGN_UP=false
      - GF_SERVER_DOMAIN=myrul.com
      - GF_SMTP_ENABLED=true
      - GF_SMTP_HOST=smtp.gmail.com:587
      - [email protected]
      - GF_SMTP_PASSWORD=mypassword
      - [email protected]



prometheus.yml

# my global config
global:
  scrape_interval:     120s # By default, scrape targets every 15 seconds.
  evaluation_interval: 120s # By default, scrape targets every 15 seconds.
  # scrape_timeout is set to the global default (10s).

  # Attach these labels to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
      monitor: ‘my-project‘

# Load and evaluate rules in this file every ‘evaluation_interval‘ seconds.
rule_files:
  # - "alert.rules"
  # - "first.rules"
  # - "second.rules"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it‘s Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: ‘prometheus‘

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 120s

    # metrics_path defaults to ‘/metrics‘
    # scheme defaults to ‘http‘.

    static_configs:
         - targets: [‘localhost:9090‘,‘cadvisor:8080‘,‘node-exporter:9100‘, ‘nginx-exporter:9113‘]

command

docker-compose up -d

sysdig

sysdig offical

docker pull sysdig/sysdig
docker run -i -t --name sysdig --privileged -v /var/run/docker.sock:/host/var/run/docker.sock -v /dev:/host/dev -v /proc:/host/proc:ro -v /boot:/host/boot:ro -v /lib/modules:/host/lib/modules:ro -v /usr:/host/usr:ro sysdig/sysdig

docker container exec -it sysdig bash
csysdig

Weave Scope

weave scope

常用的容器监控工具

Docker Runtime Metrics Guide

原文地址:http://blog.51cto.com/bkmaster/2327782

时间: 2024-10-04 16:13:44

Docker(七) Docker监控平台的相关文章

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor

https://www.cnblogs.com/Detector/p/10104254.html 前言 在做性能测试时,如果有一个性能测试结果实时展示的页面,可以极大的提高我们对系统性能表现的掌握程度,进而提高我们的测试效率.但是我们每次打开Jmeter都会有几个硕大的字提示别用GUI模式进行负载测试,而且它自带的监视器效果实在一般:在Windows下渲染效果不好,在linux环境(非GUI环境)下更是无法使用,这一点我在如何选择性能测试工具中有过简单的描述. 所以,在做性能测试时,为Jmete

基于Docker部署4.2 版本的zabbix监控平台

准备工作 两台VMware 虚拟机 一台充当zabbix server(安装docker)ip:192.168.73.133 一台充当zabbix agent(安装docker)ip:192.168.73.136 基础环境 cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) dcoker安装 #关闭防火墙: systemctl stop firewalld systemctl disable firewalld #关闭seli

【译文】用Spring Cloud和Docker搭建微服务平台

by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-microservices.html This blog series will introduce you to some of the foundational concepts of building a microservice-based platform using Spring Cloud

企业为什么要使用基于Docker的PaaS/CaaS平台

前言 早在十多年前国内外的一些大厂就开始投入研发和使用容器技术,比如Google,对他们来说,使用容器能够充分利用计算资源节省硬件成本.而这几年--众所周知--真正把容器技术发扬光大的是Docker.Docker的slogan"Build,Ship & Run anywhere"定位非常清晰,Docker的出现打破了传统运维模式里从打包到部署的过程中环境.语言.平台不一致的乱象,将这一整套开发运维模式标准化了,从而真正帮助企业实践了DevOps和微服务化. 但是,国内的大型企业

Docker私有云管理平台————Docker Shipyard

一. Docker Shipyard是什么 ? shipyard是一个开源的docker管理平台,其特性主要包括: 支持节点动态集群,可扩展节点的规模(swarm.etcd方案) 支持镜像管理.容器管理.节点管理等功能 可视化的容器管理和监控管理 在线容器console终端 二. Shipyard中文版源码托管在github(传送门). 1.登陆界面 2.容器列表 3.容器信息创建 4.容器信息 5.终端连接 6.镜像信息 7.节点信息 8.仓库信息 三.shipyard中文版安装(CentOS

docker启动cavisor监控

docker启动cavisor监控 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 google/cadvisor:latest 参照:https://www.cnblogs.com/Cl

(七) Docker 部署 MySql8.0 一主一从 高可用集群

参考并感谢 官方文档 https://hub.docker.com/_/mysql y0ngb1n https://www.jianshu.com/p/0439206e1f28 vito0319 https://blog.csdn.net/warrior_0319/article/details/80805030 下载mysql镜像(不带tag标签则表示下载latest版本) docker pull mysql/mysql-server 配置my.cnf 文件 my.cnf文件参考nginx的临

GPS部标监控平台的架构设计(七)-压力测试

部标监控平台的压力测试是部标检测流程的最后一个检测环节,也是最难的,很多送检的企业平台都是卡壳在这一个环节.企业平台面临的问题如下: 1.对于压力测试的具体指标要求理解含糊,只知道是模拟一万辆车终端进行数据包传输,不知道具体的检测标准是那些指标,等进京考试后落榜了,才知道压力测试失败了,这个时候,还要通知后方的同志改进,耽误的时间和差旅费用成本惊人.很多检测人员需要在京住上几十天,算算得多少钱.因为不知道方向,所以改进也是盲目改进,不知道行不行,应付任务再次送检,也是摇骰子,祈求上天让我们通过吧

Docker EE/Docker CE简介与版本规划

近日,Docker发布了Docker 17.03.进入Docker 17时代后,Docker分成了两个版本:Docker EE和Docker CE,即:企业版(EE)和社区版(CE).那么这两个版本有什么区别呢?不仅如此,Docker进入17.03后,版本命名方式跟之前完全不同,以后Docker又会有怎样的版本迭代计划呢?本文将为您一一解答. 版本区别 Docker EE Docker EE由公司支持,可在经过认证的操作系统和云提供商中使用,并可运行来自Docker Store的.经过认证的容器