Weave Scope是Docker和Kubernetes的可視化和監視工具。它提供了自上而下的應用程序視圖以及整個基礎架構視圖,並允許您實時診斷將分布式容器化應用程序部署到雲提供商時遇到的任何問題。
github開源項目地址: https://github.com/weaveworks/scope
Weave Scope可以監控Kubernetes集群的一系列資源的狀態、資源使用情況、應用拓撲、還可以直接通過UI界面進行調式查看日志等操作
Scope 提供了至上而下的集群基礎設施和應用的完整視圖,用戶可以輕松對分布式的容器化應用進行實時監控和問題診斷,以確保容器應用程序的穩定性和性能,通過查看容器上下文的度量/標記,以及原數據,在容器內部的進程之間可以輕松的確定運行服務消耗最多CPU/內存資源的容器
- 實時了解您的Docker容器 選擇您的容器基礎架構的概述,或專注於特定的微服務。輕松識別並糾正問題,以確保容器化應用程序的穩定性和性能。
- 上下文細節和深層鏈接 查看容器的上下文指標,標簽和元數據。毫不費力地在容器內部的進程之間導航,以托管運行在可擴展,可排序表中的容器。
- 對於給定的主機或服務,使用最多CPU或內存的容器即可輕松找到該容器。與容器交互和管理 直接與您的容器進行交互:暫停,重新啟動和停止容器。啟動命令行。所有這些都無需離開示波器瀏覽器窗口。
- 通過插件擴展和自定義 通過創建范圍插件,為主機,容器和/或進程添加自定義詳細信息或交互。或者,僅從其他人已經在GitHub Weaveworks Scope插件組織中撰寫的內容中進行選擇。
Weave Scope由App和Probe兩部分組成
- Probe負責收集容器和宿主的信息,並發送給App
- App負責處理這些信息,並生成相應的報告,並以交互界面的形式展示
安裝與運行
由於我用的是Docker,這里主要介紹這個工具在Docker上的使用。
對於WeaveScope的安裝相當簡單,只要三行命令就可以了。官方的文檔中是這樣命令
sudo curl -L git.io/scope -o /usr/local/bin/scope
sudo chmod a+x /usr/local/bin/scope
scope launch
但是經過本人的實驗,這個命令存在一些坑。第一個下載命令我下載下來的版本有問題,運行時會報錯。第三個運行命令只是最基本的,不能很好的滿足我的需求。
所以經過我的探索我建議使用如下命令
sudo curl -L https://github.com/weaveworks/scope/releases/download/latest_release/scope -o /usr/local/bin/scope
sudo chmod a+x /usr/local/bin/scope
scope launch -app.basicAuth -app.basicAuth.password 123456 -app.basicAuth.username user -probe.basicAuth -probe.basicAuth.password 123456 -probe.basicAuth.username user
- 第一個下載命令換成從它官方的github上下載最新版本。
- 第二個命令只是加權限都一樣沒啥區別。
- 第三個運行命令是有很多道道的,官方的命令是最基本的運行。我改進版的是可以支持用戶密碼登錄的功能,因為畢竟容器的監控我們不希望任何人都可以看到的。這個東西我也是搜了很久在官方的issues中找到了答案
scope launch可以這樣使用scope launch {OPTIONS} {PEERS},scope help命令可以看到具體的{OPTIONS} {PEERS}。里面的東西很多,包括很多基礎的設置,用戶名和密碼登錄、端口設置等都可以通過這里來設置
完整安裝步驟展示:
~ # curl -L https://github.com/weaveworks/scope/releases/download/latest_release/scope -o /usr/local/bin/scope
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 629 100 629 0 0 9 0 0:01:09 0:01:04 0:00:05 147
100 11664 100 11664 0 0 178 0 0:01:05 0:01:05 --:--:-- 25805
~ # chmod a+x /usr/local/bin/scope
~ # scope launch -app.basicAuth -app.basicAuth.password 123456 -app.basicAuth.username user -probe.basicAuth -probe.basicAuth.password 123456 -probe.basicAuth.username user
Unable to find image 'weaveworks/scope:1.13.1' locally
1.13.1: Pulling from weaveworks/scope
c9b1b535fdd9: Pull complete
550073704c23: Pull complete
8738e5bbaf1d: Pull complete
0a8826d26027: Pull complete
387c1aa951b4: Pull complete
e72d45461bb9: Pull complete
75cc44b65e98: Pull complete
11f7584a6ade: Pull complete
a5aa3ebbe1c2: Pull complete
7cdbc028c8d2: Pull complete
Digest: sha256:4342f1c799aba244b975dcf12317eb11858f9879a3699818e2bf4c37887584dc
Status: Downloaded newer image for weaveworks/scope:1.13.1
22d8d2bd5cf22bf75708e8f2ad5dfde51816d9fb51999c49fdac7f987ec5cc97
Scope probe started
Weave Scope is listening at the following URL(s):
* http://192.168.1.1:4040/
* http://192.168.0.253:4040/
* http://172.20.0.1:4040/
* http://172.19.0.1:4040/
使用 Scope
成功啟動scope后,可以在瀏覽器中方法http://ip:4040,如果端口沒有修改默認是4040。之后輸入用戶名和密碼進入監控首頁
實時資源監控,可以在Scope中查看資源的CPU和內存使用情況,並且支持HOST、Pod和Container
一般我們可以點擊Container查看容器的情況,這里一般會列出你自己的容器和weave自帶的容器,通過名字可以區別。點擊相應容器可以對它進行在線bash操作,或者重啟,暫停,關閉容器。
點擊Hosts按鈕,可以看到各個節點之間的關系,可以對自己的主機進行監控和操作,當然也可以在線bash。
點擊by image可以看到自己現在docker中所有的鏡像。