一、開始之前
本文内容是使用Zabbix 5.0自帶的Nginx Template進行的監控和圖形展示。監控之後,繪制出的Nginx運作時狀态的圖形如下:

二、Nginx啟用狀态統計子產品
狀态統計子產品“ngx_http_stub_status_module”需要在編譯Nginx時,使用“
--with-http_stub_status_module
”。使用以下指令判斷子產品是否可用:
# /usr/local/nginx/sbin/nginx -V 2>&1 | grep -o 'with-http_stub_status_module'
with-http_stub_status_module
配置Nginx,開啟統計:
# cat /usr/local/nginx/conf/nginx.conf
···
server {
···
location = /nginx-status {
stub_status;
access_log off;
allow 127.0.0.1;
deny all;
}
}
重新加載Nginx:
# /usr/local/nginx/sbin/nginx -t
# /usr/local/nginx/sbin/nginx -s reload
測試:
# curl http://127.0.0.1/nginx-status
Active connections: 5
server accepts handled requests
672 672 3416
Reading: 0 Writing: 1 Waiting: 4
各字段的含義:
- Active connections:目前活躍的用戶端連接配接數,包括Waiting連接配接數;
- accepts:接受的用戶端連接配接總數;
- handled:已處理的連接配接總數。通常與“accepts”的值相同,除非達到某些資源限制,如“worker_connections”;
- requests:用戶端請求總數,一個用戶端連接配接可能包含多個請求;
- Reading:Nginx正在讀取請求标頭的目前連接配接數;
- Writing:Nginx正在将響應寫回給用戶端的目前連接配接數;
- Waiting:目前等待請求的空閑連接配接數。
三、Zabbix前端頁面連結模闆
在Zabbix前端頁面,點選“Configuration” -> “Templates”,找到名稱為“Template App Nginx by Zabbix agent”的模闆。
該模闆定義了三個重要的參數:
-
:Nginx位址,預設值是“localhost”;{$NGINX.STUB_STATUS.HOST}
-
:狀态統計路徑,預設值是“basic_status”;{$NGINX.STUB_STATUS.PATH}
-
:Nginx端口,預設值是“80”。{$NGINX.STUB_STATUS.PORT}
如果需要更改某個參數的值,需要點選模闆名稱,選擇“Macros(宏)”,見下圖:
将該模闆連結到對應的Nginx伺服器上,等待采集資料即可。
注意事項:
- 如果在Nginx配置檔案中,包含“server_tokens off;”,則該模闆無法正常擷取到Nginx版本号。
參考連結:https://www.zabbix.com/documentation/5.0/manual/config/templates_out_of_the_box/zabbix_agent