Zabbix 監(jiān)控Nginx服務(wù)需要通過(guò)Nginx Status模塊進(jìn)行監(jiān)控庭呜。
一澎羞、 打開(kāi)Nginx配置文件 /etc/nginx/conf.d/default.conf在Server標(biāo)簽內(nèi)添加以下內(nèi)容:
[root@centos7 ~]# vim /etc/nginx/conf.d/default.conf
location /nginx_status {
stub_status on;
allow 127.0.0.1;
deny all;
}
###重啟Nginx服務(wù)
[root@centos7 ~]# systemctl restart nginx
###獲取Nginx_status狀態(tài)
[root@centos7 scripts]# curl http://127.0.0.1:80/nginx_status
Active connections: 1
server accepts handled requests
10 10 10
Reading: 0 Writing: 1 Waiting: 0
狀態(tài)信息解釋:
Active connections :表示 Nginx 正在處理的活動(dòng)連接數(shù)有多少個(gè)
server :表示 Nginx 啟動(dòng)到現(xiàn)在共處理了多少個(gè)連接
accepts :表示 Nginx 啟動(dòng)到現(xiàn)在共成功創(chuàng)建了多少次握手
handled requests : 表示總共處理了多少次請(qǐng)求
Reading :表示 Nginx 讀取到客戶端的 Header 信息數(shù)
Writing :表示 Nginx 返回給客戶端的 Header 信息數(shù)
Waiting :表示 Nginx 已經(jīng)處理完正在等候下一次請(qǐng)求指令的駐留連接數(shù)
在開(kāi)啟 keep-alive 的情況下,Waiting = Active connections - (Reading + Writing)
二悬钳、編寫(xiě)監(jiān)控Nginx_statsu模塊腳本
[root@centos7 scripts]# vim /etc/zabbix/scripts/nginx_status.sh
[root@centos7 scripts]# cat /etc/zabbix/scripts/nginx_status.sh
#!/bin/sh
#script to fetch nginx status for tribily monitoring systems
HOST=127.0.0.1
PORT="80"
# Functions to return nginx status
function active {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
/usr/bin/curl "http://$HOST:$PORT/nginx_status" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
# Run the requested function
$1
###腳本添加執(zhí)行權(quán)限
[root@centos7 scripts]# chmod +x nginx_status.sh
###測(cè)試腳本
[root@centos7 scripts]# /bin/sh /etc/zabbix/scripts/nginx_status.sh active
1
三逻杖、配置zabbix客戶端配置文件/etc/zabbix/zabbix_agentd.conf自定義腳本健值
[root@centos7 zabbix]# vim /etc/zabbix/zabbix_agentd.conf
EnableRemoteCommands=1 ###允許zabbix_get命令遠(yuǎn)程執(zhí)行健值測(cè)試圈膏,1允許践盼,0禁止
Server=10.10.10.10 ###填寫(xiě)zabbix服務(wù)器IP或DNS(默認(rèn)被動(dòng)模式)
ServerActive=10.10.10.10 ###填寫(xiě)zabbix服務(wù)器IP或DNS(主動(dòng)模式)
Hostname=centos7 ###填寫(xiě)zabbix客戶端計(jì)算機(jī)名稱
UnsafeUserParameters=1 ###允許執(zhí)行自定義健值,1允許宾巍,0禁止
UserParameter=nginx.status[*],/etc/zabbix/scripts/nginx_status.sh $1 ###自定義健值
###重啟zabbix-agent客戶端
[root@centos7 zabbix]# systemctl restart zabbix-agent
四咕幻、zabbix 服務(wù)端使用zabbix_get測(cè)試獲取數(shù)據(jù)
[root@zabbix ~]# zabbix_get -s 10.10.10.20 -k nginx.status[active]
1
五、zabbix 服務(wù)端配置監(jiān)控Nginx (此處省略顶霞,基本都是圖形操作)