原理:zabbix監(jiān)控nginx是根據nginx的Stub Status模塊,抓取Stub Status提供nginx的數據,然后拆分
首先要檢查一下nginx 是否安裝http_stub_status_module
rpm安裝的用以下命令檢查
- nginx -V
源碼安裝的用以下命令檢查
- /usr/local/nginx/sbin/nginx -V
我這里是rpm安裝的,請看圖
如果沒有安裝,網上找一下nginx平滑添加模塊
nginx添加配置
- vi /usr/local/nginx/conf/nginx.conf
- location /nginx_status
- {
- stub_status on;
- access_log off;
- allow 127.0.0.1;
- allow 192.168.171.22; #(zabbix服務器的IP地址,一般是內網地址,當然也可以不加)
- deny all;
- }
把上面的代碼放帶可以ip訪問的server里
我的nginx直接有這個代碼不用修改
用ip訪問一下
http://192.168.171.22/nginx_status
看我的訪問結果
解釋一下上面的結果
Active connections: 2 #對后端發(fā)起的活動連接數
server accepts #nginx 總共處理了23個連接
handled #成功創(chuàng)建了23次握手
requests #總共處理了120請求
Reading:0 #nginx讀取客戶端的header數
Writing: 1 #nginx 返回給客戶端的header數
Waiting: 1 #nginx 請求處理完成,正在等待下一請求指令的連接
腳本的內容就是訪問http://192.168.171.22/nginx_status的結果拆分
腳本內容我共享出來
nginx_status.sh
這個腳本我放到了/etc/zabbix/scripts/目錄下
放到agent的配置目錄下,也可以放到agent配置文件里
我放到/etc/zabbix/zabbix_agentd.d目錄里(推薦)
也可以放到 /etc/zabbix/zabbix_agentd.conf
在服務端測試一下
- zabbix_get -s 192.168.171.22 -k custom.nginx.connections.waiting
發(fā)現ZBX_NOTSUPPORTED: Unsupported item key.的錯誤
打開
vi /etc/zabbix/zabbix_agentd.conf
把參數UnsafeUserParameters修改成1
UnsafeUserParameters=1
重啟一下agent服務器
- service zabbix-agent restart
在執(zhí)行
- zabbix_get -s 192.168.171.22 -k custom.nginx.connections.waiting
發(fā)現
sh: /etc/zabbix/scripts/nginx_status.sh: 權限不夠
- chmod 755 /etc/zabbix/scripts/nginx_status.sh
在測試一下就成功了
然后使用這個模板
監(jiān)控圖
如果不清楚請加群
QQ交流群:136351212如無特別說明,本站文章皆為原創(chuàng),若要轉載,務必請注明以下原文信息:
轉載保留版權:小松博客? zabbix 監(jiān)控nginx菜鳥版
本文鏈接地址:http://www.phpsong.com/2063.html