記錄一下使用zabbix監控nginx狀態,關於這方面的網上大把大把的。
nginx
操做環境版本後端
zabbix-agent:3.0.3bash
zabbix-server:3.0.3curl
一、修改nginx配置文件,內容示例以下
ide
# sed -n '13,18p' default.conf location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; }
注:只容許127.0.0.1,拒絕其餘便可url
二、nginx監控腳本內容以下spa
# cat nginx_status.sh #!/bin/bash #check nginx status ip=127.0.0.1 port=80 #echo $ip:$port function active() { /usr/bin/curl http://$ip:$port/nginx_status 2>/dev/null|grep "Active"|awk '{print $NF}' } function reading() { /usr/bin/curl http://$ip:$port/nginx_status 2>/dev/null|grep "Reading"|awk '{print $2}' } function writing() { /usr/bin/curl http://$ip:$port/nginx_status 2>/dev/null|grep "Writing"|awk '{print $4}' } function waiting() { /usr/bin/curl http://$ip:$port/nginx_status 2>/dev/null|grep "Waiting"|awk '{print $6}' } function accepts() { /usr/bin/curl http://$ip:$port/nginx_status 2>/dev/null|awk 'NR==3{print $1}' } function handled() { /usr/bin/curl http://$ip:$port/nginx_status 2>/dev/null|awk 'NR==3{print $2}' } function requests(){ /usr/bin/curl http://$ip:$port/nginx_status 2>/dev/null|awk 'NR==3{print $3}' } case $1 in active) active ;; reading) reading ;; writing) writing ;; waiting) waiting ;; accepts) accepts ;; handled) handled ;; requests) requests ;; *) exit 1 ;; esac
賦予執行權限便可chmod +x nginx_status.sh 3d
三、userparameter配置文件rest
# cat userparameter_nginx.conf UserParameter=nginx[*],/bin/bash /etc/zabbix/scripts/nginx_status.sh $1
四、修改zabbix-agentd配置文件,而後重啓服務便可。吧UnsafeUserParameters修改成1便可。orm
# grep -i unsafe zabbix_agentd.conf ### Option: UnsafeUserParameters UnsafeUserParameters=1
# systemctl restart zabbix-agent.service
五、導入模板,而後在相應的主機上鍊接此模板便可
稍等片刻能夠看到已經有數據顯示了。。。
nginx Status 說明:
Activeconnections:對後端發起的活動鏈接數;
server accepts 7520:nginx 總共處理了7520個鏈接;
handled:成功建立了7520次握手;
requests:總共處理了7522請求。
Reading:讀取客戶端的鏈接數
Writing: 響應數據到客戶端的數量
Waiting: 開啓 keep-alive 的狀況下,這個值等於 active – (reading+writing), 意思就是 Nginx 已經處理完正在等候下一次請求指令的駐留鏈接.