国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

斌哥的 Docker 進階指南

Ververica / 2994人閱讀

摘要:斌哥是誰劉斌,擁有多年編程經驗,曾參與翻譯過第一本書入門與實踐應用安全權威指南等多本技術書籍,主講過入門與實踐課程的后臺工程師。主要的解決方式就是以或者為單位進行監控通過等方式。

過去的一年中,關于 Docker 的話題從未斷過,而如今,從嘗試 Docker 到最終決定使用 Docker 的轉化率依然在逐步升高,關于 Docker 的討論更是有增無減。另一方面,大家的注意力也漸漸從 “Docker 是什么”轉移到“實踐 Docker”與“監控 Docker”上。

本文轉自劉斌博文「如何選擇 Docker 監控方案 」,文中劉斌從技術的角度深入解釋了 Docker 監控的數據采集原理,介紹了現有開源的監控方案,以及能夠對 Docker 進行監控功能的主流 SaaS 服務工具。

斌哥是誰?

劉斌,擁有 10 多年編程經驗,曾參與翻譯過「第一本 Docker 書」、「GitHub 入門與實踐」、「Web 應用安全權威指南」等多本技術書籍,主講過「Docker入門與實踐 」課程的 Cloud Insight 后臺工程師。

為什么監控,監控什么內容?

作為一名工程師,我們要對自己系統的運行狀態了如指掌,有問題及時發現,而不是讓用戶先發現系統不能使用,打電話找客服,再反映到開發。這個過程很長,而且對工程師來說,是一件比較沒面子的事情。

當領導問我們這個月的 MySQL 并發什么情況?slowsql 處于什么水平,平均響應時間超過 200ms 的占比有百分之多少的時候,回答不出來這個問題很尷尬。盡管你工作很辛苦,但是卻沒有拿得出來的成果。不能因為暫時沒出問題就掉以輕心,換位想想,站在領導的角度,領導什么都不干,你提案,他簽字,出了誰背鍋?

監控目的

減少宕機時間

擴展和性能管理

資源計劃

識別異常事件

故障排除、分析

為什么需要監控我們的服務?其中有一些顯而易見的原因,比如需要監控工具來提醒服務故障,比如通過監控服務的負載來決定擴容或縮容。如果機器普遍負載不高,則可以考慮縮減一下機器規模,如果數據庫連接經常維持在一個高位水平,則可以考慮一下是否可以進行拆庫處理,優化一下架構。

Docker監控面臨的挑戰

Docker特點

像host但不是host

量大

生命周期短 監控盲點(斷層)

微服務 集群

全方位

Host(VM) + Services + Containers + Apps

容器為我們的開發和運維帶來了更多的方向和可能性,我們也需要一種現代的監控方案來應對這種變化。

隨著不可變基礎設施概念的普及,云原生應用的興起,云計算組件已經越來越像搭建玩具的積木塊。很多基礎設施生命周期變短,不光容器如此,云主機、VM也是。

在云計算出現之前,一臺機器可能使用3、5年甚至更長都不需要重裝,主機名也不會變,而現在,可能升級一個版本,就要重建一個云主機或重新啟動一個容器。監控對象動態變化,而且非常頻繁。即使全部實現自動化,也會在負載和復雜度方面帶來不利影響。

監控還有助于進行內部統制,尤其是對安全比較敏感的行業,比如證券、銀行等。比如服務器受到攻擊時,我們需要分析事件,找到根本原因,識別類似攻擊,發現未知的被攻擊系統,甚至完成取證等工作。

集群的出現,使應用的拓撲結構也變得復雜,不同應用的指標和日志格式也不統一,再加上要考慮應對多租戶的問題,這些都給監控帶來了新挑戰。

傳統的監控內包括對主機、網絡和應用的監控,但是Docker出現之后,容器這一層很容易被忽略,成為三不管地區,即監控的盲點。

有人說,容器不就是個普通的OS么?裝個Zabbix的探針不就行了么?Docker host和Docker 容器都要裝 Zabbix探針……其實問題很多。

除了容器內部看到的cpu內存情況不準之外,而且容器生命周期短,重啟之后host名,ip地址都會變,所以最好在Docker host上安裝Zabbix agent。

如果每個容器都像OS那樣監控,則metric數量將會非常巨大,而且這些數據很可能幾分鐘之后就無效率了(容器已經停止)。容器生命周期短暫,一旦容器結束運行,之前收集的數據將不再有任何意義。

主要的解決方式就是以App或者Service為單位進行監控(通過Tag等方式)。

Docker 監控技術基礎

docker stats

Remote API

偽文件系統

我們可以通過 docker stats 命令或者Remote API以及Linux的偽文件系統來獲取容器的性能指標。

使用API的話需要注意一下,那就是不要給Docker daemon帶來性能負擔。如果你一臺主機有200個容器,如果非常頻繁的采集系統性能可能會大量占據CPU時間。

最好的方式應該就是使用偽文件系統。如果你只是想通過shell來采集性能數據,則 docker stats 可能是最簡單的方式了。

docker stats 命令

該命令默認以流式方式輸出,如果想打印出最新的數據并立即退出,可以使用 no-stream=true 參數。

