Docker監控

Cadvisor是Google用來監測單節點的資源信息的監控工具。它的資源消耗也比較低。但是,它有它的侷限性,它只能監控一個Docker主機。因此,如果你是多節點的話,那就比較麻煩了,你得在所有的主機上都安裝一個Cadvisor,肯定特別不方便。值得注意的是,如果你使用的是Kubernetes,你可以使用heapster來監控多節點集羣。Google的Kubernetes中也缺省地將其作爲單節點的資源監控工具,各個節點缺省會被安裝上Cadvisor。在免費的世界裏,Cadvisor作爲一個很不錯的工具,越來越多的引起很多人過渡性的關注。以下我們將詳細介紹如何創建我們的Docker監控方案。

cAdvisor: Google開源的用於監控基礎設施應用的工具,它是一個強大的監控工具,不需要任何配置就可以通過運行在Docker主機上的容器來監控Docker容器,而且可以監控Docker主機。更多詳細操作和配置選項可以查看Github上的cAdvisor項目文檔。

influxDB: 它是一個分佈式時間序列數據庫。cAdvisor僅僅顯示實時信息,但是不存儲監視數據。因此,我們需要提供時序數據庫用於存儲cAdvisor組件所提供的監控信息,以便顯示除實時信息之外的時序數據。

Grafana: Grafana可視化展示平臺允許我們可視化地展示監控信息。它允許我們對influxDB進行查詢,並通過強大的圖表功能進行可視化展示。

【influxdb】

1. 概念

database 數據庫

measurement 數據庫中的表

points 表裏面的一行數據

Point 由時間戳(time)、數據(field)、標籤(tags)組成。

series 所有在數據庫中的數據,都需要通過圖表來展示,而這個series表示這個表裏面的數據,可以在圖表上畫成幾條線:通過tags排列組合算出來。具體可以通過SHOW SERIES FROM "表名" 進行查詢。

8083: Web admin管理服務的端口, http://localhost:8083

8086: HTTP API的端口

8088: 集羣端口(目前還不是很清楚, 配置在全局的bind-address,默認不配置就是開啓的)

2. 常用命令

show databases;

create database "cadvisor";

SHOW USERS

# 創建用戶

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下的表在插入數據庫的時候自動會創建

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數據不會進行直接刪除操作,一般我們平時只關心當前數據,歷史數據不需要一直保存,不然會佔用太多空間。這裏可以配置數據保存策略(Retention Policies),當數據超過了指定的時間之後,就會被刪除。

SHOW RETENTION POLICIES ON "cadvisor"    //查看當前數據庫的Retention Policies

CREATE RETENTION POLICY "rp_name" ON "cadvisor" DURATION 30d REPLICATION 1 DEFAULT  //創建新的Retention Policies

#註釋如下:

rp_name:策略名

db_name:具體的數據庫名

30d:保存30天,30天之前的數據將被刪除

它具有各種時間參數,比如:h(小時),w(星期)

REPLICATION 1:副本個數,這裏填1就可以了

DEFAULT 設爲默認的策略

也可以通過如下命令修改和刪策略:

ALTER RETENTION POLICY "rp_name" ON "cadvisor" DURATION 3w DEFAULT

DROP RETENTION POLICY "rp_name" ON "cadvisor"

3. 安全

influxdb類似與mongodb,默認是不開啓用戶認證的,可以修改其 conf文件,配置http塊內容如下:

[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,測試中設置了也沒用,所以暫時用0.12版

2. tutum版的設置不了auth

3. web admin只能創建用戶,查詢,不能增刪改數據,需登陸容器-->influx-->auth,再進行數據操作

【cadvisor】

1. 每個節點機都要啓動,需配置對應的數據源,配置好後,在對應的influxdb database中SHOW MEASUREMENTS可看到load_average等表

【grafana】

1. 可在.ini中配置相關參數,暫時未使用grafana.ini等配置

2. 配置數據源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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章