- InfluxDB
InfluxDB是一個分佈式時間序列數據庫。cAdvisor僅僅顯示實時信息,但是不存儲監視數據。因此,需要提供實時數據庫用於存儲cAdvisor組件所提供的監控信息,以便顯示除實時信息之外的時序數據。
1.InfluxDB的安裝
下載鏡像
docker pull tutum/influxdb
創建容器
docker run -di \
-p 8083:8083 \
-p 8086:8086 \
--expose 8099 \
--expose 8099 \
--name influxsrv \
tutum/influxdb
上面,8083端口是web訪問端口,8086是數據寫入端口。
安裝好,瀏覽器訪問192.xxx.xx.xxx:8083
2.使用influxDB
通過query templates下拉選項可以快速使用命令語句。
創建數據庫
CREATE DATABASE "cadvisor"
查看所有數據庫
SHOW DATABASES
創建用戶
CREATE USER "zhangsan" WITH PASSWORD 'password' WITH ALL PRIVILEGES
查看用戶
SHOW USERS
用戶授權
grant all privileges on cadvisor to zhangsan
grant write on cadvisor to zhangsan
grant READ on cadvisor to zhangsan
查看採集的數據
切換到cadvisor數據庫,使用命令採集數據
SHOW MEASUREMENTS
- cAdvisor軟件
cAdvisor是google開源的用於監控基礎設施應用的工具,功能強大,不需要任何配置就可以通過運行在docker主機上的容器來監控docker容器,也可以監控docker主機。
下載鏡像
docker pull google/cadvisor
創建容器
docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
google/cadvisor \
-storage_driver=influxdb \
-storage_driver_db=cadvisor \
-storage_driver_host=influxsrv:8086
或者
docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --publish=8080:8080 --detach=true --link influxsrv:influxsrv --name=cadvisor google/cadvisor -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086
cadvisor容器啓動閃退的解決方法:
mount -o remount,rw '/sys/fs/cgroup'
ln -s /sys/fs/cgroup/cpu,cpuacct /sys/fs/cgroup/cpuacct,cpu
瀏覽器訪問192.xxx.xx.xxx:8080/containers/
在此查看influxDB,可以看到cAdvisor採集的數據。
- Grafana
Grafana是一個可視化面板,擁有圖表和佈局展示,功能齊全的度量儀表盤和圖形編輯器。支持Graphite、zabbix、influxDB\Prometheus和OpenTSDB作爲數據源。
下載鏡像
docker pull grafana/grafana
創建容器
docker run -d -p 3001:3000 -e INFLUXDB_HOST=influxsrv -e INFLUXDB_PORT=8086 -e INFLUXDB_NAME=cadvisor -e INFLUXDB_USER=root -e INFLUXDB_PASS=root --link influxsrv:influxsrv --name grafana grafana/grafana
訪問http://192.xxx.xx.xxx:3001用戶名和密碼都是admin
添加數據源
點擊設置,data source,添加數據源,設置name爲influxdb,type選擇InfluxDB,url改爲192.xxx.xx.xx:8086,
數據庫設置爲cadvisor,設置用戶名和密碼。
添加儀表盤
選擇dashboards,點擊manager,點擊添加按鈕,點擊graph圖標。
新增圖表後,點擊panel title右邊的下拉選擇edit。General,修改名稱;metrics,選擇data source爲influxdb,選擇表,比如memory_usage,where條件選擇容器;Axes,修改x軸y軸。設置完畢,點擊保存,設置名稱。
預警通知設置
選擇菜單,alerting,選擇notification channels;點擊add channel按鈕;設置名稱,選擇類型爲webhook,url使用rancher中容器接收器的hook的地址;http方式爲POST。
在圖表中使用預警,進入圖表面板,選擇edit,點擊預警圖表,添加預警。設置IS ABOVE值,send to選擇需要出發的預警。點擊保存。