利用Zabbix监控Nginx
一、准备nginx监控模版:
1.1、下载nginx监控模版:
1.2、导入模版:
Zabbix管理页面,选择'配置'->'模版'->'导入':
然后将下载的模版文件上传。
现在,'配置'->'模版'中就会发现刚才上传的nginx模版:'Template App NGINX'
二、将模版应用与主机:
选择被监控主机->'模版',在'链接指示器'中选择'Template App NGINX','添加'->'更新',最后如下图:
三、客户端数据采集:
Zabbix监控端已配置完毕,现在需要将从被监控段采集的数据渲染到模版中。
3.1、定义采集nignx状态的脚本,如下:
#!/bin/bash HOST='127.0.0.1' PORT='80' function ping { /sbin/pidof nginx | wc -l } function active { /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| grep 'Active' | awk '{print $NF}' } function reading { /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| grep 'Reading' | awk '{print $2}' } function writing { /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| grep 'Writing' | awk '{print $4}' } function waiting { /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| grep 'Waiting' | awk '{print $6}' } function accepts { /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| awk NR==3 | awk '{print $1}' } function handled { /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| awk NR==3 | awk '{print $2}' } function requests { /usr/bin/curl "http://$HOST:$PORT" 2>/dev/null| awk NR==3 | awk '{print $3}' } $1
3.2、开启nginx状态配置:
vim nginx.conf,在server中添加如下:
...... location / { stub_status on; access_log off; } ......
注意:启用stub_status的前提是在编译安装nginx时,需要添加'--with-http_stub_status_module'参数。
3.3、配置zabbix客户端采集脚本:
vim zabbix_agent.conf,添加UserParameter,使zabbix客户端调用采集脚本去采集数据:
UserParameter=nginx.status[*],/data/shell/nginxStatus.sh $1
经过以上配置后,reload nginx、重启zabbix_agentd即可。
以上就是zabbix监控nginx的配置过程。
友情提示:
如果你和我一样,在已经安装好的nginx上添加如上模块,又不想影响线上业务,请参考如下:
在已经运行的nignx中添加需要的模块?
1、首先使用nginx -V 查看当前编译时的参数
2、进入解压包,重新执行./configure 在原来添加的模块基础上,添加自己需要的模块
3、执行make(完成后切不可执行make install)
4、将生成的objs目录下的nginx二进制文件替换当前nginx/sbin/nginx文件即可(替换之前,记得备份)
OK,到这里,真的就结束了。。。!