亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

簡介

容器監(jiān)控三劍客:cAdvisor監(jiān)控收集 + InfluxDB存儲數(shù)據(jù) + Grafana展示圖表

我們在主機上部署了很多個容器,要想監(jiān)控它們該怎么辦,通常我們使用原生命令 Docker ps 或 docker stats 就可以查看到容器的狀態(tài)。

如下:

[root@localhost ~]# docker ps
CONTAINER ID   IMAGE                           COMMAND             CREATED          STATUS          PORTS                                                                                            NAMES
2a10d91cae48   portainer/portainer-ce:2.11.1   "/portainer"        17 minutes ago   Up 17 minutes   0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9443->9443/tcp, :::9443->9443/tcp, 9000/tcp   portainer
554e72db6ef0   billygoo/Tomcat8-jdk8           "catalina.sh run"   29 hours ago     Up 59 seconds   0.0.0.0:8082->8080/tcp, :::8082->8080/tcp                                                        tomcat82
9e7e05d78b86   billygoo/tomcat8-jdk8           "catalina.sh run"   29 hours ago     Up 57 seconds   0.0.0.0:8081->8080/tcp, :::8081->8080/tcp                                                        tomcat81
[root@localhost ~]# docker stats
CONTAINER ID   NAME        CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O     PIDS
2a10d91cae48   portainer   0.00%     17.2MiB / 1.777GiB    0.95%     2.52MB / 6.98MB   0B / 2.02MB   5
554e72db6ef0   tomcat82    0.17%     92.44MiB / 1.777GiB   5.08%     1.1kB / 0B        165MB / 0B    42
9e7e05d78b86   tomcat81    0.15%     88.45MiB / 1.777GiB   4.86%     836B / 0B         11.6MB / 0B   42

通過docker stats命令可以很方便的看到當前宿主機上所有容器的CPU,內(nèi)存以及網(wǎng)絡流量等數(shù)據(jù),一般小公司夠用了。。。。但是,docker stats統(tǒng)計結(jié)果只能是當前宿主機的全部容器,數(shù)據(jù)資料是實時的,沒有地方存儲、沒有健康指標過線預警等功能。

如何解決,那就要用到接下來所要講的方案:cAdvisor+InfluxDB+Grafana

是什么

容器監(jiān)控三劍客:cAdvisor監(jiān)控收集 + InfluxDB存儲數(shù)據(jù) + Grafana展示圖表

Docker容器監(jiān)控:cAdvisor+InfluxDB+Grafana

 

cAdvisor

cAdvisor 是一個容器資源監(jiān)控工具,包括容器的內(nèi)存、CPU、網(wǎng)絡IO、磁盤IO等監(jiān)控,同時提供了一個Web頁面用于查看容器的實時運行狀態(tài)。

cAdivisor 默認存儲2分鐘的數(shù)據(jù),而且只是針對單物理機。不過,cAdivisor提供了很多數(shù)據(jù)集成接口,支持InfluxDB、redis、Kafka、Elasticsearch等集成,可以加上對應配置將監(jiān)控數(shù)據(jù)發(fā)往這些數(shù)據(jù)庫存儲起來。

cAdvisor 功能主要有兩點:

  • 展示Host和容器兩個層次的監(jiān)控數(shù)據(jù)。
  • 展示歷史變化數(shù)據(jù)。

InfluxDB

InfluxDB 使用Go語言編寫的一個開源分布式時許、時間和指標數(shù)據(jù)庫,無需外部依賴。

cAdvisor 默認旨在本機保存最近2分鐘的數(shù)據(jù),為了持久化存儲數(shù)據(jù)和統(tǒng)一收集展示監(jiān)控數(shù)據(jù),需要將數(shù)據(jù)存儲到InfluxDB中。InfluxDB是一個時許數(shù)據(jù)庫,專門用于存儲時許相關數(shù)據(jù),很適合存儲CADvisor的數(shù)據(jù),而且,CAdvisor本身已經(jīng)提供了InfluxDB的集成方法,啟動容器時指定配置即可。

InfluxDB主要功能:

  • 基于時間序列,支持與時間有關的相關函數(shù)(如最大、最小、求和等);
  • 可度量性:你可以實時對大量數(shù)據(jù)進行計算;
  • 基于事件:它支持任意的事件數(shù)據(jù)。

Grafana

Grafana 是一個開源的數(shù)據(jù)監(jiān)控分析可視化平臺,支持多種數(shù)據(jù)源配置(支持的數(shù)據(jù)源包括InfluxDB、MySQL、Elasticsearch、OpenTSDB、Graphite等)和豐富的插件及模塊功能,支持圖表權(quán)限控制和報警。

Grafana主要特性:

  • 靈活豐富的圖形化選項;
  • 可以混合多種風格;
  • 支持白天和夜間模式;
  • 多個數(shù)據(jù)源。

環(huán)境搭建

方式一:分別安裝

通常在進行監(jiān)控的時候是需要一臺單獨機器作為監(jiān)控主機的,這里我們創(chuàng)建一臺新的監(jiān)控主機(192.168.92.148),在監(jiān)控主機上部署InfluxDB+Grafana,然后在被監(jiān)控主機(192.168.92.149)上部署cAdvisor

