Zabbix自定義模板監控Nginx狀態

1、配置Nginx允許通過web查看status

# 在Nginx配置文件中添加以下內容
location /nginx-status {
                stub_status on;
                access_log  off;
                allow 127.0.0.1;
                allow 1xx.1xx.1xx.8/29;
                deny all;
               }

2、利用shell腳本得到Nginx狀態的相關參數

vim /usr/local/zabbix/etc/nginx_status.sh
#!/bin/bash
BKUP_DATE=`/bin/date +%Y%m%d`
#LOG="/data/log/zabbix/webstatus.log"
HOST=192.168.1.106
PORT=80

ARGS=1
if [ $# -ne "$ARGS" ];then
    echo "Please input one arguement:"
fi

case $1 in
    active)
        result=`/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| grep 'Active' | awk '{print $NF}'`
            echo $result
            ;;
        reading)
        result=`/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| grep 'Reading' | awk '{print $2}'`
        echo $result
            ;;
    writing)
        result=`/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| grep 'Writing' | awk '{print $4}'`
        echo $result
            ;;
    waiting)
        result=`/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| grep 'Waiting' | awk '{print $6}'`
        echo $result
            ;;
    accepts)
        result=`/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| awk NR==3 | awk '{print $1}'`
        echo $result
            ;;
    handled)
        result=`/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| awk NR==3 | awk '{print $2}'`
        echo $result
            ;;
    requests)
        result=`/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| awk NR==3 | awk '{print $3}' ` 
        echo $result
            ;;
        *)
        echo "Usage:$0(active|reading|writing|waiting|accepts|handled|requests)"
        ;;
esac

3、其他步驟與自定義TCP監控模板相同,可參考一下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章