您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“docker容器監(jiān)控的實(shí)現(xiàn)方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“docker容器監(jiān)控的實(shí)現(xiàn)方法”吧!
本文寫于2015年,所有PAAS平臺(tái)相關(guān)內(nèi)容都已經(jīng)在2015Q3完成,當(dāng)時(shí)使用的docker版本為1.6.2,雖然docker新版本發(fā)布很快,但是下面提到的監(jiān)控相關(guān)的內(nèi)容大致相同。
容器CPU、內(nèi)存、IO、網(wǎng)絡(luò)、應(yīng)用存活
宿主機(jī)監(jiān)控 zabbix可以實(shí)現(xiàn),容器內(nèi)部安裝zabbix?
(數(shù)據(jù)和宿主機(jī)一致,無法反應(yīng)容器真實(shí)狀態(tài))
看別人都如何實(shí)現(xiàn)?
Searching GitHub…
seagull
可以查看、啟停容器,管理鏡像,但不支持查看容器使用CPU、內(nèi)存、IO、網(wǎng)絡(luò)等情況。Prometheus
太龐大Docker官方stats接口
要求docker在1.5以上版本,有命令行和API兩種方式,API為非中斷式,不停的顯示數(shù)據(jù)Docker-mon
命令行工具,1.5以上版本,展示效果很好,但數(shù)據(jù)無法匯總,也無法查看歷史數(shù)據(jù)Dockernana
可以對(duì)docker宿主進(jìn)行日常cpu、內(nèi)存、IO進(jìn)行監(jiān)控,但無法監(jiān)控容器的資源使用。cAdvisor
可以查看容器對(duì)CPU、內(nèi)存、磁盤的使用情況,WEB界面方式,缺點(diǎn)是每個(gè)宿主都要起個(gè)容器,而且數(shù)據(jù)無法匯總,無法查看歷史數(shù)據(jù)。
圖1:Docker-mon
圖2:cAdvisor
最終腳本如下:
a1_user=`cat /cgroup/cpuacct/docker/$i/cpuacct.stat | grep user |awk '{print $2}'`
a1_sys=`cat /cgroup/cpuacct/docker/$i/cpuacct.stat | grep sys | awk '{print $2}'`
sleep 5
a2_user=`cat /cgroup/cpuacct/docker/$i/cpuacct.stat | grep user |awk '{print $2}'`
a2_sys=`cat /cgroup/cpuacct/docker/$i/cpuacct.stat | grep sys | awk '{print $2}'`
cpuall=$((a2_user + a2_sys - a1_user - a1_sys))
CPUSTAT=`echo "scale=2;$cpuall/5/100">
#@當(dāng)前使用內(nèi)存除以最大內(nèi)存限制
[root@BJ-YF-64-7 ~]#cat /cgroup/memory/docker/$DOCKERID/memory.limit_in_bytes
1073741824
[root@BJ-YF-64-7 ~]#cat /cgroup/memory/docker/$DOCKERID/memory.usage_in_bytes
186269696
#@根據(jù)容器PID來獲取該進(jìn)程的網(wǎng)絡(luò)狀態(tài)
PID=`docker inspect -f '{{.State.Pid}}' $i`
a1_rx=`cat /proc/$PID/net/dev | grep eth2 |awk '{print $2}'`
#@根據(jù)容器PID來獲取該進(jìn)程的網(wǎng)絡(luò)狀態(tài)
cat /proc/$PID/net/tcp
使用Shell打印結(jié)果:
使用InfluxDB+ Grafana展示結(jié)果:
數(shù)據(jù)展示問題解決了,那數(shù)據(jù)報(bào)警呢? Zabbix
Zabbix一臺(tái)宿主機(jī)有N張圖,容器1CPU、容器1內(nèi)存、容器2CPU…
數(shù)據(jù)獲取很復(fù)雜,很困難
每個(gè)容器都運(yùn)行Zabbix
數(shù)據(jù)通過shell腳本打印到容器在宿主的映射目錄
歷史趨勢圖
到此,相信大家對(duì)“docker容器監(jiān)控的實(shí)現(xiàn)方法”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。