部署InfluxDB(監(jiān)控主機)

這里預先定義了創(chuàng)建一個初始數(shù)據(jù)庫:

INFLUXDB_DB=cadvisor # 初始數(shù)據(jù)庫名稱
INFLUXDB_USER=root # 初始數(shù)據(jù)庫用戶名
INFLUXDB_USER_PASSword=root123456 # 初始數(shù)據(jù)庫密碼

docker run -d -p 8086:8086 --restart=always --name influxdb 
-e INFLUXDB_DB=cadvisor 
-e INFLUXDB_USER=root 
-e INFLUXDB_USER_PASSWORD=root123456 
-v influxdb_data:/var/lib/influxdb 
influxdb:1.8

部署Grafana(監(jiān)控主機)

docker run -d -p 3000:3000 --restart=always --name grafana 
-v grafana_data:/var/lib/grafana 
grafana/grafana

部署cAdvisor(被監(jiān)控主機)

這里注意填入在部署influxdb時設置的數(shù)據(jù)庫、用戶名、密碼

-storage_driver_db=cadvisor # influxdb的數(shù)據(jù)庫名稱
-storage_driver_host=192.168.92.148:8086 # influxdb的主機地址
-storage_driver_user=root # influxdb的用戶名
-storage_driver_password=root123456 # influxdb的密碼

docker run -d -p 8080:8080 --restart=always --name cadvisor 
-v /:/rootfs:ro 
-v /var/run:/var/run:rw 
-v /sys:/sys:ro 
-v /var/lib/docker/:/var/lib/docker:ro 
google/cadvisor 
-storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=192.168.92.148:8086 -storage_driver_user=root -storage_driver_password=root123456

方式二:Compose容器編排一套帶走

如果你想將cAdvisor+InfluxDB+Grafana以及其他的容器都安裝到同一臺主機上,那使用這個compose一套帶走方案就可以了。

新建目錄

mkdir -p /data/cig

新建3件套組合的 docker-compose.yml 文件

cd /data/cig/

vim docker-compose.yml

文件內(nèi)容如下:

version: '3.1'

services:    
  influxdb:
    image: influxdb:1.8
    restart: always
    environment:
      - INFLUXDB_DB=cadvisor
      - INFLUXDB_USER=root
      - INFLUXDB_USER_PASSWORD=root123456
    ports:
      - "8086:8086"
    volumes:
      - influxdb_data:/var/lib/influxdb
  
  cadvisor:
    image: google/cadvisor
    depends_on:
      - influxdb
    command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086 -storage_driver_user=root -storage_driver_password=root123456
    restart: always
    ports:
      - "8080:8080"
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:rw
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
      
  grafana:
    user: "104"
    image: grafana/grafana
    restart: always

    depends_on:
      - influxdb
    ports:
      - "3000:3000"
    volumes:
      - grafana_data:/var/lib/grafana

volumes:
  influxdb_data: {}
  grafana_data: {}

檢查語法:

沒有輸出則正常。

docker-compose config -q

啟動:

docker-compose up -d

查看是否都啟動:

[root@localhost cig]# docker ps
CONTAINER ID   IMAGE                           COMMAND                  CREATED         STATUS         PORTS                                                                                            NAMES
06dffc78e480   grafana/grafana                 "/run.sh"                3 seconds ago   Up 2 seconds   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp                                                        cig_grafana_1
bdee27fbd3c8   google/cadvisor                 "/usr/bin/cadvisor -…"   3 seconds ago   Up 2 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp                                                        cig_cadvisor_1
a328796c8d2a   tutum/influxdb:0.9              "/run.sh"                4 seconds ago   Up 3 seconds   0.0.0.0:8083->8083/tcp, :::8083->8083/tcp, 0.0.0.0:8086->8086/tcp, :::8086->8086/tcp             cig_influxdb_1

訪問測試

1. 瀏覽CAdvisor收集服務:http://被監(jiān)控主機的IP:8080/

2. 瀏覽Grafana展現(xiàn)服務:http://部署Grafana的主機IP:3000/

配置Grafana

添加數(shù)據(jù)源:

如果是使用 docker-compose 部署的,這里URL直接寫 http://influxdb:8086 即可;

如果是單獨安裝的,這里URL要寫 http://influxdb的主機IP:8086

Docker容器監(jiān)控:cAdvisor+InfluxDB+Grafana

 

滾動到下面,填寫部署influxdb時初始化的數(shù)據(jù)庫cadvisor、用戶名root、密碼root123456,點擊Save &Test.

Docker容器監(jiān)控:cAdvisor+InfluxDB+Grafana

 

添加 dashboard:

Docker容器監(jiān)控:cAdvisor+InfluxDB+Grafana

 


Docker容器監(jiān)控:cAdvisor+InfluxDB+Grafana

 

點擊右上角 Save 保存。

還可以點擊右上角添加新的圖表,監(jiān)控其他項目,如:CPU、網(wǎng)絡、磁盤等,需要具體去看看查詢語法獲取正確的值制作圖表。

Docker容器監(jiān)控:cAdvisor+InfluxDB+Grafana

 

分享到:
標簽:Docker
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定