文档章节

ZABBIX 3.4 (一) 监测Nginx状态及脚本

l
 linjin200
发布于 2018/10/23 17:41
字数 881
阅读 50
收藏 0

ZABBIX 3.4 (一) 监测Nginx状态及脚本

2018年08月31日 16:56:48 YoFog 阅读数:106 标签: zabbix agentzabbix nginxnginx_status监控nginxzabbix脚本更多

个人分类: 运维

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/YoFog/article/details/82256137

安装了zabbix用来监测agent端的lnmp环境,先整理了一下配置nginx监测的步骤。

1.修改nginx配置文件

/etc/nginx/nginx.conf,可以新写一个server或者在旧的server里面新增一个localtion。保存之后重启nginx。

 
  1. location /nginx_status {

  2. stub_status on;

  3. access_log off;

  4. allow 127.0.0.1;

  5. allow 192.168.*.*;

  6. #zabbix服务器的IP地址,一般是内网地址

  7. deny all;

  8. }

  9.  
  10.  
  11. systemctl restart nginx

stub_status模块主要用于查看Nginx的一些状态信息,zabbix监测的就是status里面的一些基本数据。

使用allow可以运行该ip访问,用deny all 禁止其他机器访问地址,便于测试。我的zabbix分在两个机子上部署了,使用完毕可以把deny注释掉。

2.访问nginx_status

Activeconnections:对后端发起的活动连接数;

server accepts:处理的连接数;

handled:成功创建的握手次数;

requests:总共处理的请求数。

Reading:读取客户端的header数;

Writing: 返回给客户端的header数;

Waiting: 请求处理完成,正在等待下一请求指令的连接。

在访问效率很高,请求很快被处理完毕的情况下,Waiting 数比较多是正常的。如果 reading + writing 数较多,则说明并发访问量很大,正在处理过程中

 3.zabbix-agent配置文件开始自定义参数

 
  1. vi /etc/zabbix/zabbix_agentd.conf

  2.  
  3. Include=/etc/zabbix/zabbix_agentd.d/*.conf

  4.  
  5. UnsafeUserParameters=1

4.新增脚本配置文件

agent配置文件中已经说明脚本存在于/etc/zabbix/zabbix_agentd.d/目录。

 
  1. cd /etc/zabbix/zabbix_agentd.d/

  2.  
  3. vi nginx_status.conf

  4.  
  5. UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_status.sh $1

5.编写脚本

 
  1. #!/bin/bash

  2. #Script to fetch nginx statuses for monitoring systems

  3.  
  4. HOST="127.0.0.1"

  5. PORT="80"

  6.  
  7. function ping {

  8. /sbin/pidof nginx | wc -l

  9. }

  10.  
  11. function active {

  12. /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'

  13. }

  14. function reading {

  15. /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'

  16. }

  17. function writing {

  18. /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'

  19. }

  20. function waiting {

  21. /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'

  22. }

  23. function accepts {

  24. /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'

  25. }

  26. function handled {

  27. /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'

  28. }

  29. function requests {

  30. /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'

  31. }

  32. $1

 6.赋权

chmod a+x nginx_status.sh

 7.重启zabbix-agent服务

systemctl restart zabbix-agent

8.在zabbix-server端测试连接

 
  1. zabbix_get -s 192.168.236.130 -p 10050 -k nginx.status[accepts]

  2.  
  3. zabbix_get -s 192.168.236.130 -p 10050 -k nginx.status[handled]

  4.  
  5. zabbix_get -s 192.168.236.130 -p 10050 -k nginx.status[requests]

9.zabbix-web端创建模板 

10.创建应用集

11.创建监控项

创建监控项时,键值要手动输入,选择里面是找不到的。网上好多文章没有说明是手输的。nginx.status[*]就是上面nginx_status.conf里面的参数,*是脚本里面的function名称。

12.创建图形

zabbix  客户端 不要选 主动式

13.关联模板。

选择需要配置的主机,点击模板。切记要点击添加,然后点击更新。

 14.查看动态

监测中—>图形—>选择主机—>图形

如果数据量比较小,可以通过ab进行测试。

ab -n 10000 -c 1000 http://ip

 

 

 

© 著作权归作者所有

l

linjin200

粉丝 26
博文 1005
码字总数 1170031
作品 0
福州
程序员
私信 提问
ZABBIX 3.4 (一) 监测Nginx状态及脚本

ZABBIX 3.4 (一) 监测Nginx状态及脚本 2018年08月31日 16:56:48 YoFog 阅读数:106 标签: zabbix agentzabbix nginxnginxstatus监控nginxzabbix脚本更多 个人分类: 运维 版权声明:本文为...

linjin200
2018/10/23
14
0
ZABBIX 3.4 监控Nginx 状态(七)

ZABBIX 3.4 监控Nginx 状态(七) 一、环境准备 1、在nginx的配置文件中,添加status配置 location /nginxstatus { stubstatus on; access_log off; allow 127.0.0.1; allow 172.17.19.19; //......

linjin200
2018/10/25
53
0
zabbix基本监控,端口监控,WEB站点监控,邮件报警

zabbix 监控: zabbix版本:3.4.1 OS:centos7.3 php版本:7.0 nginx版本:1.12.1 mysql:mariadb10.2.7 安装zabbix:安装依赖包:yum install –y autoconf automake imakelibxml2-devel ex......

lava0525
2017/09/20
0
0
zabbix-3.4监控nginx-1.14.0状态

zabbix需要监控nginx,则nginx需要配置nginxstatus [root@nginx1 scripts]# /usr/local/nginx/sbin/nginx -V nginx version: nginx/1.14.0 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) ......

秦时明月路
2018/07/13
0
0
通过zabbix 3.4 实现nginx web监控

这个文章是两年前发的,最近整理了一下系统使用。只针对nginx前端web进行简单监控,具体再根据业务需求进行详细调用。后续的web场景、后端的服务器 这里不包含,需单独做,另外日志分析不建议...

zhangguangyi
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

500行代码,教你用python写个微信飞机大战

这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手。 帮助蹲厕族、YP族、饭圈女孩在无聊之余可以有一样东西让他们振作起来!...

上海小胖
今天
6
0
关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
7
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0
Docker容器实战(七) - 容器中进程视野下的文件系统

前两文中,讲了Linux容器最基础的两种技术 Namespace 作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups 作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一...

JavaEdge
今天
8
0
文件访问和共享的方法介绍

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号...

老孟的Linux私房菜
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部