掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
Grafana是一款用Go語(yǔ)言開(kāi)發(fā)的開(kāi)源數(shù)據(jù)可視化工具,可以做數(shù)據(jù)監(jiān)控和數(shù)據(jù)統(tǒng)計(jì),帶有告警功能。目前使用grafana的公司有很多,如paypal、ebay、intel等。

我們可以在 Docker 中構(gòu)建我們的 Grafana。 有一個(gè)官方提供的 Grafana Docker 鏡像。請(qǐng)運(yùn)行下述命令來(lái)構(gòu)建Grafana 容器。
root@ubuntu:~# docker run -i -p 3000:3000 grafana/grafana
Unable to find image 'grafana/grafana:latest' locally
latest: Pulling from grafana/grafana
5c90d4a2d1a8: Pull complete
b1a9a0b6158e: Pull complete
acb23b0d58de: Pull complete
Digest: sha256:34ca2f9c7986cb2d115eea373083f7150a2b9b753210546d14477e2276074ae1
Status: Downloaded newer image for grafana/grafana:latest
t=2016-07-27T15:20:19+0000 lvl=info msg="Starting Grafana" logger=main version=3.1.0 commit=v3.1.0 compiled=2016-07-12T06:42:28+0000
t=2016-07-27T15:20:19+0000 lvl=info msg="Config loaded from" logger=settings file=/usr/share/grafana/conf/defaults.ini
t=2016-07-27T15:20:19+0000 lvl=info msg="Config loaded from" logger=settings file=/etc/grafana/grafana.ini
t=2016-07-27T15:20:19+0000 lvl=info msg="Config overriden from command line" logger=settings arg="default.paths.data=/var/lib/grafana"
t=2016-07-27T15:20:19+0000 lvl=info msg="Config overriden from command line" logger=settings arg="default.paths.logs=/var/log/grafana"
t=2016-07-27T15:20:19+0000 lvl=info msg="Config overriden from command line" logger=settings arg="default.paths.plugins=/var/lib/grafana/plugins"
t=2016-07-27T15:20:19+0000 lvl=info msg="Path Home" logger=settings path=/usr/share/grafana
t=2016-07-27T15:20:19+0000 lvl=info msg="Path Data" logger=settings path=/var/lib/grafana
t=2016-07-27T15:20:19+0000 lvl=info msg="Path Logs" logger=settings path=/var/log/grafana
t=2016-07-27T15:20:19+0000 lvl=info msg="Path Plugins" logger=settings path=/var/lib/grafana/plugins
t=2016-07-27T15:20:19+0000 lvl=info msg="Initializing DB" logger=sqlstore dbtype=sqlite3
t=2016-07-27T15:20:20+0000 lvl=info msg="Executing migration" logger=migrator id="create playlist table v2"
t=2016-07-27T15:20:20+0000 lvl=info msg="Executing migration" logger=migrator id="create playlist item table v2"
t=2016-07-27T15:20:20+0000 lvl=info msg="Executing migration" logger=migrator id="drop preferences table v2"
t=2016-07-27T15:20:20+0000 lvl=info msg="Executing migration" logger=migrator id="drop preferences table v3"
t=2016-07-27T15:20:20+0000 lvl=info msg="Executing migration" logger=migrator id="create preferences table v3"
t=2016-07-27T15:20:20+0000 lvl=info msg="Created default admin user: [admin]"
t=2016-07-27T15:20:20+0000 lvl=info msg="Starting plugin search" logger=plugins
t=2016-07-27T15:20:20+0000 lvl=info msg="Server Listening" logger=server address=0.0.0.0:3000 protocol=http subUrl=
我們可以通過(guò)運(yùn)行此命令確認(rèn) Grafana 容器的工作狀態(tài) “docker ps -a”或通過(guò)這個(gè)URL訪問(wèn) http://Docker IP:3000。
所有的 Grafana 配置設(shè)置都使用環(huán)境變量定義,在使用容器技術(shù)時(shí)這個(gè)是非常有用的。Grafana 配置文件路徑為 /etc/grafana/grafana.ini。
Grafana 可以在它的 ini 配置文件中指定幾個(gè)配置選項(xiàng),或可以使用前面提到的環(huán)境變量來(lái)指定。
通常配置文件路徑:
PS:當(dāng)你使用 deb、rpm 或 docker 鏡像安裝 Grafana 時(shí),你的配置文件在/etc/grafana/grafana.ini。
現(xiàn)在我們看一些配置文件中的變量:
instance_name:這是 Grafana 服務(wù)器實(shí)例的名字。默認(rèn)值從 ${HOSTNAME} 獲取,其值是環(huán)境變量HOSTNAME,如果該變量為空或不存在,Grafana 將會(huì)嘗試使用系統(tǒng)調(diào)用來(lái)獲取機(jī)器名。
[paths]>:這些路徑通常都是在 init.d
腳本
或 systemd service 文件中通過(guò)命令行指定。
[server]
[database]:Grafana 使用數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)用戶和儀表盤(pán)以及其他信息,默認(rèn)配置為使用內(nèi)嵌在 Grafana 主二進(jìn)制文件中的 SQLite3。
[security]
我們可以使用下面的組件來(lái)創(chuàng)建我們的 Docker 監(jiān)控系統(tǒng)。
我們需要一步一步的在我們的 Docker 系統(tǒng)中安裝以下每一個(gè)組件:
我們可以使用這個(gè)命令來(lái)拉取 InfluxDB 鏡像,并部署了 influxDB 容器。
root@ubuntu:~# docker run -d -p 8083:8083 -p 8086:8086 --expose 8090 --expose 8099 -e PRE_CREATE_DB=cadvisor --name influxsrv tutum/influxdb:0.8.8
Unable to find image 'tutum/influxdb:0.8.8' locally
0.8.8: Pulling from tutum/influxdb
a3ed95caeb02: Already exists
23efb549476f: Already exists
aa2f8df21433: Already exists
ef072d3c9b41: Already exists
c9f371853f28: Already exists
a248b0871c3c: Already exists
749db6d368d0: Already exists
7d7c7d923e63: Pull complete
e47cc7808961: Pull complete
1743b6eeb23f: Pull complete
Digest: sha256:8494b31289b4dbc1d5b444e344ab1dda3e18b07f80517c3f9aae7d18133c0c42
Status: Downloaded newer image for tutum/influxdb:0.8.8
d3b6f7789e0d1d01fa4e0aacdb636c221421107d1df96808ecbe8e241ceb1823
-p 8083:8083 : user interface, log in with username-admin, pass-admin
-p 8086:8086 : interaction with other application
--name influxsrv : container have name influxsrv, use to cAdvisor link it.
你可以測(cè)試 InfluxDB 是否安裝好,通過(guò)訪問(wèn)這個(gè) URL http://你的 IP 地址:8083,用戶名和密碼都是 ”root“。
我們可以在這個(gè)界面上創(chuàng)建我們所需的數(shù)據(jù)庫(kù)。
我們的下一個(gè)步驟是安裝 cAdvisor 容器,并將其鏈接到 InfluxDB 容器。你可以使用此命令來(lái)創(chuàng)建它。
root@ubuntu:~# docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --publish=8080:8080 --detach=true --link influxsrv:influxsrv --name=cadvisor google/cadvisor:latest -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086
Unable to find image 'google/cadvisor:latest' locally
latest: Pulling from google/cadvisor
09d0220f4043: Pull complete
151807d34af9: Pull complete
14cd28dce332: Pull complete
Digest: sha256:8364c7ab7f56a087b757a304f9376c3527c8c60c848f82b66dd728980222bd2f
Status: Downloaded newer image for google/cadvisor:latest
3bfdf7fdc83872485acb06666a686719983a1172ac49895cd2a260deb1cdde29
root@ubuntu:~#
--publish=8080:8080 : user interface
--link=influxsrv:influxsrv: link to container influxsrv
-storage_driver=influxdb: set the storage driver as InfluxDB
Specify what InfluxDB instance to push data to:
-storage_driver_host=influxsrv:8086: The ip:port of the database. Default is ‘localhost:8086’
-storage_driver_db=cadvisor: database name. Uses db ‘cadvisor’ by default
你可以通過(guò)訪問(wèn)這個(gè)地址來(lái)測(cè)試安裝 cAdvisor 是否正常 http://你的 IP 地址:8080。 這將為你的 Docker 主機(jī)和容器提供統(tǒng)計(jì)信息。
最后,我們需要安裝 Grafana 儀表板并連接到 InfluxDB,你可以執(zhí)行下面的命令來(lái)設(shè)置它。
root@ubuntu:~# docker run -d -p 3000:3000 -e INFLUXDB_HOST=localhost -e INFLUXDB_PORT=8086 -e INFLUXDB_NAME=cadvisor -e INFLUXDB_USER=root -e INFLUXDB_PASS=root --link influxsrv:influxsrv --name grafana grafana/grafana
f3b7598529202b110e4e6b998dca6b6e60e8608d75dcfe0d2b09ae408f43684a
現(xiàn)在我們可以登錄 Grafana 來(lái)配置數(shù)據(jù)源. 訪問(wèn) http://你的 IP 地址:3000 或http://你的 IP 地址(如果你在前面做了端口映射的話):
一旦我們安裝好了 Grafana,我們可以連接 InfluxDB。登錄到儀表盤(pán)并且點(diǎn)擊面板左上方角落的 Grafana 圖標(biāo)(那個(gè)火球)。點(diǎn)擊數(shù)據(jù)源來(lái)配置。
現(xiàn)在你可以添加新的圖形到我們默認(rèn)的數(shù)據(jù)源 InfluxDB。
我們可以通過(guò)在測(cè)量頁(yè)面編輯和調(diào)整我們的查詢以調(diào)整我們的圖形。
關(guān)于 Docker 監(jiān)控,你可用從此了解更多信息。 感謝你的閱讀。我希望你可以留下有價(jià)值的建議和評(píng)論。希望你有個(gè)美好的一天。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流