来自 技术 2019-03-06 00:00 的文章

5.22-zabbix监控Nginx

浪费了“黄金五年”的Java程序员,还有救吗?>>>

在feature2上安装Nginx

编辑yum仓库: vi /etc/yum.repos.d/nginx.repo 粘贴: [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1

安装:yum install -y nginx 配置Nginx状态信息

vi /etc/nginx/conf.d/default.conf #增加 location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } 测试

curl http://127.0.0.1/nginx_status 说明:

字段含义 Active Connections当前活动连接数,其中也包括了等待状态的连接 accepts接收到的连接数 handled已经处理完的连接数,该数字一般和accepts一致,如果不一致那么说明Nginx出错了 requests总共处理的请求数,一个连接可以有多个请求,所以该值比accpets要大 Reading正在读取请求头信息的连接数 Writing正在发送响应报文的连接数 Waiting处于闲置状态,等待客户端发送请求的连接数 编写监控脚本

vi /usr/local/sbin/ngx_status.sh #内容如下 #!/bin/bash url="http://127.0.0.1/nginx_status" curl=/usr/bin/curl

检测nginx进程是否存在

function ping { /sbin/pidof nginx | wc -l }

检测nginx性能

function active { $curl $url 2>/dev/null| grep 'Active' | awk '{print $NF}' } function reading { $curl $url 2>/dev/null| grep 'Reading' | awk '{print $2}' } function writing { $curl $url 2>/dev/null| grep 'Writing' | awk '{print $4}' } function waiting { $curl $url 2>/dev/null| grep 'Waiting' | awk '{print $6}' } function accepts { $curl $url 2>/dev/null| awk NR3 | awk '{print $1}' } function handled { $curl $url 2>/dev/null| awk NR3 | awk '{print $2}' } function requests { $curl $url 2>/dev/null| awk NR==3 | awk '{print $3}' } $1

chmod 755 /usr/local/sbin/ngx_status.sh 编辑zabbix_agent.conf

vi /etc/zabbix/zabbix_agentd.conf # 增加 UserParameter=nginx.status[*],/usr/local/sbin/ngx_status.sh $1 重启服务

systemctl restart zabbix-agent zabbix_get 测试

在服务端执行 zabbix_get -s 192.168.222.129 -k 'nginx.status[accepts] 导入nginx模板

下载模板 https://github.com/aminglinux/linux2019/blob/master/zabbix_nginx_template/zbx_export_templates.xml

Configuration -> Templates -> 右上角Import 链接模板

Configuration -> Hosts -> feature2 -> Templates -> Select -> Add -> Update