摘要:由于公司沒有運維又需要監控服務器的一些數據信息想盡快的啟動一個數值監控系統技術評估了下打算的方式來建設是一個時間數列數據庫并且自帶一些簡單圖形展示功能雖然展示方面不是很完美但是在收集時間數據上非常的方便和簡單根據官網的例子只需要一個連接就能
由于公司沒有運維, 又需要監控服務器的一些數據信息, 想盡快的啟動一個數值監控系統. 技術評估了下打算 graphite + grafana 的方式來建設.
graphite 是一個時間數列數據庫,并且自帶一些簡單 web 圖形展示功能. 雖然 web 展示方面不是很完美,但是在收集時間數據上非常的方便和簡單. 根據 https://graphiteapp.org/ 官網的例子,只需要一個 tcp 連接就能向 graphite 服務上傳基于時間的數值了.
echo "foo.bar 1 `date +%s`" | nc graphitehost 2003
而 grafana 呢? 是一個顏值極高的數據圖形化分析和監控應用. 至于顏值有多高呢?自己直接看看這個 demo 就能知道了 http://play.grafana.org/. 最重要的一點是 grafana 官方自帶 graphite 的數據源的插件. 這應用組合在一起就開箱即用了.
那為了方便快捷開發和開發這個系統,就決定用 docker-compose 的方式構建由graphite 和 grafana 組合的服務.
服務端配置version: "3" services: graphite: container_name: monitor_graphite restart: always image: sitespeedio/graphite volumes: - ./data/graphite/storage/whisper:/opt/graphite/storage/whisper - ./data/graphite/storage-schemas.conf:/opt/graphite/conf/storage-schemas.conf ports: - "2003:2003" - "8093:80" grafana: container_name: monitor_grafana restart: always image: grafana/grafana ports: - 3018:3000 environment: - "GF_SECURITY_ADMIN_PASSWORD=screct" - "GF_SERVER_ROOT_URL=http://subdomain.yourdomain.com" volumes: - "./data/grafana:/var/lib/grafana"
這里通過 volumes 字段將兩個服務的磁盤空間都映射到本地主機上;映射的路徑都可以在 docker hub 上這個容器說明里面看到;這樣我們監控的數據就持久化到了本地.
在服務端通過 docker-compose up -d 就將服務啟動起來了;用配置 grafana 默認管理員賬戶密碼配置好 graphite 的數據源. 需要注意的就是在配置 graphite 的http url 的時候直接使用 http://monitor_graphite 就可以了; 訪問的方式選擇為proxy. 最后填好 graphite 對應的鑒權信息. 服務端 graphite 和 grafana 就配置好了.
這里需要注意的是, graphite 的 2003 是需要暴露到公網的. 所以記得設置主機的防火墻;還有就是由于是直接暴露到了公網的,最好針對訪問的 ip 做好白名單.
客戶端收集數據的客戶端其實非常的簡單, 創建一個到 graphite 的 TCP 連接;然后寫入自己需要的保存的數據即可.為了驗證可行性,就直接用 node.js 來寫入即可.
// report.js function ts() { return Math.floor(Date.now() / 1000) } const client = net.connect(config.graphitePort, config.graphiteHost, () => { client.setNoDelay(true) setInterval(function () { const [cpuUsageIn1Min] = os.loadavg() client.write(`server.${config.nameSpace}.os.cpu ${cpuUsageIn1Min} ${ts()} `) }, ms("10s")); }) client.on("end", () => { process.exit(0) })完
使用 docker 可以快速的構建起應用所需要基礎設施,自己只要寫一些定制的內容就很快的完成任務. 感謝 docker.
希望大家喜歡.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27078.html
摘要:通過的我們可以將多個有機的組合起來構建出自己需要的服務但是這里有幾個小問題就是不利于分享步驟麻煩需要自己創建指定使用那如何解決上面的兩個問題呢第節例子中的服務可以通過創建一個這樣的文件來解決通過下面的命令就能將所有需要的啟動起來 通過docker 的 network我們可以將多個 container 有機的組合起來構建出自己需要的服務. 但是這里有幾個小問題就是 不利于分享. 步驟麻...
摘要:通過能獲得很多別人定制好的但是如果自己想制作一個自己容器該怎么弄呢用就像一個腳本文件告訴如何創建一個新的下面舉例來用來制作一個服務器的指令剛才提到了社區已經有很多很好用的那我們要構建自己的的話就可以在這些的基礎上來做我們要做一個基于的服務器 通過 docker hub 能獲得很多別人定制好的image, 但是如果自己想制作一個自己容器該怎么弄呢? 用 Dockerfile Docker...
摘要:到現在為止我們會從拉取自己需要的文件并執行起來還會基于已有的來制作自己特殊需要的但是如果我們完成一個功能需要多個組合起來使用該怎么辦呢雖然可以通過來制作一個這樣的但是如果所有的功能都做在一個中如果有一個模塊需呀改變的話就需要重新構建整個作為 到現在為止,我們會從 docker hub 拉取自己需要的 image 文件并執行起來. 還會基于已有的 image 來制作自己特殊需要的 ima...
摘要:上一篇提到使用啟動一個容器如果沒有使用來指定容器名字的話會自動按照形容詞名人名的形式生成一個那這些名人是誰呢源代碼說明一切自用一些著名的科學家和黑客名字來命名容器如果有你認為有還沒有在這些列表中的話給項目提交哈哈想給牛逼項目提交嗎又多 上一篇 blog 提到使用 docker 啟動一個容器如果沒有使用--name來指定容器名字的話,docker 會自動按照 形容詞_名人名的形式生成一個...
摘要:在程序員英語娛樂主題節目的直播中介紹了下在網站學習的視頻由于時間倉促只學習了一部分最近因為的公司的原因也沒有時間繼續搞直播所以想寫一篇分享下自己的的學習經驗想學習簡短有效的風格所以就將文章題目定為速成班準備本地已經安裝好了現在各個操作系統上 在程序員英語娛樂主題節目http://www.douyu.com/aftercode的直播中介紹了下在 egghead 網站學習 docker 的...
閱讀 2851·2021-09-22 15:43
閱讀 4686·2021-09-06 15:02
閱讀 845·2019-08-29 13:55
閱讀 1679·2019-08-29 12:58
閱讀 3061·2019-08-29 12:38
閱讀 1206·2019-08-26 12:20
閱讀 2264·2019-08-26 12:12
閱讀 3311·2019-08-23 18:35