记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。

Docker and system monitoring

docker安装prometheus,grafana,cadvisor并监控容器与主机信息

系统指标

此仪表板(ID是893)显示 Docker 和系统指标,目的是将所有指标放在一个仪表板上。第一行表示带有仪表和文本/图形的系统度量(易于可视化和极简主义)。

  • 时间
  • 内存使用/交换
  • 磁盘使用情况
  • 负荷
  • 网络
  • 中央处理器使用率
  • 磁盘 I/O

针对磁盘使用情况、内存使用情况和负载使用情况设置警报,以便在指标受到批评时发出警告。

Docker 指标

仪表板的第二部分是 Docker 指标,更详细地使用图形。

  • 每个容器的 CPU 使用率
  • 每个容器的已发送网络
  • 每个容器的接收网络
  • 每个容器的内存使用率/交换量
  • 每个容器的剩余内存(如果men_limit docker-compose.yml 中定义)

服务器配置

我使用 docker-compose 来设置我的监视:https://github.com/vegasbrianc/prometheus。我的仪表板使用此配置。服务运行:

  • docker
  • prometheus
  • node-exporter
  • alertmanager
  • cadvisor
  • grafana v4

使用 docker-compose.yml 安装

 

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
      - GF_SMTP_USER=myadrress@gmail.com
      - GF_SMTP_PASSWORD=mypassword
      - GF_SMTP_FROM_ADDRESS=myaddress@gmail.com

 

配置文件相关信息: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']

 

 

启动相关容器

Run docker-compose up -d


面板演示图片:







转载请标明出处【docker安装prometheus,grafana,cadvisor并监控容器与主机信息】。

《www.92cto.com》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论