nginx 升级并编译stub_status属性

来源:互联网 发布:微信聊天记录监控软件 编辑:程序博客网 时间:2024/06/06 20:29

nginx升级

1、下载源程序

tar -zxvf nginx-1.13.1cd nginx-1.13.1./configure --prefix=/usr/local/nginx --with- \ http_stub_status_modulemake;

2、备份原版本文件,并用nginx-1.13.1/objs/nginx覆盖原版本文件 :

mv /usr/local/nginx/sbin/nginx ~/nginx.old/usr/local/nginx/sbin/nginx -V  #显示旧版本信息ps -ef |grep nginx |killallcp nginx-1.13.1/objs/nginx /usr/local/nginx/sbin//usr/local/nginx/sbin/nginx -V  #显示新版本信息vim /usr/local/nginx/conf/nginx.conf server {        listen       80;        server_name   192.168.30.197;        location /ngx_status {            stub_status on;            access_log off;        }    }/usr/local/nginx/sbin/nginx 

3.查看效果

http://192.168.30.197/ngx_status
Active connections: 1
server accepts handled requests
26395 26395 57346
Reading: 0 Writing: 1 Waiting: 0

4、在nginx主机配置zabbix-agent要调用的脚本

[root@localhost ~]# cat /etc/zabbix/ngx_status.sh #!/bin/env bashHOST="192.168.30.197" #nginx主机地址PORT="80"#检查nginx进程是否存在function ping {        /sbin/pidof nginx |wc -l}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 $NF}'} 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}'}$1  #传入function名字,调用函数

测试:

chmod +x ./ngx_status.sh./ngx_status.sh request./ngx_status.sh active.....

5、配置nginx主机上的zabbix-agent.conf 的自定义参数

vim /etc/zabbix/zabbix-agent.conf...前面省略...### Option: UserParameter#       User-defined parameter to monitor. There can be several user-defined parameters.#       Format: UserParameter=<key>,<shell command>#       See 'zabbix_agentd' directory for examples.## Mandatory: no# Default: UserParameter=ngx_status[*],/etc/zabbix/ngx_status.sh $1...后面省略...#等号后面2个参数。第1个参数为zabbix的item key的名字,[*]表示zabbix_server 传过来的参数列表;第2个参数为调用的脚本,$1 表示zabbix_server 传过来的第1个参数。

6、在zabbix_server测试

zabbix_get -s 192.168.30.197 -k ngx_status[active]zabbix_get -s 192.168.30.197 -k ngx_status[handled]zabbix_get -s 192.168.30.197 -k ngx_status[requests]zabbix_get -s 192.168.30.197 -k ngx_status[writing]

返回数据,即成功。

7、在zabbix_server中定义nginx主机、items项、图形。

原创粉丝点击