容器技術在近兩年得到很多企業的大力支持,以Docker為代表的容器被大中小型企業應用。容器技術雖然發展一段時間了,但是任何一種技術都不能保證不會出現問題,容器也是如此,那么應該如何才能減少宕機時間,提高容器彈性擴展能力與實際性能呢?
Container Monitoring(容器監測)是一種可以幫助了解容器內部以及獲得某種支持的技術,而Docker自身的monitoring和introspection技術API逐漸成熟,已經有最新一波的容器監測技術利用到它們。
cAdvisor
cAdvisor是Google用來監測單節點的資源信息的監控工具,提供了一目了然的單節點多容器的圖表型資源監控功能。它能夠快速的產生,運行容器的基本行為等有用信息。
cAdvisor只需要依據命令行就能啟動?cAdvisor,訪問8080端口即可看到性能指標數據。它部署和使用很簡單,但只可以監視在同一個host上運行的其他容器,所以并不適用于對多節點部署。
Netdata
Netdata是一款Linux性能實時監測工具。以web的可視化方式展示系統及應用程序的實時運行狀態(包括cpu、內存、硬盤輸入/輸出、網絡等linux性能的數據)。
Netdata是一個高度優化的Linux守護進程,它為Linux系統,應用程序,SNMP服務等提供實時的性能監測。它可以監測CPU的使用率,中斷,軟中斷和頻率;RAM,互換和內核內存的使用率和硬盤輸入/輸出等內容,操作簡單,而且界面看起來也十分美觀。
Prometheus
Prometheus是一個開源的系統監控、時間序列數據庫和報警工具,最初由SoundCloud推出。Prometheus.io是一個系統監控和報警的開源框架。它可以攝取來自一個巨大范圍數據源的數據包括容器。同時,數據來源并不局限cAdvisor、Kubernetes、CoreOS的Etcd。它的優點是多維度數據模型、不依賴分布式存儲、查詢語言靈活還有時間序列的采集是通過HTTP pull的形式,解決很多push架構的問題等;與此同時,它也有單機下存儲量有限和內存占用率大等問題。