偽文件系統

CPU、內存、磁盤

網絡

文件位置大概在(跟系統有關,這是 Systemd 的例子):

Docker各個版本對這三種方式的支持程度不同,取得metric的方式和詳細程度也不同,其中網絡metric是在1.6.1之后才能從偽文件系統得到。

Memory

內存的很多性能指標都來自于 memory.stat 文件:

前面的不帶total的指標,表示的是該cgroup中的process所使用的、不包括子cgroup在內的內存量,而total開頭的指標則包含了這些進程使用的包括子cgroup數據。這里我們看到的數據都是一樣的,由于這里并沒有子cgroup。

兩個比較重要的指標:

RSS: resident set size

進程的所有數據堆、棧和memory map等。rss可以進一步分類為active和inactive(activeanon and inactiveanon)。在內存不夠需要swap一部分到磁盤的時候,會選擇inactive 的rss進行swap 。

cache memory

緩存到內存中的硬盤文件的大小。比如你讀寫文件的時候,或者使用mapped file的時候,這個內存都會增加。這類內存也可以再細分為active和inactive的cache,即activefile和inactivefile。如果系統需要更多內存,則inactive的cache會被優先重用。

CPU

cpuacct.stat文件

docker.cpu.system

docker.cpu.user

但是比較遺憾,Docker 不會報告nice,idle和iowait等事件。

System也叫kernel時間,主要是系統調用所耗費的部分,而user則指自己程序的耗費CPU,如果User時間高,則需要好好檢查下自己的程序是否有問題,可能需要進行優化。

Blkio

優先從CFQ(Completely Fair Queuing 完全公平的排隊)拿數據,拿不到從這兩個文件拿: · blkio.throttle.ioservicebytes,讀寫字節數 · blkio.throttle.io_serviced,讀寫次數

Throttle這個單純可能有誤導,實際這些都不是限制值,而是實際值。每個文件的第一個字段是 major:minor 這樣格式的device ID。

網絡數據

iptables

偽文件系統

網絡設備接口

Virtual Ethernet

針網絡的監控要精確到接口級別,即網卡級別。每個容器在host上都有一個對應的virtual Ethernet,我們可以從這個設備獲得tx和rx信息。

不過找到容器在主機上對應的虛擬網卡比較麻煩。這時候可以在宿主機上通過 ip netns 命令從容器內部取得網絡數據。

為了在容器所在網絡命名空間中執行 ip netns 命令,我們首先需要找到這個容器進程的PID。

或者:

實際上Docker的實現也是從偽文件系統中讀取網絡metric的:

以上,是不是意猶未盡呢? 下一部分,斌哥將為大家介紹: 《Docker 監控方案的實現》

超好用的監控軟件 Cloud Insight 不僅能監控 Docker,還能對 Nagios 進行更好的可視化哦~

閱讀更多技術文章,請訪問 OneAPM 官方博客。
本文轉自 OneAPM 官方博客

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26565.html

相關文章

  • 哥的 Docker 進階指南—監控方案的實現

    摘要:本文轉自劉斌博文如何選擇監控方案,文中劉斌從技術的角度深入解釋了監控的數據采集原理,介紹了現有開源的監控方案,以及能夠對進行監控功能的主流服務工具。下一章,劉斌將為大家介紹監控的開原方案,主流服務,及其特點。 過去的一年中,關于 Docker 的話題從未斷過,而如今,從嘗試 Docker 到最終決定使用 Docker 的轉化率依然在逐步升高,關于 Docker 的討論更是有增無減。另一...

    X_AirDu 評論0 收藏0
  • 那些年,我的前端/Java后端書單

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學習即將閱讀的一些優秀經典前端后端書籍。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學習、即將閱讀)的一些優秀經典前端/Java后端書籍。全文為純原創,且將持續更新,未經許可,不得進行轉載。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 基礎 基礎書籍 進階 進階階段,深入學習的書...

    fxp 評論0 收藏0
  • 那些年,我的前端/Java后端書單

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學習即將閱讀的一些優秀經典前端后端書籍。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學習、即將閱讀)的一些優秀經典前端/Java后端書籍。全文為純原創,且將持續更新,未經許可,不得進行轉載。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 基礎 基礎書籍 進階 進階階段,深入學習的書...

    Tecode 評論0 收藏0
  • 那些年,我的前端/Java后端書單

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學習即將閱讀的一些優秀經典前端后端書籍。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學習、即將閱讀)的一些優秀經典前端/Java后端書籍。全文為純原創,且將持續更新,未經許可,不得進行轉載。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 基礎 基礎書籍 進階 進階階段,深入學習的書...

    VPointer 評論0 收藏0
  • 那些年,我的前端/Java后端書單

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學習即將閱讀的一些優秀經典前端后端書籍。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學習、即將閱讀)的一些優秀經典前端/Java后端書籍。全文為純原創,且將持續更新,未經許可,不得進行轉載。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 基礎 基礎書籍 進階 進階階段,深入學習的書...

    idealcn 評論0 收藏0

發表評論

0條評論

Ververica

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<