新聞中心
Grafana 是 Graphite 和 InfluxDB 儀表盤和圖形編輯器。Grafana 是開源的,功能齊全的度量儀表盤和圖形編輯器,支持 Graphite,InfluxDB 和 OpenTSDB,下面為大家詳細講解一下Ubuntu上Grafana 監(jiān)控 Docker具體方法。

先決條件
-
安裝好 Docker 的服務(wù)器
安裝 Grafana
我們可以在 Docker 中構(gòu)建我們的 Grafana。 有一個官方提供的 Grafana Docker 鏡像。請運行下述命令來構(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=
我們可以通過運行此命令確認(rèn) Grafana 容器的工作狀態(tài) “docker ps -a”或通過這個URL訪問 http://Docker IP:3000。
所有的 Grafana 配置設(shè)置都使用環(huán)境變量定義,在使用容器技術(shù)時這個是非常有用的。Grafana 配置文件路徑為 /etc/grafana/grafana.ini。
理解配置項
Grafana 可以在它的 ini 配置文件中指定幾個配置選項,或可以使用前面提到的環(huán)境變量來指定。
配置文件位置
通常配置文件路徑:
-
默認(rèn)配置文件路徑 : $WORKING_DIR/conf/defaults.ini
-
自定義配置文件路徑 : $WORKING_DIR/conf/custom.ini
PS:當(dāng)你使用 deb、rpm 或 docker 鏡像安裝 Grafana 時,你的配置文件在/etc/grafana/grafana.ini。
理解配置變量
現(xiàn)在我們看一些配置文件中的變量:
-
instance_name:這是 Grafana 服務(wù)器實例的名字。默認(rèn)值從 ${HOSTNAME} 獲取,其值是環(huán)境變量HOSTNAME,如果該變量為空或不存在,Grafana 將會嘗試使用系統(tǒng)調(diào)用來獲取機器名。
-
[paths]>:這些路徑通常都是在 init.d
腳本
或 systemd service 文件中通過命令行指定。
-
-
data:這個是 Grafana 存儲 sqlite3 數(shù)據(jù)庫(如果使用)、基于文件的會話(如果使用),和其他數(shù)據(jù)的路徑。
-
logs:這個是 Grafana 存儲日志的路徑。
-
-
[server]
-
-
http_addr:應(yīng)用監(jiān)聽的 IP 地址,如果為空,則監(jiān)聽所有的接口。
-
http_port:應(yīng)用監(jiān)聽的端口,默認(rèn)是 3000,你可以使用下面的命令將你的 80 端口重定向到 3000 端口:$iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 3000
-
root_url : 這個 URL 用于從瀏覽器訪問 Grafana 。
-
cert_file : 證書文件的路徑(如果協(xié)議是 HTTPS)。
-
cert_key : 證書密鑰文件的路徑(如果協(xié)議是 HTTPS)。
-
-
[database]:Grafana 使用數(shù)據(jù)庫來存儲用戶和儀表盤以及其他信息,默認(rèn)配置為使用內(nèi)嵌在 Grafana 主二進制文件中的 SQLite3。
-
-
type:你可以根據(jù)你的需求選擇 MySQL、Postgres、SQLite3。
-
path:僅用于選擇 SQLite3 數(shù)據(jù)庫時,這個是數(shù)據(jù)庫所存儲的路徑。
-
host:僅適用 MySQL 或者 Postgres。它包括 IP 地址或主機名以及端口。例如,Grafana 和 MySQL 運行在同一臺主機上設(shè)置如: host = 127.0.0.1:3306。
-
name:Grafana 數(shù)據(jù)庫的名稱,把它設(shè)置為 Grafana 或其它名稱。
-
user:數(shù)據(jù)庫用戶(不適用于 SQLite3)。
-
password:數(shù)據(jù)庫用戶密碼(不適用于 SQLite3)。
-
ssl_mode:對于 Postgres,使用 disable,require,或 verify-full等值。對于 MySQL,使用 true,false,或skip-verify。
-
ca_cert_path:(只適用于 MySQL)CA 證書文件路徑,在多數(shù) Linux 系統(tǒng)中,證書可以在 /etc/ssl/certs 找到。
-
client_key_path:(只適用于 MySQL)客戶端密鑰的路徑,只在服務(wù)端需要用戶端驗證時使用。
-
client_cert_path:(只適用于 MySQL)客戶端證書的路徑,只在服務(wù)端需要用戶端驗證時使用。
-
server_cert_name:(只適用于 MySQL)MySQL 服務(wù)端使用的證書的通用名稱字段。如果 ssl_mode 設(shè)置為 skip-verify時可以不設(shè)置。
-
-
[security]
-
-
admin_user:這個是 Grafana 默認(rèn)的管理員用戶的用戶名,默認(rèn)設(shè)置為 admin。
-
admin_password:這個是 Grafana 默認(rèn)的管理員用戶的密碼,在第一次運行時設(shè)置,默認(rèn)為 admin。
-
login_remember_days:保持登錄/記住我的持續(xù)天數(shù)。
-
secret_key:用于保持登錄/記住我的 cookies 的簽名。
-
設(shè)置監(jiān)控的重要組件
我們可以使用下面的組件來創(chuàng)建我們的 Docker 監(jiān)控系統(tǒng)。
-
cAdvisor:它被稱為 Container Advisor。它給用戶提供了一個資源利用和性能特征的解讀。它會收集、聚合、處理、導(dǎo)出運行中的容器的信息。你可以通過這個文檔了解更多。
-
InfluxDB:這是一個包含了時間序列、度量和分析數(shù)據(jù)庫。我們使用這個數(shù)據(jù)源來設(shè)置我們的監(jiān)控。cAdvisor 只展示實時信息,并不保存這些度量信息。Influx Db 幫助保存 cAdvisor 提供的監(jiān)控數(shù)據(jù),以展示非某一時段的數(shù)據(jù)。
-
Grafana Dashboard:它可以幫助我們在視覺上整合所有的信息。這個強大的儀表盤使我們能夠針對 InfluxDB 數(shù)據(jù)存儲進行查詢并將他們放在一個布局合理好看的圖表中。
Docker 監(jiān)控的安裝
我們需要一步一步的在我們的 Docker 系統(tǒng)中安裝以下每一個組件:
安裝 InfluxDB
我們可以使用這個命令來拉取 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.
你可以測試 InfluxDB 是否安裝好,通過訪問這個 URL http://你的 IP 地址:8083,用戶名和密碼都是 ”root“。
Ubuntu上Grafana 監(jiān)控 Docker的技巧Ubuntu上Grafana 監(jiān)控 Docker的技巧
我們可以在這個界面上創(chuàng)建我們所需的數(shù)據(jù)庫。
Ubuntu上Grafana 監(jiān)控 Docker的技巧Ubuntu上Grafana 監(jiān)控 Docker的技巧
安裝 cAdvisor
我們的下一個步驟是安裝 cAdvisor 容器,并將其鏈接到 InfluxDB 容器。你可以使用此命令來創(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
你可以通過訪問這個地址來測試安裝 cAdvisor 是否正常 http://你的 IP 地址:8080。 這將為你的 Docker 主機和容器提供統(tǒng)計信息。
Ubuntu上Grafana 監(jiān)控 Docker的技巧Ubuntu上Grafana 監(jiān)控 Docker的技巧
安裝 Grafana 控制面板
最后,我們需要安裝 Grafana 儀表板并連接到 InfluxDB,你可以執(zhí)行下面的命令來設(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 來配置數(shù)據(jù)源. 訪問 http://你的 IP 地址:3000 或http://你的 IP 地址(如果你在前面做了端口映射的話):
-
用戶名 – admin
-
密碼 – admin
一旦我們安裝好了 Grafana,我們可以連接 InfluxDB。登錄到儀表盤并且點擊面板左上方角落的 Grafana 圖標(biāo)(那個火球)。點擊數(shù)據(jù)源來配置。
Ubuntu上Grafana 監(jiān)控 Docker的技巧Ubuntu上Grafana 監(jiān)控 Docker的技巧
現(xiàn)在你可以添加新的圖形到我們默認(rèn)的數(shù)據(jù)源 InfluxDB。
Ubuntu上Grafana 監(jiān)控 Docker的技巧Ubuntu上Grafana 監(jiān)控 Docker的技巧
我們可以通過在測量頁面編輯和調(diào)整我們的查詢以調(diào)整我們的圖形。
Ubuntu上Grafana 監(jiān)控 Docker的技巧Ubuntu上Grafana 監(jiān)控 Docker的技巧
Ubuntu上Grafana 監(jiān)控 Docker的技巧Ubuntu上Grafana 監(jiān)控 Docker的技巧
關(guān)于 Docker 監(jiān)控,你可用從此了解更多信息。 感謝你的閱讀。我希望你可以留下有價值的建議和評論。希望你有個美好的一天。
文章題目:Ubuntu中使用Grafana監(jiān)控Docker具體方法
標(biāo)題網(wǎng)址:http://fisionsoft.com.cn/article/coepojj.html


咨詢
建站咨詢
