Menu
快讀
  • 旅遊
  • 生活
    • 美食
    • 寵物
    • 養生
    • 親子
  • 娛樂
    • 動漫
  • 時尚
  • 社會
  • 探索
  • 故事
  • 科技
  • 軍事
  • 国际
快讀

使用nginx-module-vts監控各虛擬主機的流量

2020 年 1 月 7 日 91donkey

一、前言

由于所有業務只有一個公網IP入口,無法統計到每個業務的流量帶寬,好在nginx上通過域名進行業務區分,可以借助nginx-module-vts模塊來實現需求。

本文將主要用到以下幾個模塊和工具:

nginx-module-vts: Nginx virtual host traffic status module,nginx的監控模塊,能夠提供json、html、prometheus格式的數據産出。

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對時序數據進行查詢和聚合。

Grafana: 可視化監控數據展示工具

二、安裝nginx-module-vts

2.1、下載並編譯ngx-module-vts模塊

shell> git clone git://github.com/vozlt/nginx-module-vts.git
# 編譯nginx時添加監控組件nginx-module-vts,其他nginx安裝過程的內容詳見《源碼安裝openresty》,這裏不在重複說明。
shell> ./configure --add-module=/usr/local/src/nginx-module-vts

2.2、編輯nginx.conf配置文件

# 在 http 和 server 塊中加入如下信息
http {
 vhost_traffic_status_zone;
 ...
 server {
 ...
 location /status {
 vhost_traffic_status_display;
 vhost_traffic_status_display_format html;
 }
 }
}

2.3、在浏覽器輸入 “IP:80/status” 打開監控頁面

使用nginx-module-vts監控各虛擬主機的流量

三、安裝nginx-vts-exporter

注:nginx-module-vts 模塊從0.1.17+版本之後原生支持 prometheus 數據格式,可跳過 nginx-vts-exporter 的安裝。

3.1、下載安裝

shell> wget https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
shell> tar zxvf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz -C /opt/prometheus/

3.2、啓動服務

shell> /opt/prometheus/nginx-vts-exporter-0.10.3.linux-amd64/nginx-vts-exporter -nginx.scrape_timeout 10 -nginx.scrape_uri http://{IP}/status/format/json

3.3、配置systemd服務

shell> cat > /etc/systemd/system/nginx_vts_exporter.service << EOF
 [Unit]
Description=nginx_exporter
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/server/prometheus/nginx-vts-exporter-0.10.3.linux-amd64/nginx-vts-exporter -nginx.scrape_uri=https://{IP}/status/format/json
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
# 啓動並檢查服務狀態
shell> systemctl start nginx-vts-exporter.service
shell> systemctl status nginx-vts-exporter.service

3.4、修改prometheus.yml

# nginx-vts-exporter 默認的抓取地址爲http://{IP}:9913/metrics
vim /server/prometheus/prometheus.yml
 - job_name: nginx
 static_configs:
 - targets: ['10.20.73.71:9913']
 labels:
 instance: 91donkey-web01

3.5、重啓prometheus服務

shell> systemctl restart prometheus

四、配置 grafana

4.1、導入nginx vts模板

根據采集源的不同,選用不同的 grafana dashboard 模板

使用nginx-module-vts監控各虛擬主機的流量

4.2、訪問 Dashboards

使用nginx-module-vts監控各虛擬主機的流量

作者:龍龍小寶

原文:https://www.cnblogs.com/91donkey/p/11643558.html

相關文章:

  • Tendermint Core Golang應用開發教程「含源代碼」
  • 如何加密你的 Python 代碼
  • 口罩出口被扣?CE認證無效?CE認證水到底有多深?(轉)
  • 每日新聞播報(December 29)
  • 國立大學(NUS)碩士申請及新生入學全過程
  • 4月招聘 | 誰說裁員大潮引發就業寒冬?!新加坡25259個工作崗位緊急招人~
科技

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

©2025 快讀 | 服務協議 | DMCA | 聯繫我們