231gsd 发表于 2016-4-6 09:41:41

zabbix 监控nginx状态

1.1 系统环境

1
2
3
    centos6.6
    zabbix2.28
    nginx1.4+




1.2 配置nginx支持状态
#根据自己的环境配置


1
2
3
4
5
6
7
server {      
location /nginxstatus {               
   stub_status on;               
   access_log off;
    allow 172.16.10.0/24 ;   
    deny all;
}




#测试查看状态,出现结果,配置没问题


1
2
3
4
curl http://10.10.10.101/nginxstatus
Active connections: 1
server accepts handled requests 1653507 1653507 1686937
Reading: 0 Writing: 1 Waiting: 0





1.3 配置zabbix客户端

1
2
# cat /etc/zabbix/zabbix_agentd.d/nginx.conf
UserParameter=nginx.status[*],/data/sh/zabbix_sh/zabbix_nginx.sh $1




1.4 脚本配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# cat /data/sh/zabbix_sh/zabbix_nginx.sh
#!/bin/bash
HOST=`ifconfig| grep -EA 2 "(eth1|em2)"| awk '/inet/{print $2}'| cut -d: -f 2|head -1 `
PORT=80#
echo $HOST
#echo $PORT
function ping {    /sbin/pidof nginx | wc -l }
# 检测nginx性能
function active{    /usr/bin/curl "http://$HOST:$PORT/nginxstatus/" 2>/dev/null| grep 'Active' | awk '{print $NF}'}
function reading {    /usr/bin/curl "http://$HOST:$PORT/nginxstatus/" 2>/dev/null| grep 'Reading' | awk '{print $2}'}
function writing {    /usr/bin/curl "http://$HOST:$PORT/nginxstatus/" 2>/dev/null| grep 'Writing' | awk '{print $4}'}
function waiting {    /usr/bin/curl "http://$HOST:$PORT/nginxstatus/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'}
function accepts {    /usr/bin/curl "http://$HOST:$PORT/nginxstatus/" 2>/dev/null| awk NR==3 | awk '{print $1}'}
function handled {    /usr/bin/curl "http://$HOST:$PORT/nginxstatus/" 2>/dev/null| awk NR==3 | awk '{print $2}'}
function requests{    /usr/bin/curl "http://$HOST:$PORT/nginxstatus/" 2>/dev/null| awk NR==3 | awk '{print $3}'}
# 执行function
$1




1.5 重启zabbix客户端

1
2
3
# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                        [确定]
Starting Zabbix agent:                              [确定]




1.6 zabbix服务器端测试

1
2
zabbix_get -s 10.10.10.101 -k 'nginx.status'
1




1.7 导入模板,绑定模板


页: [1]
查看完整版本: zabbix 监控nginx状态