Cadvisor是Google用來監(jiān)測單節(jié)點的資源信息的監(jiān)控工具。它的資源消耗也比較低儡率。但是挂据,它有它的局限性,它只能監(jiān)控一個Docker主機喉悴。因此棱貌,如果你是多節(jié)點的話玖媚,那就比較麻煩了箕肃,你得在所有的主機上都安裝一個Cadvisor,肯定特別不方便今魔。值得注意的是勺像,如果你使用的是Kubernetes,你可以使用heapster來監(jiān)控多節(jié)點集群错森。Google的Kubernetes中也缺省地將其作為單節(jié)點的資源監(jiān)控工具吟宦,各個節(jié)點缺省會被安裝上Cadvisor。在免費的世界里涩维,Cadvisor作為一個很不錯的工具殃姓,越來越多的引起很多人過渡性的關(guān)注。以下我們將詳細介紹如何創(chuàng)建我們的Docker監(jiān)控方案瓦阐。
cAdvisor: Google開源的用于監(jiān)控基礎(chǔ)設(shè)施應(yīng)用的工具蜗侈,它是一個強大的監(jiān)控工具,不需要任何配置就可以通過運行在Docker主機上的容器來監(jiān)控Docker容器睡蟋,而且可以監(jiān)控Docker主機踏幻。更多詳細操作和配置選項可以查看Github上的cAdvisor項目文檔。
influxDB: 它是一個分布式時間序列數(shù)據(jù)庫戳杀。cAdvisor僅僅顯示實時信息该面,但是不存儲監(jiān)視數(shù)據(jù)。因此信卡,我們需要提供時序數(shù)據(jù)庫用于存儲cAdvisor組件所提供的監(jiān)控信息隔缀,以便顯示除實時信息之外的時序數(shù)據(jù)。
Grafana: Grafana可視化展示平臺允許我們可視化地展示監(jiān)控信息傍菇。它允許我們對influxDB進行查詢蚕泽,并通過強大的圖表功能進行可視化展示。
【influxdb】
1. 概念
database 數(shù)據(jù)庫
measurement 數(shù)據(jù)庫中的表
points 表里面的一行數(shù)據(jù)
Point 由時間戳(time)、數(shù)據(jù)(field)须妻、標簽(tags)組成仔蝌。
series 所有在數(shù)據(jù)庫中的數(shù)據(jù),都需要通過圖表來展示荒吏,而這個series表示這個表里面的數(shù)據(jù)敛惊,可以在圖表上畫成幾條線:通過tags排列組合算出來。具體可以通過SHOW SERIES FROM "表名" 進行查詢绰更。
8083: Web admin管理服務(wù)的端口, http://localhost:8083
8086: HTTP API的端口
8088: 集群端口(目前還不是很清楚, 配置在全局的bind-address瞧挤,默認不配置就是開啟的)
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ù)不會進行直接刪除操作,一般我們平時只關(guān)心當前數(shù)據(jù)儡湾,歷史數(shù)據(jù)不需要一直保存特恬,不然會占用太多空間。這里可以配置數(shù)據(jù)保存策略(Retention Policies)徐钠,當數(shù)據(jù)超過了指定的時間之后癌刽,就會被刪除。
SHOW RETENTION POLICIES ON "cadvisor"? ? //查看當前數(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è)為默認的策略
也可以通過如下命令修改和刪策略:
ALTER RETENTION POLICY "rp_name" ON "cadvisor" DURATION 3w DEFAULT
DROP RETENTION POLICY "rp_name" ON "cadvisor"
3. 安全
influxdb類似與mongodb远荠,默認是不開啟用戶認證的,可以修改其 conf文件失息,配置http塊內(nèi)容如下:
[http]
? enable = true
? bind-address = ":8086"
? auth-enabled = true? # 開啟認證
4. web管理
默認情況下未開啟web管理功能譬淳。可以通過修改influxdb.conf文件中admin項的配置開啟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默認不支持web admin邻梆,測試中設(shè)置了也沒用,所以暫時用0.12版
2. tutum版的設(shè)置不了auth
3. web admin只能創(chuàng)建用戶蛤迎,查詢确虱,不能增刪改數(shù)據(jù),需登陸容器-->influx-->auth替裆,再進行數(shù)據(jù)操作
【cadvisor】
1. 每個節(jié)點機都要啟動校辩,需配置對應(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
配置好后點擊 Save&Test