情景回顧
通過上一篇(三)Prometheus 部署節點 的學習,我們已經對 prometheus 做了一個節點的部署監控,本篇詳細講解 Prometheus + Grafana 做可視化的展示。
Grafana 基本介紹
Grafana 是近幾年興起的開源可視化工具,採用 Go 語言所編寫,天然支持 Prometheus,不僅如此,Grafana 還支持多種數據源,包括 Elasticsearch,InfluxDB,MySQL,OpenTSDB。
我們把 Prometheus 部署好之後,訪問並使用了它的 Web 界面,與此同時我們可以看到它的 Web 界面較爲簡陋,通常適合查看指標和呈現單個圖表,另外它支持的可視化圖標類型也有限,所以這個時候我們就需要爲 Prometheus 添加一個功能較爲全面的可視化平臺。
Grafana 基本術語
-
DataSource(數據源)
在上面我們說到了,Grafana 支持多種數據源,包括但不限於 Prometheus,而數據源通俗來講就是提供數據的對象,比如 Zabbix,比如 Prometheus -
Dashboard(儀表盤)
儀表盤就是一個呈現頁面,當我們添加好對應的數據源以後,這個時候就需要實現數據的可視化,在 Grafana 中,可以通過 Dashboard 來組織和管理數據可視化圖表 -
Row(行)
行是 Dashboard 的組成單元,一個 Dashboard 可以包含多個行,而一個行當中又可以展示一種或者多種信息的組合,比如負載狀態,內存使用率,磁盤使用率 -
Panel(面板)
面板我們可以理解爲是 Row 展示信息的方式,它支持表格(tables),列表(alert list),熱圖(heatmap),在Grafana 當中,所有的面板均以插件的形式進行使用 -
Query Editor(查詢編輯器)
查詢器的作用是指定獲取哪一部分的數據,這個有點類似於 SQL 語句,但我們如果添加的數據源爲 Prometheus,那實際上使用的爲 PromQL -
User(用戶)
用戶和我們平常登錄系統的用戶概念一樣,Grafana 中包含三種角色,分別爲 admin,editor,viewer,read only editor,在這其中,admin 的權限最高,它可以執行如何操作,editor 只能創建 DashBoard,viewer 只能查看DashBoard,read only editor可以修改 DashBoard,但不允許保存 -
Organization(組織)
在 Grafana 當中,DataSource 與 Dashboard 屬於一個組織,每個用戶可以擁有多個不同的組織,在不同的組織當中,可以爲不同的用戶賦予不同的權限需要知道的是,不同組織之間的數據源和儀表板都不同,每當在 Grafana 當中創建一個組織,就相當於開啓了一個全新的視圖,這時候所有的數據源與儀表盤等內容都要重新去添加和配置
Grafana 安裝部署
準備環境
# 這裏使用的是(二)Prometheus 安裝部署 完成時的環境
centos 7
prometheus 運行正常
[root@fp-21 ~]# getenforce
Permissive
[root@fp-21 ~]# ss -lntp |grep prometheus
LISTEN 0 128 :::9090 :::* users:(("prometheus",pid=10531,fd=6))
上傳安裝包
上傳安裝包,解壓,點擊下載
# 沒有本地安裝包,也可以進行下載
[root@fp-21 grafana]# wget -c https://dl.grafana.com/oss/release/grafana-6.6.1-1.x86_64.rpm
[root@fp-21 grafana]# yum -y install grafana-6.6.1-1.x86_64.rpm
修改配置文件
[root@fp-21 grafana]# cd /etc/grafana/
[root@fp-21 grafana]# cp grafana.ini grafana.ini.bak
[root@fp-21 grafana]# vim grafana.ini
[root@fp-21 grafana]# egrep -v "^#|^$|^;" grafana.ini
[paths]
# 定義數據存儲路徑
data = /var/lib/grafana
# 存儲數據的時間,默認24小時
temp_data_lifetime = 24h
# 定義日誌存儲路徑
logs = /var/log/grafana
# 定義插件存儲路徑
plugins = /var/lib/grafana/plugins
# 配置路徑
provisioning = conf/provisioning
[server]
# 訪問協議
protocol = http
# 監聽IP地址
http_addr = 10.0.0.21
# 監聽的端口
http_port = 3000
# 定義在瀏覽器中訪問Grafana的全路徑
root_url = %(protocol)s://%(domain)s:%(http_port)s/
serve_from_sub_path = false
# 是否記錄web請求日誌,默認爲關閉
router_logging = false
# 前端靜態文件的存儲路徑
static_root_path = public
enable_gzip = true
……
[users]
# 是否允許普通用戶登錄,默認爲允許
allow_sign_up = true
# 是否允許普通用戶創建組織,默認爲允許
allow_org_create = true
# 如果爲true,則自動把新增的用戶增加到id爲1的組織中,如果爲false,則新建用戶的時候會新增一個組織 ,默認爲true
auto_assign_org = true
# 默認的背景頁面,也可以選擇light
default_theme = dark
……
設置開機自啓
# 添加至開機自啓
[root@fp-21 grafana]# systemctl enable grafana-server.service
Created symlink from /etc/systemd/system/multi-user.target.wants/grafana-server.service to /usr/lib/systemd/system/grafana-server.service.
# 啓動服務
[root@fp-21 grafana]# systemctl start grafana-server.service
# 查看進程
[root@fp-21 grafana]# ps -ef |grep grafana
grafana 11837 1 2 14:38 ? 00:00:01 /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini --pidfile=/var/run/grafana/grafana-server.pid --packaging=rpm cfg:default.paths.logs=/var/log/grafana cfg:default.paths.data=/var/lib/grafana cfg:default.paths.plugins=/var/lib/grafana/plugins cfg:default.paths.provisioning=/etc/grafana/provisioning
root 11906 9739 0 14:38 pts/0 00:00:00 grep --color=auto grafana
# 查看端口
[root@fp-21 grafana]# ss -lntp |grep grafana
LISTEN 0 128 10.0.0.21:3000 *:* users:(("grafana-server",pid=11837,fd=6))
進行訪問
默認賬號:admin
默認密碼:admin
第一次登錄會讓你設置新密碼,也可以點擊跳過
Grafana添加主機
Grafana 添加模板
總結
只有注入思想的博客纔是好的博客