Cadvisor是Google用來監(jiān)測單節(jié)點(diǎn)的資源信息的監(jiān)控工具。它的資源消耗也比較低。但是,它有它的局限性,它只能監(jiān)控一個Docker主機(jī)。因此,如果你是多節(jié)點(diǎn)的話,那就比較麻煩了,你得在所有的主機(jī)上都安裝一個Cadvisor,肯定特別不方便。值得注意的是,如果你使用的是Kubernetes,你可以使用heapster來監(jiān)控多節(jié)點(diǎn)集群。Google的Kubernetes中也缺省地將其作為單節(jié)點(diǎn)的資源監(jiān)控工具,各個節(jié)點(diǎn)缺省會被安裝上Cadvisor。在免費(fèi)的世界里,Cadvisor作為一個很不錯的工具,越來越多的引起很多人過渡性的關(guān)注。以下我們將詳細(xì)介紹如何創(chuàng)建我們的Docker監(jiān)控方案。
cAdvisor: Google開源的用于監(jiān)控基礎(chǔ)設(shè)施應(yīng)用的工具,它是一個強(qiáng)大的監(jiān)控工具,不需要任何配置就可以通過運(yùn)行在Docker主機(jī)上的容器來監(jiān)控Docker容器,而且可以監(jiān)控Docker主機(jī)。更多詳細(xì)操作和配置選項(xiàng)可以查看Github上的cAdvisor項(xiàng)目文檔。
influxDB: 它是一個分布式時間序列數(shù)據(jù)庫。cAdvisor僅僅顯示實(shí)時信息,但是不存儲監(jiān)視數(shù)據(jù)。因此,我們需要提供時序數(shù)據(jù)庫用于存儲cAdvisor組件所提供的監(jiān)控信息,以便顯示除實(shí)時信息之外的時序數(shù)據(jù)。
Grafana: Grafana可視化展示平臺允許我們可視化地展示監(jiān)控信息。它允許我們對influxDB進(jìn)行查詢,并通過強(qiáng)大的圖表功能進(jìn)行可視化展示。
【influxdb】
1. 概念
database 數(shù)據(jù)庫
measurement 數(shù)據(jù)庫中的表
points 表里面的一行數(shù)據(jù)
Point 由時間戳(time)、數(shù)據(jù)(field)、標(biāo)簽(tags)組成。
series 所有在數(shù)據(jù)庫中的數(shù)據(jù),都需要通過圖表來展示,而這個series表示這個表里面的數(shù)據(jù),可以在圖表上畫成幾條線:通過tags排列組合算出來。具體可以通過SHOW SERIES FROM "表名" 進(jìn)行查詢。
8083: Web admin管理服務(wù)的端口, http://localhost:8083
8086: HTTP API的端口
8088: 集群端口(目前還不是很清楚, 配置在全局的bind-address,默認(rèn)不配置就是開啟的)
2. 常用命令
show databases;
create database "cadvisor";
SHOW USERS
# 創(chuàng)建用戶
CREATE USER "cadvisor" WITH PASSWORD '123456' WITH ALL PRIVILEGES
grant all on mydb to user
show grants for user
DROP USER "cadvisor"
auth
use cadvisor;
SHOW measurements
# influxdb下的表在插入數(shù)據(jù)庫的時候自動會創(chuàng)建
INSERT t_user,host=serverA,region=us_west value=0.64
SELECT * FROM t_user ORDER BY time DESC LIMIT 3
DROP MEASUREMENT "t_user"? //刪除表
一般情況下基于時間序列的point數(shù)據(jù)不會進(jìn)行直接刪除操作,一般我們平時只關(guān)心當(dāng)前數(shù)據(jù),歷史數(shù)據(jù)不需要一直保存,不然會占用太多空間。這里可以配置數(shù)據(jù)保存策略(Retention Policies),當(dāng)數(shù)據(jù)超過了指定的時間之后,就會被刪除。
SHOW RETENTION POLICIES ON "cadvisor"? ? //查看當(dāng)前數(shù)據(jù)庫的Retention Policies
CREATE RETENTION POLICY "rp_name" ON "cadvisor" DURATION 30d REPLICATION 1 DEFAULT? //創(chuàng)建新的Retention Policies
#注釋如下:
rp_name:策略名
db_name:具體的數(shù)據(jù)庫名
30d:保存30天,30天之前的數(shù)據(jù)將被刪除
它具有各種時間參數(shù),比如:h(小時),w(星期)
REPLICATION 1:副本個數(shù),這里填1就可以了
DEFAULT 設(shè)為默認(rèn)的策略
也可以通過如下命令修改和刪策略:
ALTER RETENTION POLICY "rp_name" ON "cadvisor" DURATION 3w DEFAULT
DROP RETENTION POLICY "rp_name" ON "cadvisor"
3. 安全
influxdb類似與mongodb,默認(rèn)是不開啟用戶認(rèn)證的,可以修改其 conf文件,配置http塊內(nèi)容如下:
[http]
? enable = true
? bind-address = ":8086"
? auth-enabled = true? # 開啟認(rèn)證
4. web管理
默認(rèn)情況下未開啟web管理功能??梢酝ㄟ^修改influxdb.conf文件中admin項(xiàng)的配置開啟web管理界面,具體如下:
[admin]
? # Determines whether the admin service is enabled.
? enabled = true
? # The default bind address used by the admin service.
? bind-address = ":8083"
注意 :
1. 0.13以上版本的image默認(rèn)不支持web admin,測試中設(shè)置了也沒用,所以暫時用0.12版
2. tutum版的設(shè)置不了auth
3. web admin只能創(chuàng)建用戶,查詢,不能增刪改數(shù)據(jù),需登陸容器-->influx-->auth,再進(jìn)行數(shù)據(jù)操作
【cadvisor】
1. 每個節(jié)點(diǎn)機(jī)都要啟動,需配置對應(yīng)的數(shù)據(jù)源,配置好后,在對應(yīng)的influxdb database中SHOW MEASUREMENTS可看到load_average等表
【grafana】
1. 可在.ini中配置相關(guān)參數(shù),暫時未使用grafana.ini等配置
2. 配置數(shù)據(jù)源dataSource
基本信息
Name:influxdb
Type:influxDB
Default: checked
Http settings
Url:http://mytest-influxdb:8086
Access:proxy
HTTP Auth
Basic Auth: checked
InfluxDB Details
Database:cadvisor
User:cadvisor
Password:123456
配置好后點(diǎn)擊 Save&Test