天天看點

Prometheus : 入門

Prometheus 是一個開源的監控系統。支援靈活的查詢語言(PromQL),采用 http 協定的 pull 模式拉取資料等特點使 Prometheus 即簡單易懂又功能強大。

多元度資料模型

靈活的查詢語言

不依賴分布式存儲,單個伺服器節點是自主的

通過 pull 方式采集時序資料

可以通過中間網關進行時序列資料推送

通過服務發現或者靜态配置來發現目标服務對象

支援多種界面展示方案,比如 grafana 等

Prometheus 由 server, client, push gateway, exporter, alertmanager 等核心元件構成。Prometheus server 主要用于抓取和存儲資料。Client libraries 可以用來連接配接 server 并進行查詢等操作。Push gateway  用于批量,短期的監控資料的彙總節點,主要用于業務資料彙報等。不同的 exporter 用于不同場景下的資料收集,如收集主機資訊的 node_exporter,收集 MongoDB 資訊的 MongoDB exporter 等等。下圖是 Prometheus 官方提供的架構圖:

Prometheus : 入門

從這個架構圖,我們可以看出它的運作邏輯大概是這樣的:

Prometheus server 定期從資料源拉取資料,然後将資料持久化到磁盤。Prometheus 可以配置 rules,然後定時查詢資料,當條件觸發的時候,會将 alert 推送到配置的 Alertmanager。Alertmanager 收到警告的時候,可以根據配置,聚合,去重,降噪,最後發送警告。同時還可以使用 API, Prometheus Console 或者 Grafana 查詢和聚合資料。

本文将介紹在 ubuntu 16.04 系統中安裝 Prometheus Server,并配置它從一台主機上拉取監控資訊,然後通過 Prometheus Server 提供的簡易 UI 查詢資料。

請從 Prometheus 官方下載下傳 linux 版的二進制壓縮包。注意在下載下傳前要選擇作業系統為 linux。

執行下面的指令把 prometheus server 安裝到 /usr/local/share/prometheus 目錄:

理論上來說這樣就算是安裝完成了,但是無論如何這都太簡陋了。因為每次啟動 Prometheus server 都需要手動執行指令:

這實在是太不友善了!應該把它配置成服務,用 systemd 來管理。

先建立一個名為 prometheus 的使用者:

把目錄 /usr/local/share/prometheus/ 的所有者設定為 prometheus 使用者:

然後建立檔案 /etc/systemd/system/prometheus.service,内容如下:

好了,現在可以通過 systemd 來控制 Prometheus 服務了,先啟動服務:

再把服務配置為開機時啟動:

檢查一下服務的狀态:

Prometheus : 入門

到此為止 Prometheus Server 已經開始運作了。接下來我們就可以收集資料了。

資料收集的任務由不同的 exporter 來完成,如果要收集 linux 主機的資訊,可以使用 node exporter。然後由 Prometheus Server 從 node exporter 上拉取資訊。接下來我們介紹如何安裝并配置 node exporter。

請從 Prometheus 官方下載下傳 node exporter 的二進制壓縮包。執行下面的指令把 node exporter 安裝到 /usr/local/share/ 目錄:

同樣的我們把 node exporter 也配置成通過 systemd 管理。建立檔案 /etc/systemd/system/node-exporter.service,内容如下:

執行下面的指令設定為開機啟動并啟動服務:

node exporter 預設監聽 9100 端口,讓我們檢查一下端口的監聽情況:

Prometheus : 入門

Node exporter 已經可以收集主機上的資訊了,接下來我們還需要配置 Prometheus Server 從 node exporter 那裡拉取資料。

Prometheus Server 可以從不同的 exporter 上拉取資料,對于上面的 node exporter 我們可以利用 Prometheus 的 static_configs 來拉取 node exporter 的資料。編輯 Prometheus server 的配置檔案:

在 scrape_configs 中添加一個 名稱為 node 的 static_configs:

注意,要把上面的 IP 位址替換為運作 node exporter 的主機的 IP。

Prometheus : 入門

儲存檔案然後重新開機 prometheus 服務!重新開機後 prometheus 服務會每隔 15s 從 node exporter 上拉取一次資料。

Prometheus Server 提供了簡易的 WebUI 可以進資料查詢并展示,它預設監聽的端口為 9090。接下來我們進行一次簡單的查詢來驗證本文安裝配置的系統。

在浏覽器中通路 Prometheus Server 的 9090 端口:

Prometheus : 入門

在下拉菜單中選擇 "node_memory_Buffers",然後點選 "Execute" 按鈕:

Prometheus : 入門

查詢出來的結果略微有些粗犷,連機關都沒帶。請選擇 "Graph" 标簽頁:

Prometheus : 入門

通過圖表檢視查詢結果就好多了!

Prometheus 是當下比較流行的開源監控工具,這裡隻是簡單的介紹了安裝過程及一個最基本的用例。但是不難看出 Prometheus 雖然支援靈活的查詢語言,但是自身隻支援簡單的展示能力。如果要友好的展示 Prometheus 的查詢結果,還需要使用更專業的展示工具 Grafana。

作者:sparkdev

出處:http://www.cnblogs.com/sparkdev/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。

Ops

繼續閱讀