基於telegraf+influxdb+grafana進行postgresql數據庫監控


前言

隨着公司postgresql數據庫被廣泛應用,尤其是最近多個項目在做性能測試的時候都是基於postgresql的數據庫,為了確定性能瓶頸是否會出現在數據庫中,數據庫監控也被我推上了日程。在網上找了一遍好像沒有特別好的監控工具,雖然推薦比較多的是pgwatch,但是部署比較麻煩,需要Linux環境,然而公司大部分都是Windows而且后期推廣也不是很方便,因此果斷放棄了。

最近在做一個服務器性能監控時發現telegraf+influxdb+grafana的組合比較不錯,然后去官網和github上查了一下發現telegraf可以對postgresql進行監控,瞬間驚喜萬分。下面簡單介紹一下監控postgresql的配置方法:

環境

首先去官網下載telegraf、influxdb和grafana:

telegraf: 是一個用 Go 編寫的代理程序,可收集系統和服務的統計數據,並寫入到 InfluxDB 數據庫。下載地址

influxdb:是一個用 Go 編寫的目前比較流行的時間序列數據庫。下載地址

grafana:是一個開箱即用的可視化工具,具有功能齊全的度量儀表盤和圖形編輯器,有靈活豐富的圖形化選項,可以混合多種風格,支持多個數據源特點。下載地址

三者之間的關系為:telegraf(監控數據收集)->influxdb(監控數據存儲)->(監控數據展示)

部署

本次描述的方法是在Windows環境下部署實施,如果需要在Linux下部署請參考grafana + influxdb + telegraf , 構建性能監控平台

1、influxdb部署方式

下載influxdb包后解壓,修改influxdb.conf配置文檔中的以下內容:

修改[data]下內容dir和wal-dir路徑為本地存儲路徑,如下圖所示:

之后設置[admin]下的配置參數如下即可:

保存配置文件后,在當前文件夾路徑下啟動cmd(在文件夾路徑內輸入cmd回車即可),在cmd窗口中輸入:influxd -config influxdb.conf回車,啟動influxdb數據庫。

在瀏覽器中輸入http://127.0.0.1:8083/查看是否顯示influxdb數據庫界面,如下圖所示:

出現該界面后influxdb部署完成。

2、telegraf部署方式

下載telegra包后解壓,修改telegraf.conf配置文檔中的以下內容:

##output##中urls=["influxdb服務地址:監聽端口"],database=“存儲監控數據的數據庫名稱”,如下圖所示:

之后在配置最下方加入如下內容進行postgresql監控配置:

 [[inputs.postgresql]]
  address = "postgres://postgres:postgres@localhost"          #"postgres://數據庫用戶:密碼@數據庫ip/指定的數據庫(可選)"
  ignored_databases = ["template0", "template1"]                 #忽略[]內的數據庫監控,不能與database同時使用
  #databases = ["test"]                                                           #只監控[]內數據庫,不能與ignored_database同時使用

配置完成后保存conf文件,並在當前文件夾路徑下啟動cmd(在文件夾路徑內輸入cmd回車即可),在cmd窗口中輸入:telegraf -config telegraf.conf啟動監聽

可在influxdb中查看是否生成telegraf數據庫及postgresql表單信息,如下圖所示:

相關postgresql監控內容參數意義可參考官方文檔

3、grafana部署方式

下載grafana部署包后解壓,雙擊\bin\grafana-server.exe,然后在瀏覽器中輸入:http://127.0.0.1:3000/,如下圖所示:

輸入用戶名和密碼,默認均為:admin,登錄成功后配置數據源,如下圖所示:

一般初始過程中會提示配置數據源,可能與本過程存在差異,但是不影響配置

此處在Data Sources中點擊“Add data source”添加influxdb數據源,選擇數據類型為influxdb,之后配置相關參數,如下圖所示:

配置完成后點擊“Save&Test”按鈕,提示如下信息:

連接成功並保存。切換到“Dashboards”->“New”界面

在新界面中添加Graph等展示圖,如下圖所示:

點擊新生成的graph界面的標題處,選擇“Edit”進行參數編輯,如下圖所示:

修改General中的Title為相關監控參數名

修改Metrics中的Panel Data Source為之前配置的telegraf,並選取展示數據,如下圖所示:

配置完成后可以看到展示結果,如下圖所示:

如果未顯示數據,可以設置右上角的展示時間范圍,如下圖所示:

到此為止一個最基本的postgresql讀取磁盤塊(blks_read)的監控配置完成,下面是一個簡單的系統及postgresql監控界面如下圖所示:

優化

為了讓監控框架的啟動方式更加簡潔,我這里進行了一下bat一鍵啟動,代碼如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM