本文介紹了通過優云Monitor,如何實現大規模容器運維平臺的自動化監控需求。
盡管Docker技術目前還處于不穩定的發展與標準制定階段,但這門技術已經呈現了極其火熱的增長狀態,卻已經是不爭的實事。到底有多火熱?讓我們先來看一張來自國外監控公司DataDog 2016年最新調查報告:
從圖中可以看出,自2015年5月后,采用容器技術的應用呈現了30%的大幅增長,放棄容器技術的的應用,則已經出現了平衡狀態。
此消彼長,隨著容器技術的推廣,本文的主人公老葛,某互聯網金融資深運維工程師,也開始受其波及。最近,老葛的公司開始也使用Docker來交付線上的應用了,一上來的第一個應用,就產生了50+的應用容器。老葛帶領著運維與研發團隊經過一趟艱難邁坑之旅,終于讓線上的應用跑起來了。但成功的喜悅轉瞬即逝,馬上老葛的臉上又出現了囧字,如何優雅地監控容器平臺,成了運維團隊的大問號?
讓我們跟隨老葛的視角,來逐個審視團隊面臨的挑戰,首先第一個問題是:
問題1:如何對容器的可用性與資源消耗進行監控?
經過一番選擇后,老葛采用優云Monitor來作線上的容器監控,通過在Docker宿主機上部署Agent,實現了所有容器的動態監控,如下圖所示:
監控代理通過獲取Docker Daemon API(其本質在Docker的容器管理API與cgroup資源統計),其監控到的指標包含:運行容器數(個),停止容器數(個),容器CPU使用率(%),容器RAM使用率(%),容器磁盤讀速率(B/S),容器磁盤寫速率(B/S),容器文件系統大小(B)、容器文件變更大?。˙)、容器網絡發送速率(B/S),容器網絡接收速率(B/S)。
同時Monitor Agent也針對操作系統本身進行監控,對OS、Docker的各類指標可以達到秒極的監測粒度,完全滿足了團隊的系統監控要求。
其次還面臨:
問題2:如何對容器內的應用進行監控?
通過Monitor Agent,可以針對每一種容器應用,啟用特定的采集插件,實現針對其特定應用的指標監控。如問題1中的圖形所示,Agent可以通過Net端口,訪問特定容器的應用,來實現應用的可用性監控與性能指標的監控。
優云Monitor支持大量的傳統資源與互聯網資源:
在解決上述兩個問題后,工作很快走上了正軌。但應用是有生命的,它在不斷發展,隨著實例的增加、容器編排能力的使用,應用開始做彈性擴縮,馬上新的問題又出現了:
問題3:如何對快速變更下的新增容器進行監控?
經過與優云的技術團隊的溝通,老葛團隊對Docker宿主機增加了容器變更觸發腳本,利用Monitor Agent易于自動化配置的特性,通過腳本自動生成新容器的監控配置項,滿足了對新增容器的應用自動監控。
最后,由于大量的應用使用了分布式微服務,相同的微服務在整個網絡中運行了多個實例,過去再以單個應用為單位的監控已經無法滿足要求,因為單個指標無法代表整個應用的性能水平,所以團隊又碰到了一個監控可視化的問題:
問題4:如何可視化分布式應用的整體性能指標?
比如,目前上線的應用有6個Jetty微服務,同時還會不斷增加,那么如何確認所有業務Jetty服務的負載是否均衡?
利用Agent監控時,可以為指標數據設置“來源標簽”的特性,我們可以將這個應用的6個Jetty服務以及自動新增的Jetty服務,都設置上“app=shop.portal”。
然后,通過優云Monitor的多種儀表盤,通過標簽可以提取到這些數據,結合奇妙的數據匯聚公式與豐富的圖表,對這6個Jetty服務進行了流量訪問趨勢、流量訪問合計、負載排名、資源消耗等可視化,如下圖所示:
同時類似的問題還包括,“集群中的多個Nginx服務,總共有多少HTTP連接會話?”,“集群中所有節點當前成功處理的交易量是多少?”,“集群中所有節點的CPU利用率排名是怎樣的?”等等。
從老葛團隊容器監控運維歷程,我們發現優云Monitor天然地支持對容器以及容器內應用的監控,并且可以敏捷的應對容器的彈性擴縮容,實現自動化容器監控。同時,Monitor還擁有非常棒的數據匯聚與可視化手段,擺脫了運維人員需要逐個面對監控指標的情況,實現監控整體應用,掌控全局。
作者簡介:
蔣君偉
IT運維領域資深專家,優云軟件產品總監,擁有10年運維實戰經驗;
先后研發了網絡管理、系統管理、CMDB、ITSM等產品,并成功建設了多個全國性的網絡運維管理項目;
其主導研發的產品廣泛應用于海關、稅務、公安、社保、銀行、保險、能源等20多個行業。
“活動期:現到2016年12月31日前使用優云產品免費,歡迎詳詢:https://uyun.cn”
更多運維技術文章請關注優云官方微信(broada_ops)
原創文章,作者:uyunops,如若轉載,請注明出處:http://www.www58058.com/28844