温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Prometheus怎么监控Docker Swarm集群

发布时间:2021-12-13 15:39:04 来源:亿速云 阅读:268 作者:iii 栏目:云计算

本篇内容介绍了“Prometheus怎么监控Docker Swarm集群”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

cAdvisor简介

为了解决容器的监控问题,Google开发了一款容器监控工具cAdvisor(Container Advisor),它为容器用户提供了对其运行容器的资源使用和性能特征的直观展示。它是一个运行守护程序,用于收集,聚合,处理和导出有关正在运行的容器的信息。

cAdvisor可以对节点机器上的资源及容器进行实时监控和性能数据采集,包括CPU、内存、网络及文件系统使用情况。

cAdvisor使用go语言开发,如果想了解更多请访问其官方github

 

安装cAdvisor

cAdvisor 有两种方法来运行,一种是以二进制可执行文件安装运行,配置 systemd 来管理,另一种是以 Docker 容器运行,使用docker-compose来管理,在这里我们只讲docker方式部署与管理方法。

我们可以通过以下命令来在实验环境的虚拟机运行cAdvisor容器:

Docker方式启动

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=18080:18080 \
  --detach=true \
  --name=cadvisor \
  google/cadvisor:latest
 

以上的启动方式对于管理来说稍显繁琐,为了方便管理,我们使用docker-compose来管理

安装docker-compose

curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
mkdir -p /data/docker-monitor/
 

docker-compose文件

cat > docker-compose.yml <<EOF 
version: '3.2'
volumes:
    prometheus_data: {}
    grafana_data: {}
services:
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    ports:
    - 9090:9090
    command:
    - --config.file=/etc/prometheus/prometheus.yml
    volumes:
    - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
    depends_on:
    - cadvisor
  cadvisor:
    image: google/cadvisor:latest
    container_name: cadvisor
    ports:
    - 8080:8080
    volumes:
    - /:/rootfs:ro
    - /var/run:/var/run:rw
    - /sys:/sys:ro
    - /var/lib/docker/:/var/lib/docker:ro
    depends_on:
    - redis
  redis:
    image: redis:latest
    container_name: redis
    ports:
    - 6379:6379
EOF
# Prometheus.yml文件
cat > prometheus.yml <<EOF
global:
  scrape_interval:     15s # 每15秒抓取一次数据,默认值为1分钟
  evaluation_interval: 15s # 每15秒检测一次可用性,默认值为1分钟
  scrape_timeout: 60s # 抓取的超时时间

# Alertmanager
alerting:
  alertmanagers:
    - static_configs:
      #- targets: ['127.0.0.1:9093']
# 抓取配置配置
scrape_configs:
  - job_name: 'cadvisor'
    scrape_interval: 10s
    static_configs:
    - targets: ['localhost:8080']
      labels:
        instance: 'cadvisor-server'
        alias: 'cadvisor'
EOF
# 启动
docker-compose up -d
 

docker会自动去pull images,需要等一会,等待启动完成后,我们直接可以访问 http://192.168.1.220:8080

以上是我们为了大家能了解docker是如何监控实现的方法的,现在我们进入docker监控具体环节,GitHub上已经有了已经配置好的开源,直接拿来用即可。

git clone https://github.com/stefanprodan/dockprom.git
ADMIN_USER=admin ADMIN_PASSWORD=admin docker-compose up -d
 

先决条件:

  • Docker Engine >= 1.13
  • Docker Compose >= 1.11

Containers:

  • Prometheus (metrics database) http://:9090
  • Prometheus-Pushgateway (push acceptor for ephemeral and batch jobs) http://:9091
  • AlertManager (alerts management) http://:9093
  • Grafana (visualize metrics) http://:3000
  • NodeExporter (host metrics collector)
  • cAdvisor (containers metrics collector)
  • Caddy (reverse proxy and basic auth provider for prometheus and alertmanager)

启动完成以后,我们直接访问http://192.168.1.220:3000端口,使用初始化的账号密码,admin:admin进入,此时会提示你修改密码,修改成你需要的密码即可。

  redis:
    image: redis:latest
    container_name: redis
    restart: unless-stopped
    expose:
      - 6379
    networks:
      - monitor-net
    labels:
      org.label-schema.group: "monitoring"
# 重启
docker-compose up -d

这时访问CAdvisor,会发现container中已经有了redis这个容器了。

“Prometheus怎么监控Docker Swarm集群”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI