Prometheus + Grafana 实现监控功能总结
一個簡潔的博客網站:http://lss-coding.top,歡迎大家來訪
學習娛樂導航頁:http://miss123.top/
1. Prometheus 簡介
Prometheus 是近幾年比較火的開源監控框架,模塊間比較解耦,比如告警模塊、代理模塊等等都可以選擇性配置。服務端和客戶端都是開箱即用,不需要進行安裝。Prometheus 的上報客戶端分為不同語言的 SDK 和不同用途的 exporter 兩種,比如如果你想要監控機器狀態、mysql 性能等,有大量已經成熟的 exporter 來直接開箱使用,通過 http 通信來對服務端提供信息上報(server 去 pull 信息);而如果想要監控自己的業務狀態,那么針對各種語言都有官方或其他人寫好的 sdk 可供使用,都比較方便。Prometheus 是客戶端本地也會存儲監控數據,服務端定時來拉取想要的數據。Prometheus 界面是比較簡潔的,簡潔到只能算一個測試和配置平臺。可以搭配 Grafana 得到更加清晰的監控頁面。
Prometheus 作為一個中間點,Grafana 作為可視化展示,exporter 作為監控,exporter 將需要獲取的數據獲取并連接到 Prometheus,而 Prometheus 連接到 Grafana,直觀展示被監控者狀態;
2. Grafana 簡介
一個跨平臺的開源的度量分析和可視化工具,可以通過將采集的數據查詢然后可視化的展示,并及時通知。主要有以下六大特點:
簡單說:這是一個多用途的監控工具,同時通過郵件等方式進行有效的預警通知,豐富的直觀的可視化界面,多種數據源配置是它的優點。
3. 安裝 Prometheus
下載地址:https://gitee.com/lishisen123_admin/software/raw/master/prometheus/prometheus-2.7.2.linux-amd64.tar.gz
下載好之后上傳到服務器的 /opt/ 目錄下進行解壓操作
# 解壓 tar -zxvf prometheus-2.7.2.linux-amd64.tar.gz # 進入解壓目錄 cd prometheus-2.7.2.linux-amd64 # 運行 ./prometheus --config.file=prometheus.yml# 啟動后瀏覽器訪問 “ ip + :9090” ,如果出現可視化界面說明成功prometheus.yml 配置文件:后面在配置一些監控信息的時候需要用到這個配置文件
# my global config global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).# Alertmanager configuration alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files:# - "first_rules.yml"# - "second_rules.yml"# A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: 'prometheus'# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ['localhost:9090']分為 4 部分: 1. global:全局配置,其中 scrape_interval 表示抓取一次數據的間隔事件,evaluation_interval 表示進行告警規則檢測的間隔時間; 2. alerting:告警管理器(Alertmanager)的配置,目前還沒有安裝 Alertmanager; 3. rule_files:告警規則有哪些; 4. scrape_configs:抓取監控信息的目標,一個 job_name 就是一個目標,其中 targets 就是采集信息的 ip 和端口。這里默認監控了 Prometheus自己,可以通過修改這里來修改 Prometheus 的監控端口。Prometheus 的每個 exporter 都會是一個目標,它們可以上報不同的監控信息,比如機器狀態,或者 mysql 性能等等,不同語言 sdk 也會是一個目標,它們會上報你自定義的業務監控信息。4. 安裝 Grafana
下載地址:https://gitee.com/lishisen123_admin/software/raw/master/prometheus/grafana-6.0.0.linux-amd64.tar.gz
下載好之后上傳到服務器的 /opt/ 目錄下進行解壓操作
# 解壓 tar -zxvf grafana-6.0.0.linux-amd64.tar.gz # 進入解壓目錄 cd grafana-6.0.0/ # 進入 bin 目錄下執行下面命令更新插件 ./grafana-cli plugins install grafana-piechart-panel # 啟動 Grafana ./grafana-server web# 啟動后在瀏覽器輸入 “ ip + :3000 ” 進行訪問,管理員賬號密碼默認都是 admin/admin。首次登錄會提示修改管理員密碼,然后就可以登錄查看了5. 監控機器狀態
監控機器的運行狀態:CPU、磁盤、網絡等狀態
下載需要的監控采集工具:https://gitee.com/lishisen123_admin/software/raw/master/prometheus/node_exporter-0.17.0.linux-amd64.tar.gz
下載好之后上傳到服務器的 /opt/ 目錄下進行解壓運行操作
在 Grafana 中配置展示監控頁面
添加數據源
? 選擇 prometheus
? 填入名稱, http://ip + 9090 然后點擊下方 Save&Test 按鈕
? 然后點擊 Dashboards 按鈕
? 然后點擊左側加號 import
? 在 dashboard usrl or id 中輸入 8919
? 也可以自己選擇官方展示面板,鏈接: https://grafana.com/dashboards
? 點擊 import
6. 監控 Redis 訪問情況
然后在 Grafana 中配置面板的信息,與上面的步驟一樣
點擊左側加號 import 導入,填入 11835 這個是面板的id,在官網都能找到 https://grafana.com/dashboards
7. 監控 Nginx 訪問情況
? 在此使用的是 nginx1.18.0 版本,如遇到配置失敗可能是版本問題
下載模塊
配置 nginx 的監控需要兩個模塊:
-
nginx-module-vts:https://gitee.com/lishisen123_admin/software/raw/master/prometheus/nginx-module-vts.zip Nginx的監控模塊,能夠提供JSON格式的數據產出:
-
nginx-vts-exporter: https://gitee.com/lishisen123_admin/software/raw/master/prometheus/nginx-vts-exporter-0.10.3.linux-386.tar.gz 收集 Nginx 的監控數據,并給Prometheus 提供監控接口,默認端口號 9913
nginx-module-vts 模塊編譯
下載好之后上傳到服務器,然后在 nginx 編譯時添加 vts 模塊
配置信息:
-
vhost_traffic_status_filter_by_host on; 開啟此功能,在 Nginx 配置有多個 server_name 的情況下,會根據不同的 server_name 進行流量的統計,否則默認會把流量全部計算到第一個 server_name 上
-
在不想統計流量的 server 區域禁用 vhost_traffic_status 配置示例
假如 nginx 沒有規范配置 server_name 或者無需進行監控的 server 上,那么建議在此 vhost 上禁用統計監控功能。否則會出現 “127.0.0.1” hostname 等的域名監控信息。
然后在 Grafana 中配置面板信息
點擊加號 import 然后填入 Dashboard id: 2949
學習參考1:https://blog.csdn.net/qq_37128049/article/details/108143110
學習參考2:https://blog.csdn.net/weixin_41709748/article/details/88063548
學習參考3:https://www.jb51.net/article/230006.htm
總結
以上是生活随笔為你收集整理的Prometheus + Grafana 实现监控功能总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构与算法01:一张图概括【数据结构
- 下一篇: IDEA如何设置自己喜欢的背景图(超好看