zabbix監(jiān)控nginx

1,確定監(jiān)控內容

1)配置nginx

在編譯nginx時加上--with-http_stub_status_module選項

編輯配置文件

[root@VM_0_2_centos ~]# vim /usr/local/nginx/conf/nginx.conf

location /status {

? ? ? ? ? ? stub_status on;

? ? ? ? }

2)查看

[root@VM_0_2_centos ~]# curl http://127.0.0.1/status

Active connections: 1

server accepts handled requests

42257 42257 43019

Reading: 0 Writing: 1 Waiting: 0

Active connections:當前活動的連接數量。

Accepts:已經接受客戶端的連接總數量。

Handled:已經處理客戶端的連接總數量。

(一般與accepts一致,除非服務器限制了連接數量)。

Requests:客戶端發(fā)送的請求數量。

Reading:當前服務器正在讀取客戶端請求頭的數量。

Writing:當前服務器正在寫響應信息的數量。

Waiting:當前多少客戶端在等待服務器的響應。

2,編寫監(jiān)控腳本

1)編寫

[root@VM_0_2_centos ~]# vim /shell/chk_nginx_status.sh

#! /bin/bash

# Description:zabbix監(jiān)控nginx性能以及進程狀態(tài)

# Note:此腳本需要配置在被監(jiān)控端,否則ping檢測將會得到不符合預期的結果

#主機ip或者域名

HOST="jluocc.cn"

#nginx開放端口

PORT="80"

case $1 in

ping)

? ? /sbin/pidof nginx | wc -l;;

active)

? ? /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Active' | awk '{print $NF}';;

reading)

? ? /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Reading' | awk '{print $2}' ;;

writing)

? ? /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Writing' | awk '{print $4}';;

waiting)

? ? /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}';;

accepts)

? ? /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $1}';;

handled)

? ? /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $2}';;

requests)

? ? /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $3}';;

*)

? ? echo 'ping|active|reading|writing|waiting|accepts|handled|requests'

esac

2)授權

[root@VM_0_2_centos ~]# chmod +x /shell/chk_nginx_status.sh

3)測試

[root@VM_0_2_centos ~]# /shell/chk_nginx_status.sh active

1

3,zabbix_agent配置

1)查看

[root@VM_0_2_centos ~]# cat /usr/local/zabbix/etc/zabbix_agentd.conf | grep zabbix_agentd.conf.d

# Include=/usr/local/etc/zabbix_agentd.conf.d/

# Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf? ?#開啟這一行

2)編輯監(jiān)控nginx配置文件

[root@VM_0_2_centos ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_nginx.conf

UserParameter=nginx.status[*],/shell/chk_nginx_status.sh $1

3)重啟zabbix_agent

[root@VM_0_2_centos ~]# /etc/init.d/zabbix_agentd restart

4)測試

[root@VM_0_2_centos ~]# /usr/local/zabbix/bin/zabbix_get -s 172.16.0.2 -k nginx.status[active]

1

[root@VM_0_2_centos ~]# /usr/local/zabbix/bin/zabbix_get -s 172.16.0.2 -k nginx.status[reading]

0

4,zabbix_server端監(jiān)控nginx

1)添加主機

2)添加監(jiān)控模板

3)創(chuàng)建應用級

4)創(chuàng)建監(jiān)控項

以一個accepts為例

創(chuàng)建后如下圖

5)創(chuàng)建圖形

5,查看監(jiān)控項

6,創(chuàng)建聚合圖形

最終合成

總結

到此監(jiān)控nginx已經基本完成,觸發(fā)告警下一節(jié)持續(xù)更新中,關注我



結束語:

更多精彩內容持續(xù)更新中,關注我微信公眾號,有你更精彩。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容