linux运维学习笔记:zabbix系列之:02 zabbix 3.0监控nginx

linux运维学习笔记:zabbix系列之:02 zabbix 3.0监控nginx

作者:周少言
201年 月,于北京

声明:本博客是本人周少言在某培训机构学习期间所写,其中参考借鉴了他人的博客,本文将会选择性给出相关链接,如有侵权,恳请告知。本文如有错误,恳请告知,欢迎交流。

参考连接

nginx client 配置

添加监控192.168.22.32

yum -y install zabbix-agent-3.2.6-1.el6.x86_64.rpm 

cd /etc/zabbix  
vim zabbix_agentd.conf 
Server=192.168.22.39
ServerActive=192.168.22.39
Hostname=192.168.22.32  

service zabbix-agent start
chkconfig zabbix-agent on

安装nginx

yum -y install gcc*
yum -y install pcre* zlib*
useradd -M -s /sbin/nologin nginx
tar xf nginx-1.2.6.tar.gz 
cd nginx-1.2.6
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
make  && make install

nginx启动脚本

cp -a /root/nginx /etc/init.d/   
chmod 777 /etc/init.d/nginx  
service nginx start           
chkconfig --add nginx         
chkconfig nginx on            

添加监控模块

vim /usr/local/nginx/conf/nginx.conf
location /ngx_status {
stub_status on;
}

service nginx restart

访问 192.168.22.32/ngx_status

Zabbix 客户端配置
编写客户端脚本

cd /etc/zabbix/zabbix_agentd.d/
vim ngx_status.sh
#!/bin/bash
# DateTime: 2015-10-25
# AUTHOR:凉白开
# WEBSITE: http://www.ttlsa.com
# Description:zabbix监控nginx性能以及进程状态
# Note:此脚本需要配置在被监控端,否则ping检测将会得到不符合预期的结果

     
HOST="127.0.0.1"
PORT="80"
     
# 检测nginx进程是否存在
function ping {
    /sbin/pidof nginx | wc -l 
}
# 检测nginx性能
function active {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'   
}
function reading {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
# 执行function
$1
    
    
    
将自定义的UserParameter加入配置文件,然后重启agentd
chmod a+x ngx_status.sh 
cd /etc/zabbix/
vim zabbix_agentd.conf
UnsafeUserParameters=1
UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/ngx_status.sh $1

service zabbix-agent restart

nginx server 获取数据

zabbix_get获取数据

zabbix_get -s 192.168.22.32 -k 'nginx.status[accepts]'
9570756
zabbix_get -s 192.168.22.32 -k 'nginx.status[ping]'
1

导入模板

你可能感兴趣的:(linux运维学习笔记:zabbix系列之:02 zabbix 3.0监控nginx)