文章首發於【陳樹義】公眾號,點擊跳轉到原文:https://mp.weixin.qq.com/s/56S290p4j9KROB5uGRcGkQ
Prometheus UI 提供了快速驗證 PromQL 以及臨時可視化支持的能力,但其可視化能力卻比較弱。一般情況下,我們都用 Grafana 來實現對 Prometheus 的可視化實現。
什么是Grafana
Grafana 是一個用來展示各種各樣數據的開源軟件,在其官網上用這么一段話來說明其作用。
Used by thousands of companies to monitor everything from infrastructure, applications, and power plants to beehives.
數以萬計的公司用 Grafana 來監控基礎設施、應用。
從官網上可以看到目前有 Paypal、ebay 等公司已經在使用 Prometheus 了。
快速入門
我們只需要在 Grafana 上配置一個 Prometheus 的數據源。接着我們就可以配置各種圖表,Grafana 就會自動去 Prometheus 拉取數據進行展示。
啟動服務器
首先我們從 https://grafana.com/grafana/download 下載對應系統的安裝包,下載解壓后用下面的命令啟動:
./grafana-server web
文章首發於【陳樹義】公眾號,點擊跳轉到原文:https://mp.weixin.qq.com/s/56S290p4j9KROB5uGRcGkQ
正常啟動會輸出如下信息:
INFO[07-18|17:28:12] App mode production logger=settings
INFO[07-18|17:28:12] Connecting to DB logger=sqlstore dbtype=sqlite3
INFO[07-18|17:28:12] Starting DB migration logger=migrator
INFO[07-18|17:28:12] Starting plugin search logger=plugins
INFO[07-18|17:28:12] Registering plugin logger=plugins name="Direct Input"
INFO[07-18|17:28:12] HTTP Server Listen logger=http.server address=[::]:3000 protocol=http subUrl= socket=
Grafana 默認使用 3000 端口啟動,我們訪問:http://localhost:3000 查看對應頁面。
默認的賬號密碼是 admin/admin,登陸進去后是這樣的。
配置數據源
之后我們去設置菜單添加 Prometheus 數據源:
打開如下圖所示:
之后輸入對應的名字和 URL 地址即可:
這里我們添加了一個名為「Prometheus-1」的數據源,數據獲取地址為:http://localhost:9090。
配置面板
在 Grafana 中有「Dashboard」和「Panel」的概念,Dashboard 可以理解成「看板」,而 Panel 可以理解成「圖表,一個看看板中包含了無數個圖表。例如下圖就是一個看板(Dashboard):
里面一個個小的圖表,就是一個個小的圖表(Panel)。
點擊「+號」-> 「Dashboard」就可以添加一個大面板。
添加后的面板是空白的,下面我們創建一個圖標來顯示 CPU 的使用率變化情況。點擊右上角的創建圖表按鈕:
點擊創建圖表會進入如下界面:
我們設置好數據源、Metrics數據、圖表名稱,之后點擊右上角的 Apply 按鈕即可。保存之后我們就可以在面板中看到機器的 CPU 使用率情況了。
郵件通道配置
如果我們要使用 Prometheus 進行監控告警,那么 Grafana 也能夠實現。
Grafana 的告警渠道有很多,這里我們以郵件告警為例。
首先需要在 Grafana 的配置文件,默認是 conf/default.ini 文件。
在 default.ini 文件中增加如下配置:
[smtp]
enabled = true
host = smtp.exmail.qq.com:465
user = xxx@qq.com
# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
password = xxxx
cert_file =
key_file =
skip_verify = false
from_address = xxx@qq.com //必須與上面的 user 屬性一致
from_name = Grafana
ehlo_identity =
host 這里是你郵箱所在運營商的 SMTP 服務器。user 屬性是發件人的郵箱地址。password 是發件人郵箱的登陸密碼。from_address 與 user 屬性一樣,都是發件人的郵箱地址。from_name 是發件人的顯示名稱。
修改完成之后,保存配置文件,之后重啟 Grafana。接着通過 Alerting 菜單添加告警渠道。
之后填寫「提醒通道」名稱、類型,之后點擊「Send Test」按鈕測試一下。
正常的話,會受到一封測試郵件,這表明郵件配置已經完成。
此外我們還可以配置 AlertManager、釘釘等其他告警方式,配置的流程都大同小異,這里不再贅述。
文章首發於【陳樹義】公眾號,點擊跳轉到原文:https://mp.weixin.qq.com/s/56S290p4j9KROB5uGRcGkQ
指標告警配置
配置好郵件發送通道信息后,Grafana 就具備了發送郵件的能力。但是什么時候發送郵件呢?這就需要我們進行指標告警配置了。
我們需要在圖表面板設置中設置相關報警信息:
這里我配置了 1 分鍾內值低於 1,那么就報警,即:1 分鍾內掛機了,那么就報警。隨后我手動關掉了 NodeExport 節點,過了幾分鍾我就收到了報警郵件。
更多關於圖表的設置,將在后續文章專門講述,這里不深入講解。
Grafana模板中心
對於線上監控來講,如果我們每個面板都需要自己從零開始,那么就太累了。事實上,我們用到的許多監控信息都是類似的。因此 Grafana官網 - Dashboards 模塊 提供了下載 Dashboard 模板的功能。
Dashboards 里有許多各種類型的 Dashboard 面板,例如 JVM 監控、MySQL 數據庫監控等。你只需找到合適自己的監控面板,之后根據 ID 添加即可。
例如我找到的這個這個面板包含了各種常見的資源監控,例如:CPU、內存等。
你只需要復制它的 ID 並使用 Grafana 的 import 功能導入即可,如下圖所示:
最終的效果如圖所示: