一個宿主機上可以運行多個容器化應用,容器化應用運行于宿主機上,我們需要知道該容器的運行情況,包括 CPU使用率、內存占用、網絡狀況以及磁盤空間等等一系列信息,而且這些信息隨時間變化,我們稱其為時序數據,本文將實操 如何搭建一個可視化的監控中心 來收集這些承載著具體應用的容器的時序信息并可視化分析與展示!
動手了,動手了...
注: 本文首發于 My 公眾號 CodeSheep ,可 長按 或 掃描 下面的 小心心 來訂閱 ↓ ↓ ↓
adviser:負責收集容器的隨時間變化的數據
influxdb:負責存儲時序數據
grafana:負責分析和展示時序數據
可以將其視為一個數據庫服務,其確實用于存儲數據。之所以選用該數據庫,原因正如官網所說:
Open Source Time Series DB Platform for Metrics & Events (Time Series Data)
下面我們將該服務部署起來
docker run -d -p 8086:8086 -v ~/influxdb:/var/lib/influxdb --name influxdb tutum/influxdb
進入influxdb容器內部,并執行influx命令:
docker exec -it influxdb influx
創建數據庫test和root用戶用于本次試驗測試
CREATE DATABASE "test"
CREATE USER "root" WITH PASSWORD "root" WITH ALL PRIVILEGES
谷歌的cadvisor可以用于收集Docker容器的時序信息,包括容器運行過程中的資源使用情況和性能數據。
運行cadvisor服務
docker run -d -v /:/rootfs -v /var/run:/var/run -v /sys:/sys -v /var/lib/docker:/var/lib/docker --link=influxdb:influxdb --name cadvisor google/cadvisor:v0.27.3 --storage_driver=influxdb --storage_driver_host=influxdb:8086 --storage_driver_db=test --storage_driver_user=root --storage_driver_password=root
特別注意項:
在運行上述docker時,這里有可能兩個其他配置項需要添加(CentOS, RHEL需要):
--privileged=true
設置為true之后,容器內的root才擁有真正的root權限,可以看到host上的設備,并且可以執行mount;否者容器內的root只是外部的一個普通用戶權限。由于cadvisor需要通過socket訪問docker守護進程,在CentOs和RHEL系統中需要這個這個選項。
--volume=/cgroup:/cgroup:ro
對于CentOS和RHEL系統的某些版本(比如CentOS6),cgroup的層級掛在/cgroup目錄,所以運行cadvisor時需要額外添加–volume=/cgroup:/cgroup:ro選項。
grafana則是一款開源的時序數據分析工具,而且界面專業易用,等下等部署好了,大家就能感受到:
docker run -d -p 5000:3000 -v ~/grafana:/var/lib/grafana --link=influxdb:influxdb --name grafana grafana/grafana
至此3個容器都已經啟動了:
下面開始具體實驗了
訪問grafana服務
打開localhost:5000來訪問grafana的web服務,此時提示你需要登錄,注意用戶名和密碼都是admin
登錄后可以看到grafana的主頁面:
看的很明顯,在Grafana上有好幾個步驟需要做,這里Install Grafana已經完成了,接下來我們需要:
Add data source
Create dashboard
…...
Add Data Source
點擊Add data source進入
然后主要是Setting選項卡設置
我們需要根據實際情況來填寫各項內容:
Data source添加成功會予以提示
數據源添加完成以后,我們需要添加儀表盤(Dashboard)
Add Dashboard
點擊Add dashboard進入
這里有很多類型的儀表盤供選擇,我們選用最常用的Graph就好
進入之后,點擊Panel Title下拉列表,再選擇Edit進行編輯即可
在Edit里面主要的就是需要添加查詢的條件,繼續看下文
Add Query Editor
查詢條件中我們可以選擇要監控的指標:
這里選一個memory usage好了,然后要監控的容器選擇grafana自身好了。
當然這里不止可以監控一個指標,也不止可以監控一個容器,更多組合我們只需要在下面并列著一個一個添加query條目就好!
最后我添加了三個監控條件,分別用于監控grafana、influxdb和cadvisor三個容器的memory usage指標,并將其同時顯示于圖中,怎么樣是不是很直觀!
這里可以摸索的設置項還有很多,比如一些坐標自定義、顯示策略自定義,甚至我們還可以自定義報警策略等等
作者更多的原創文章在此,歡迎觀賞
My Personal Blog
作者更多的SpringBt實踐文章在此:
Spring Boot應用監控實戰
SpringBoot應用部署于外置Tomcat容器
ElasticSearch搜索引擎在SpringBt中的實踐
初探Kotlin+SpringBoot聯合編程
Spring Boot日志框架實踐
SpringBoot優雅編碼之:Lombok加持
如果有興趣,也可以抽點時間看看作者一些關于容器化、微服務化方面的文章:
利用K8S技術棧打造個人私有云 連載文章
從一份配置清單詳解Nginx服務器配置
Docker容器可視化監控中心搭建
利用ELK搭建Docker容器化應用日志中心
RPC框架實踐之:Apache Thrift
RPC框架實踐之:Google gRPC
微服務調用鏈追蹤中心搭建
Docker容器跨主機通信
Docker Swarm集群初探
高效編寫Dockerfile的幾條準則
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/27278.html
摘要:在我的前文容器可視化監控中心搭建之中我們就實踐過容器的可視化監控,在那篇文章中我們是使用了技術棧來完成的。 showImg(https://segmentfault.com/img/remote/1460000015484084); 概述 性能監控是容器服務必不可少的基礎設施,容器化應用運行于宿主機上,我們需要知道該容器的運行情況,包括 CPU使用率、內存占用、網絡狀況以及磁盤空間等...
摘要:概述應用一旦容器化以后,需要考慮的就是如何采集位于容器中的應用程序的打印日志供運維分析。 showImg(https://segmentfault.com/img/remote/1460000014146680); 概述 應用一旦容器化以后,需要考慮的就是如何采集位于Docker容器中的應用程序的打印日志供運維分析。典型的比如 SpringBoot應用的日志 收集。本文即將闡述如何利...
摘要:概述在我之前的應用監控實戰一文中,講述了如何利用版本來可視化地監控應用。接下來我們就來創建一個待監控的示例。 showImg(https://segmentfault.com/img/remote/1460000015671446); 概述 在我之前的 《Spring Boot應用監控實戰》 一文中,講述了如何利用 Spring Boot Admin 1.5.X 版本來可視化地監控 ...
摘要:概述之前講過容器的可視化監控,即監控容器的運行情況,包括使用率內存占用網絡狀況以及磁盤空間等等一系列信息。實戰一下中添加依賴啟動應用程序之后,只要在瀏覽器中輸入端點信息就能獲得應用的一些狀態信息。 showImg(https://segmentfault.com/img/remote/1460000014684947); 概述 之前講過Docker容器的可視化監控,即監控容器的運行情...
閱讀 2825·2021-10-13 09:48
閱讀 3787·2021-10-13 09:39
閱讀 3601·2021-09-22 16:04
閱讀 1831·2021-09-03 10:48
閱讀 845·2021-08-03 14:04
閱讀 2364·2019-08-29 15:18
閱讀 3407·2019-08-26 12:19
閱讀 2873·2019-08-26 12:08