溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Prometheus怎么監(jiān)控Docker Swarm集群

發(fā)布時間:2021-12-13 15:39:04 來源:億速云 閱讀:266 作者:iii 欄目:云計算

本篇內(nèi)容介紹了“Prometheus怎么監(jiān)控Docker Swarm集群”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

cAdvisor簡介

為了解決容器的監(jiān)控問題,Google開發(fā)了一款容器監(jiān)控工具cAdvisor(Container Advisor),它為容器用戶提供了對其運行容器的資源使用和性能特征的直觀展示。它是一個運行守護程序,用于收集,聚合,處理和導出有關正在運行的容器的信息。

cAdvisor可以對節(jié)點機器上的資源及容器進行實時監(jiān)控和性能數(shù)據(jù)采集,包括CPU、內(nèi)存、網(wǎng)絡及文件系統(tǒng)使用情況。

cAdvisor使用go語言開發(fā),如果想了解更多請訪問其官方github

 

安裝cAdvisor

cAdvisor 有兩種方法來運行,一種是以二進制可執(zhí)行文件安裝運行,配置 systemd 來管理,另一種是以 Docker 容器運行,使用docker-compose來管理,在這里我們只講docker方式部署與管理方法。

我們可以通過以下命令來在實驗環(huán)境的虛擬機運行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秒抓取一次數(shù)據(jù),默認值為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

以上是我們?yōu)榱舜蠹夷芰私鈊ocker是如何監(jiān)控實現(xiàn)的方法的,現(xiàn)在我們進入docker監(jiān)控具體環(huán)節(jié),GitHub上已經(jīng)有了已經(jīng)配置好的開源,直接拿來用即可。

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,會發(fā)現(xiàn)container中已經(jīng)有了redis這個容器了。

“Prometheus怎么監(jiān)控Docker Swarm集群”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI