《Mysql學習解密監控寶Docker監控實現原理》要點:
本文介紹了Mysql學習解密監控寶Docker監控實現原理,希望對您有用。如果有疑問,可以聯系我們。
MYSQL實例分享人高馳濤(Neeke),云智慧高級架構師,PHP 開發組成員,同時也是 PECL/SeasLog 的作者.8?年研發管理經驗,早期從事大規模企業信息化研發架構,09?年涉足互聯網數字營銷領域并深入研究架構與性能優化.2014?年加入云智慧,致力于 APM 產品的架構與研發.崇尚敏捷,高效,GettingReal.
MYSQL實例2015年9月,企業級應用性能監控和管理服務商云智慧正式上線了Docker監控功能,能夠實時監控Docker容器的CPU、內存、網絡流量及Swap狀態,讓開發者和運維人員在使用Docker時清晰掌握其資源消耗狀況.
MYSQL實例
MYSQL實例作為國內首家實現Docker監控的SaaS廠商,監控寶Docker監控的技術原理是什么?相對國外的Docker監控產品有何優勢?以下是此次分享的實錄,請聽Neeke細說端詳:
MYSQL實例在云時代,仍有大量物理機直接支持服務,相較于虛擬技術來講,這種方式已經落伍很多,于是各種開源容器技術大大推進了虛擬化技術的發展.
MYSQL實例Docker容器相較于其他容器技術來講,是比較新的,而且發展最為迅速.原因不用多說,背后有老大哥谷歌撐腰.國內也已經興起了幾個以Docker為核心技術的創業公司,比如云智慧的合作伙伴數人、DaoCloud,都是前景非常贊的公司.
MYSQL實例雖然這么火熱,但關于Docker的運維一直是個痛點.
MYSQL實例可以說,目前全球只有兩家APM廠商提供了基于SaaS的Docker運維監控,其一是美國APM廠商New Relic,他們在6月下旬正式發布了Docker監控;另一家,則是中國APM廠商云智慧CloudWise,在繼New Relic之后的9月7日,發布上線了Docker監控.從某種意義上講,CloudWise填補了國內Docker監控的SaaS服務空白.
MYSQL實例大家都知道,CloudWise在APM領域率先提出了端到端的一體化監控模型,并且在此模型上,發布了技術領先、便于部署和管理的SmartAgent軟件架構.此次Docker監控的實現,也是基于SmartAgent的架構來完成的.
MYSQL實例SmartAgent以部署的快捷高效和智能化見長,整個部署過程中,用戶在兩分鐘內便可完成.部署分為兩部,首先下載、解壓、啟動數據發送代理SendProxy.SendProxy的作用是提供一個高效的本地數據接收隊列與數據發送引擎,并且可以在局域網內進行分布式部署,使得不能上網的機器監控也可正常地通過SendProxy高效地傳輸到云智慧的SaaS平臺.其次,下載、解壓、啟動DockerAgent.
MYSQL實例DockerAgent使用Python進行開發并完成編譯,目前支持Ubuntu和CentOS.DockerAgent遵循了SmartAgent的插件規范,所以,無論監控寶或透視寶用戶,都可以直接使用.
MYSQL實例DockerAgent有三個線程,分別是:DockerProcess \ DockerConfig \ DockerPing,以及一個對象Task.三個線程各司其職,同時受Task對象控制.Task中核心屬性是任務惟一標識、任務狀態以及任務頻率.這些屬性由DockerConfig與ClouwWise云平臺定時同步.
MYSQL實例當任務狀態正常時,DockerProcess線程開始采集數據,并遵守頻率規范.DockerPing負責心跳檢測,定時產生心跳數據.這些數據,都由DockerAgent交由SendProxy,并由SendProxy存儲進入隊列,并異步地推送至CloudWise云平臺.
MYSQL實例前面聊到DockerAgent插件遵守了SmartAgent的插件規范,所以它像其他插件一樣,包含了 bin 、conf、lib、log等目錄,并存在一個啟動腳本.該腳本提供了start?、stop、status等命令.
MYSQL實例以上是DockerAgent的介紹,后續SmartAgent的架構與插件規范將會陸續開源發布,屆時熱衷開源與監控的同學,都可以直接參與進來.
MYSQL實例下面我們聊一下DockerAgent采集數據的原理.DockerAgent首先會使用docker info命令來獲取docker系統信息,這些信息包含了非常有用的數據,如: Containers, Images, Name, CPUs, Data Space Used, Data Space Total, Total Memory.
MYSQL實例這些數據看似簡單基礎,但卻可以解脫掉Docker運維同學每天重復N次的工作.其次會使用docker version來檢測docker版本,目前我們的DockerAgent僅支持1.15以上的Docker版本.
MYSQL實例
MYSQL實例然后,使用dockerps命令來取得容器的運行信息和容器id,容器name,此時便可獲知在此臺機器上正在運行的docker容器都有哪些.
MYSQL實例最后,依次取得這些docker容器的性能指標.取得性能指標的方式,有部分使用docker原生接口,有部分是運行云智慧自己的算法.其中包含容器與主機的系統時區/時間;容器的cpu使用率(通過cgroup/cpuacct內該容器的cpuacct.stat取得);容器的ip;容器內運行的進程數;容器的內存指標,rss\cache\memory_limit\total_cwop等(通過cgroup/memory內該容器的memory.stat取得);容器的網絡指標(通過ifconfig/ statistics取得).
MYSQL實例DockerAgent發布上線以后,在當天就接到了非常多熱心用戶的反饋.很多反饋非常好,我們也在積極地吸收和改進.為大家解決真正頭疼的Docker運維、監控、管理問題.相信在很短的時間內,將迭代出更優秀、更穩定、更符合用戶預期的DockerAgent,以此不僅填補國內的Docker監控空白,更會真正成為眾多Docker用戶、企業的伙伴,為大家解決真正頭疼的Docker運維、監控問題.
MYSQL實例答:DataDog的安裝部署太過繁瑣.當時嘗試時用了一下午才跑出來數據.DataDog的圖表定義比較自由,這點是比較好的;而我們的Docker監控最大的優勢,就是零基礎部署.另外,DataDog太貴,好像一個Agent要接近100人民幣吧.目前CloudWise的DockerAgent完全免費.
MYSQL實例答:不是同步采集到的數據,是同步配置.
MYSQL實例答:DockerConfig是定時從云平臺取得配置信息,采集到的數據,是由DockerProcess與DockerPing自行交由SendProxy.同步的數據其實就是Task的屬性,比如任務名、任務頻率、任務狀態.
MYSQL實例答:dockerinfo是返回當前機器上整體的docker指標,然后ps取得活著的docker容器,依次取它們各自的指標.
MYSQL實例答:ps取不到指標,取得的是活的容器并列舉;然后用其他的方法取它們的指標.容器名字也是ps時列舉時一起取得的.
MYSQL實例以上是Neeke就監控寶Docker監控的實現原理進行的分享,大家可以注冊監控寶(www.jiankongbao.com )進行免費試用,有任何問題或需求請與我們聯系.
MYSQL實例文章已獲得云智慧授權發布.
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/3840.html