摘要:由于公司沒有運(yùn)維又需要監(jiān)控服務(wù)器的一些數(shù)據(jù)信息想盡快的啟動(dòng)一個(gè)數(shù)值監(jiān)控系統(tǒng)技術(shù)評(píng)估了下打算的方式來(lái)建設(shè)是一個(gè)時(shí)間數(shù)列數(shù)據(jù)庫(kù)并且自帶一些簡(jiǎn)單圖形展示功能雖然展示方面不是很完美但是在收集時(shí)間數(shù)據(jù)上非常的方便和簡(jiǎn)單根據(jù)官網(wǎng)的例子只需要一個(gè)連接就能
由于公司沒有運(yùn)維, 又需要監(jiān)控服務(wù)器的一些數(shù)據(jù)信息, 想盡快的啟動(dòng)一個(gè)數(shù)值監(jiān)控系統(tǒng). 技術(shù)評(píng)估了下打算 graphite + grafana 的方式來(lái)建設(shè).
graphite 是一個(gè)時(shí)間數(shù)列數(shù)據(jù)庫(kù),并且自帶一些簡(jiǎn)單 web 圖形展示功能. 雖然 web 展示方面不是很完美,但是在收集時(shí)間數(shù)據(jù)上非常的方便和簡(jiǎn)單. 根據(jù) https://graphiteapp.org/ 官網(wǎng)的例子,只需要一個(gè) tcp 連接就能向 graphite 服務(wù)上傳基于時(shí)間的數(shù)值了.
echo "foo.bar 1 `date +%s`" | nc graphitehost 2003
而 grafana 呢? 是一個(gè)顏值極高的數(shù)據(jù)圖形化分析和監(jiān)控應(yīng)用. 至于顏值有多高呢?自己直接看看這個(gè) demo 就能知道了 http://play.grafana.org/. 最重要的一點(diǎn)是 grafana 官方自帶 graphite 的數(shù)據(jù)源的插件. 這應(yīng)用組合在一起就開箱即用了.
那為了方便快捷開發(fā)和開發(fā)這個(gè)系統(tǒng),就決定用 docker-compose 的方式構(gòu)建由graphite 和 grafana 組合的服務(wù).
服務(wù)端配置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"
這里通過(guò) volumes 字段將兩個(gè)服務(wù)的磁盤空間都映射到本地主機(jī)上;映射的路徑都可以在 docker hub 上這個(gè)容器說(shuō)明里面看到;這樣我們監(jiān)控的數(shù)據(jù)就持久化到了本地.
在服務(wù)端通過(guò) docker-compose up -d 就將服務(wù)啟動(dòng)起來(lái)了;用配置 grafana 默認(rèn)管理員賬戶密碼配置好 graphite 的數(shù)據(jù)源. 需要注意的就是在配置 graphite 的http url 的時(shí)候直接使用 http://monitor_graphite 就可以了; 訪問(wèn)的方式選擇為proxy. 最后填好 graphite 對(duì)應(yīng)的鑒權(quán)信息. 服務(wù)端 graphite 和 grafana 就配置好了.
這里需要注意的是, graphite 的 2003 是需要暴露到公網(wǎng)的. 所以記得設(shè)置主機(jī)的防火墻;還有就是由于是直接暴露到了公網(wǎng)的,最好針對(duì)訪問(wèn)的 ip 做好白名單.
客戶端收集數(shù)據(jù)的客戶端其實(shí)非常的簡(jiǎn)單, 創(chuàng)建一個(gè)到 graphite 的 TCP 連接;然后寫入自己需要的保存的數(shù)據(jù)即可.為了驗(yàn)證可行性,就直接用 node.js 來(lái)寫入即可.
// 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 可以快速的構(gòu)建起應(yīng)用所需要基礎(chǔ)設(shè)施,自己只要寫一些定制的內(nèi)容就很快的完成任務(wù). 感謝 docker.
希望大家喜歡.
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27078.html
摘要:通過(guò)的我們可以將多個(gè)有機(jī)的組合起來(lái)構(gòu)建出自己需要的服務(wù)但是這里有幾個(gè)小問(wèn)題就是不利于分享步驟麻煩需要自己創(chuàng)建指定使用那如何解決上面的兩個(gè)問(wèn)題呢第節(jié)例子中的服務(wù)可以通過(guò)創(chuàng)建一個(gè)這樣的文件來(lái)解決通過(guò)下面的命令就能將所有需要的啟動(dòng)起來(lái) 通過(guò)docker 的 network我們可以將多個(gè) container 有機(jī)的組合起來(lái)構(gòu)建出自己需要的服務(wù). 但是這里有幾個(gè)小問(wèn)題就是 不利于分享. 步驟麻...
摘要:通過(guò)能獲得很多別人定制好的但是如果自己想制作一個(gè)自己容器該怎么弄呢用就像一個(gè)腳本文件告訴如何創(chuàng)建一個(gè)新的下面舉例來(lái)用來(lái)制作一個(gè)服務(wù)器的指令剛才提到了社區(qū)已經(jīng)有很多很好用的那我們要構(gòu)建自己的的話就可以在這些的基礎(chǔ)上來(lái)做我們要做一個(gè)基于的服務(wù)器 通過(guò) docker hub 能獲得很多別人定制好的image, 但是如果自己想制作一個(gè)自己容器該怎么弄呢? 用 Dockerfile Docker...
摘要:到現(xiàn)在為止我們會(huì)從拉取自己需要的文件并執(zhí)行起來(lái)還會(huì)基于已有的來(lái)制作自己特殊需要的但是如果我們完成一個(gè)功能需要多個(gè)組合起來(lái)使用該怎么辦呢雖然可以通過(guò)來(lái)制作一個(gè)這樣的但是如果所有的功能都做在一個(gè)中如果有一個(gè)模塊需呀改變的話就需要重新構(gòu)建整個(gè)作為 到現(xiàn)在為止,我們會(huì)從 docker hub 拉取自己需要的 image 文件并執(zhí)行起來(lái). 還會(huì)基于已有的 image 來(lái)制作自己特殊需要的 ima...
摘要:上一篇提到使用啟動(dòng)一個(gè)容器如果沒有使用來(lái)指定容器名字的話會(huì)自動(dòng)按照形容詞名人名的形式生成一個(gè)那這些名人是誰(shuí)呢源代碼說(shuō)明一切自用一些著名的科學(xué)家和黑客名字來(lái)命名容器如果有你認(rèn)為有還沒有在這些列表中的話給項(xiàng)目提交哈哈想給牛逼項(xiàng)目提交嗎又多 上一篇 blog 提到使用 docker 啟動(dòng)一個(gè)容器如果沒有使用--name來(lái)指定容器名字的話,docker 會(huì)自動(dòng)按照 形容詞_名人名的形式生成一個(gè)...
摘要:在程序員英語(yǔ)娛樂(lè)主題節(jié)目的直播中介紹了下在網(wǎng)站學(xué)習(xí)的視頻由于時(shí)間倉(cāng)促只學(xué)習(xí)了一部分最近因?yàn)榈墓镜脑蛞矝]有時(shí)間繼續(xù)搞直播所以想寫一篇分享下自己的的學(xué)習(xí)經(jīng)驗(yàn)想學(xué)習(xí)簡(jiǎn)短有效的風(fēng)格所以就將文章題目定為速成班準(zhǔn)備本地已經(jīng)安裝好了現(xiàn)在各個(gè)操作系統(tǒng)上 在程序員英語(yǔ)娛樂(lè)主題節(jié)目http://www.douyu.com/aftercode的直播中介紹了下在 egghead 網(wǎng)站學(xué)習(xí) docker 的...
閱讀 2870·2021-09-22 15:43
閱讀 4796·2021-09-06 15:02
閱讀 859·2019-08-29 13:55
閱讀 1692·2019-08-29 12:58
閱讀 3081·2019-08-29 12:38
閱讀 1259·2019-08-26 12:20
閱讀 2275·2019-08-26 12:12
閱讀 3324·2019-08-23 18:35