本文介紹如何將Nginx類型組件接入可觀測監控 Prometheus 版。Nginx是一個高性能的開源Web服務器,支持反向代理、負載均衡和HTTP緩存等功能。可觀測監控 Prometheus 版支持采集Nginx相關請求數、字節數、響應時間等指標,以及統計Nginx服務所接收和處理的請求數量。可觀測監控 Prometheus 版提供開箱即用的專屬監控大盤,幫助管理員了解服務器的運行情況,進行服務器性能優化和故障排查。
背景信息
Nginx類型組件采集的Nginx指標請在ARMS控制臺的接入中心中查看。
前提條件
您已成功安裝并運行Nginx服務。
如果您需要開啟Nginx for Stub Status監控,請安裝ngx_http_stub_status_module模塊。
檢查狀態監控模塊ngx_http_stub_status_module是否已安裝。
nginx -V 2>&1 | grep -o with-http_stub_status_module
出現以下提示則表示已安裝ngx_http_stub_status_module模塊。
若未出現以上提示,則說明未安裝ngx_http_stub_status_module模塊,可執行以下命令安裝此模塊。
wget http://nginx.org/download/nginx-1.13.12.tar.gz tar xfz nginx-1.13.12.tar.gz cd nginx-1.13.12/ ./configure --with-http_stub_status_module make make install
啟用ngx_http_stub_status_module模塊查詢Nginx狀態。
location /nginx_status { stub_status on; allow 127.0.0.1; #only allow requests from localhost deny all; #deny all other hosts }
說明Location地址請嚴格命名為
nginx_status
。allow 127.0.0.1
和deny all
表示僅允許本地訪問。若需允許Nginx Exporter訪問,則可將這兩行代碼注釋,或者將127.0.0.1
設置為Nginx Exporter的IP地址。
重啟Nginx。
nginx -t nginx -s reload
可選:驗證ngx_http_stub_status_module模塊是否已成功啟動。
curl http://127.0.0.1/nginx_status
出現以下提示則表示ngx_http_stub_status_module模塊已成功啟動。
如果您需要開啟Nginx for Vts監控,請安裝nginx-module-vts模塊。
下載nginx-module-vts模塊。
說明git@github.com:vozlt/nginx-module-vts.git
編譯配置。
在nginx編譯時添加nginx-module-vts模塊。
--add-module=/path/to/nginx-module-vts
下載官方軟件包并編譯進nginx-module-vts模塊。
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_sysguard_module --add-module=nginx-module-vts
安裝nginx-module-vts模塊。
make && make install
Nginx配置。更改nginx.conf的配置,并添加監控接口。
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過濾。
vhost_traffic_status_filter_by_host on
說明開啟此功能,當Nginx配置有多個server_name的情況下,系統會根據不同的server_name進行流量的統計,否則默認會把流量全部計算到第一個server_name上。
若您不需要統計流量的server區域,可以執行如下命令禁用vhost_traffic_status。以下示例中的...部分是省略的內容。
server { ... vhost_traffic_status off; ... }
驗證nginx-module-vts模塊是否安裝成功。
curl http://127.0.0.1/status
接入Nginx
登錄ARMS控制臺,在左側導航欄單擊接入中心,然后單擊Nginx卡片。
配置接入參數。
選擇所屬環境類型。
容器服務環:監控目標在容器集群中運行
ECS(VPC):監控目標在ECS主機上運行
選擇容器服務集群或ECS實例。
配置信息。
容器服務環境
名稱
說明
示例值
接入名稱(非必填)
自定義。
nginxtest123
開啟 Nginx for Stub Status 監控
監控開關。
使用監控模塊Ngx_Http_Stub_Status_Module(一般內置在Nginx內部)進行數據采集,支持統計Nginx服務所接收和處理的請求數量。
說明打開此開關前,請確認已安裝ngx_http_stub_status_module模塊。
不涉及
開啟 Nginx for Vts 監控
監控開關。
使用監控模塊Nginx-Module-Vts(一般需自行集成)進行數據采集,支持Nginx相關請求數、字節數、響應時間等指標。
說明打開此開關前,請確認已安裝nginx-module-vts模塊。
不涉及
Nginx 服務域名
支持以下三類Nginx服務域名:
Nginx的集群內訪問地址
服務所處集群內網IP地址
服務所處公網的IPv4地址
Nginx的集群內訪問地址(例如:nginx-server.namespace)
Nginx 服務端口
Nginx服務端口。
80
Metric 采集間隔(單位/秒)
監控數據采集時間間隔,默認15s。
15
ECS(VPC)
名稱
說明
示例值
接入名稱(非必填)
自定義。
nginxtest321
開啟 Nginx for Stub Status 監控
監控開關。
使用監控模塊Ngx_Http_Stub_Status_Module(一般內置在Nginx內部)進行數據采集,支持統計Nginx服務所接收和處理的請求數量。
不涉及
開啟 Nginx for Vts 監控
監控開關。
使用監控模塊Nginx-Module-Vts(一般需自行集成)進行數據采集,支持Nginx相關請求數、字節數、響應時間等指標。
說明打開此開關前,請確認已安裝nginx-module-vts模塊。
不涉及
Nginx 服務域名
支持以下三類Nginx服務域名:
Nginx的集群內訪問地址
服務所處集群內網IP地址
服務所處公網的IPv4地址
Nginx的集群內訪問地址(例如:nginx-server.namespace)
Nginx 服務端口
Nginx服務端口。
80
Metric 采集間隔(單位/秒)
監控數據采集時間間隔,默認15s。
15
自定義標簽
通過自定義標簽向Prometheus收集的指標中添加自定義鍵值對標簽,便于在使用Grafana等工具時對這些指標進行細粒度的組織、查詢、監控和分析。更多信息,請參見VPC環境主機監控自定義標簽注入指標。
說明標簽名不能包含特殊字符,如短劃線(-)、半角句號(.)、百分號(%)等,這些字符在Prometheus中有特殊含義。
注入的標簽需要是Prometheus允許的有效的Key-Value標簽格式。
test1:aaa
查看監控信息
已接入的組件可單擊左側導航欄中的接入管理查看。單擊已接入組件卡片,在彈出的面板中可以查看Targets、指標、大盤、告警、服務發現配置、Exporter等信息。