日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Prometheus + Grafana 实现监控功能总结

發布時間:2024/3/13 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 簡介

一個跨平臺的開源的度量分析和可視化工具,可以通過將采集的數據查詢然后可視化的展示,并及時通知。主要有以下六大特點:

  • 展示方式:快速靈活的客戶端圖標,面板插件有許多不同方式的可視化指標和日志,官方庫中具有豐富的儀表盤插件,比如熱圖、折線圖、圖標等多種展示方式;
  • 數據源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch 和 KairosDB 等;
  • 通知提醒:以可視方式定義最重要指標的警報規則,Grafana 將不斷計算并發送通知,在數據達到閾值時通過 Slack、PagerDuty 等獲得通知;
  • 混合展示:在同一圖表中混合使用不同的數據源,可以基于每個查詢指定數據源,甚至自定義數據源;
  • 注釋:使用來自不同數據源的豐富事件注釋圖表,將鼠標懸停在時間上會顯示完整的事件元數據和標記;
  • 過濾器:Ad-hoc 過濾器允許動態創建新的鍵/值過濾器,這些過濾器會自動應用與使用該數據源的所有查詢。
  • 簡單說:這是一個多用途的監控工具,同時通過郵件等方式進行有效的預警通知,豐富的直觀的可視化界面,多種數據源配置是它的優點。

    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/ 目錄下進行解壓運行操作

  • # 解壓 tar -zxvf node_exporter-0.17.0.linux-amd64.tar.gz # 進入目錄 cd node_exporter-0.17.0.linux-amd64/ # 運行監控采集服務 ./node_exporter # 運行之后可以在瀏覽器通過訪問 “ ip + :9100/metrics ” 訪問,有內容則表示成功

  • 修改配置文件
  • # 進入 prometheus 目錄中修改 prometheus.yml 配置文件 cd /opt/prometheus-2.7.2.linux-amd64/ # vim 編輯配置文件 vim prometheus.yml # 添加以下內容- job_name: 'server'static_configs:- targets: ['localhost:9100']# 添加完內容后重啟 ./prometheus

  • 在 Grafana 中配置展示監控頁面

    添加數據源

  • ? 選擇 prometheus

    ? 填入名稱, http://ip + 9090 然后點擊下方 Save&Test 按鈕

    ? 然后點擊 Dashboards 按鈕

    ? 然后點擊左側加號 import

    ? 在 dashboard usrl or id 中輸入 8919

    ? 也可以自己選擇官方展示面板,鏈接: https://grafana.com/dashboards

    ? 點擊 import

    6. 監控 Redis 訪問情況

  • 下載需要的監控采集工具:https://gitee.com/lishisen123_admin/software/raw/master/prometheus/redis_exporter-v1.0.3.linux-amd64.tar.gz
  • 下載好之后上傳到服務器的 /opt/ 目錄下進行解壓運行操作
  • # 解壓 tar -zxvf redis_exporter-v1.0.3.linux-amd64.tar.gz # 進入目錄 cd redis_exporter-v1.0.3.linux-amd64/ # 運行監控采集服務 ./redis_exporter redis# 在瀏覽器中訪問 “ ip + :9121/metrics ” 可以看到信息就是啟動成功了
  • 修改 prometheus 的配置文件
  • # 在下面加上如下內容 - job_name: 'redis'static_configs:- targets: ['localhost:9121'] # 添加完內容后重啟 ./prometheus
  • 然后在 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 模塊

  • # 進入 nginx 的解壓目錄(有 configure 的目錄) cd /usr/local/nginx-1.18.0 # 執行下面命令進行編譯 ./configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=/opt/nginx-module-vts make # 注意是make 不是makeinstall 否則會被覆蓋 # 替換啟動的二進制文件 mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak cp ./objs/nginx /usr/local/nginx/sbin/ pkill -9 nginx ## 關閉nginx ./usr/local/nginx/sbin/nginx ## 啟動nginx
  • 在 nginx 的配置文件中添加如下配置
  • http {...vhost_traffic_status_zone; vhost_traffic_status_filter_by_host on;...server {... location /status {vhost_traffic_status_display;vhost_traffic_status_display_format html;} }

    配置信息:

    • vhost_traffic_status_filter_by_host on; 開啟此功能,在 Nginx 配置有多個 server_name 的情況下,會根據不同的 server_name 進行流量的統計,否則默認會把流量全部計算到第一個 server_name 上

    • 在不想統計流量的 server 區域禁用 vhost_traffic_status 配置示例

    server{vhost_traffic_status off; }

    假如 nginx 沒有規范配置 server_name 或者無需進行監控的 server 上,那么建議在此 vhost 上禁用統計監控功能。否則會出現 “127.0.0.1” hostname 等的域名監控信息。

  • 配置完成后再瀏覽器訪問 “ ip + /status ” 可以看到一下信息
  • 使用 nginx-vts-exporter 收集 nginx 性能指標的 JSON 格式數據,并匯總后暴露監控接口給 Prometheus
  • # 解壓 tar -zxvf nginx-vts-exporter-0.10.3.linux-386.tar.gz # 進入解壓目錄 cd nginx-vts-exporter-0.10.3.linux-386 # 啟動 ./nginx-vts-exporter -nginx.scrape_uri http://ip/status/format/json & # 瀏覽器訪問地址 “ ip + 9913 ” 結果如圖啟動成功

  • 修改 prometheus 的配置文件,添加以下內容
  • - job_name: 'nginx'static_configs:- targets: ['ip:9913']# 重啟 prometheus ./prometheus --config.file=prometheus.yml # 在 9090 端口下可以看到我們配置的一些節點的信息

  • 然后在 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 实现监控功能总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。