nginx upstream配置_Prometheus快速监控Nginx
生活随笔
收集整理的這篇文章主要介紹了
nginx upstream配置_Prometheus快速监控Nginx
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
需求:Prometheus 監控Nginx主要用到以下三個模塊:
- nginx-module-vts:Nginx virtual host traffic status module,Nginx的監控模塊,能夠提供JSON格式的數據產出。
- nginx-vts-exporter:Simple server that scrapes Nginx vts stats and exports them via HTTP for Prometheus consumption。主要用于收集Nginx的監控數據,并給Prometheus提供監控接口,默認端口號9913。
- Prometheus:監控Nginx-vts-exporter提供的Nginx數據,并存儲在時序數據庫中,可以使用PromQL對時序數據進行查詢和聚合。
一、初始化
yum install -y gcc gcc-c++ curl wget bzip2yum install -y pcre pcre-devel openssl openssl-devel zlib zlib-develcd /optwget https://github.com/jemalloc/jemalloc/releases/download/5.1.0/jemalloc-5.1.0.tar.bz2tar -jxvf jemalloc-5.1.0.tar.bz2cd jemalloc-5.1.0./configure --prefix=/usr/local/jemallocmake -j 2 &>/dev/null && make install &>/dev/nullecho "/usr/local/jemalloc/lib" >/etc/ld.so.conf.d/jemalloc.confldconfigln -s /usr/local/jemalloc/lib/libjemalloc.so /usr/lib64/libjemalloc.soln -s /usr/local/jemalloc/lib/libjemalloc.so.2 /usr/lib64/libjemalloc.so.2二、安裝nginx-module-vts
- 1、安裝腳本
- 2、配置nginx
- 3、打開vhost過濾:
- 4、在不想統計流量的server區域禁用vhosttrafficstatus,配置示例:
- 5、安裝完vts模塊后,可以通過nginx status接口進行監控數據的查看
三、安裝nginx-vts-exporter
wget https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gztar zxvf nginx-vts-exporter-0.10.3.linux-amd64.tar.gzmv nginx-vts-exporter-0.10.3.linux-amd64 /usr/local/exporter/nginx-vts-exportercd /usr/local/exporter/nohup ./nginx-vts-exporter -nginx.scrape_timeout 10 -nginx.scrape_uri http://114.67.116.119/status/format/json- 啟動日志
備注:推薦exporter和nginx安裝在同一臺機器上,如果不在同一臺主機,把scrapeuri改為nginx主機的地址。 nginxvts_exporter的默認端口號:9913,對外暴露監控接口http://xxx:9913/metrics.
- 展示:http://xxx:9913/metrics
四、nginx-vts-exporte 接入 promethueus.yml
修改prometheus.yml配置文件 vim /usr/local/prometheus/promethueus.yml
- job_name: nginx static_configs: - targets: ['114.67.116.119:9913'] labels: instance: nginx-testnohup /usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml &
圖形展示
五、granfana展示
在grafana數據源導入2949的模板 (https://grafana.com/dashboards/2949)
常用監控匯總表達式
DomainName對應nginx conf里的server_name,這里可以根據不同的server_name和upstream分別進行qps、2xx/3xx/4xx/5xx的狀態碼監控,另外也可以監控nginx每臺后端server的qps和后端接口響應時間。如果不需要區分server_name,可以把表達式里的$DomainName改為星號,“*****”代表所有;# 1. 求Nginx的QPS:sum(irate(nginx_server_requests{code="total",host=~"$DomainName"}[5m]))sum(irate(nginx_server_requests{instance=~"$Instance", code!="total"}[5m])) by (code)# 2. 求4xx萬分率(5xx類似,code=“5xx”):(sum(irate(nginx_server_requests{code="4xx",host=~"$DomainName"}[5m])) / sum(irate(nginx_server_requests{code="total",host=~"$DomainName"}[5m]))) * 10000# 3. 求upstream的QPS(示例求group1的qps):sum(irate(nginx_upstream_requests{code="total",upstream="group1"}[5m]))# 4. 求upstream后端server的響應時間(示例求group1的后端響應時間):nginx_upstream_responseMsec{upstream=“group1”}nginx_upstream_responseMsec{backend="192.168.x.xxx:8803",instance="nginx-web-1",job="nginx",upstream="UPSTREAM_NAME"}總結
以上是生活随笔為你收集整理的nginx upstream配置_Prometheus快速监控Nginx的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 种植牙一颗的价钱
- 下一篇: bios文件查看工具_何必花钱升级显卡!