博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zabbix监控nginx连接状态(转)
阅读量:6889 次
发布时间:2019-06-27

本文共 2875 字,大约阅读时间需要 9 分钟。

zabbix监控nginx

zabbix可以监控nginx的状态,关于一个服务的状态可以查看服务本身的状态(、是否开启),还应该关注服务能力(例如以nginx的负载效果:连接数请求数句柄数)。下面我们使用zabbix监控nginx。


nginx的安装

如果想要查看nginx的服务状态,在对nginx进行源码安装的时候要选中–with-http_stub_status_module模块。

1.解压安装包

[root@server5 mnt]# tar xvf nginx-1.6.2.tar.gz

2.在安装目录下进行模块配置: 

这里写图片描述

3.安装配置的选项: 

这里写图片描述


手动采集nginx数据

安装结束后,在nginx的安装目录(默认是/usr/local/nginx)下我们需要对nginx的主进行修改,如果nginx能够支持状态信息的显示可以在nginx的版本中进行查看:

1.查看模块是否安装成功: 

这里写图片描述

可以看到已经拥有了–with-http_stub_status_module模块。

2.修改配置文件/usr/loca/nginx/conf/nginx.conf,在http部分添加指定的server服务: 

这里写图片描述

注意:配置只允许192.168.1.0/24网段的人查看nginx的状态,其他网段的人不可以查看。

3.修改完成后启动nginx服务,为了方便期间,可以把/usr/local/nginx/sbin/nginx文件建立软链接到/usr/bin/目录下: 

这里写图片描述

4.开启nginx服务: 

这里写图片描述

5.使用命令采集nginx的状态信息: 

这里写图片描述

6.上述的信息是包括读、写等待以及连接数、请求数等内容,我们需要编写脚本信息进行单独采集。脚本内容如下所示:

#get_nginx_status.sh#nginx信息采集脚本#!/bin/bash#设置初始化信息NGINX_SERVER="192.168.1.108"NGINX_URL="http://${NGINX_SERVER}/status"#设置采集信息的方式function get_active {     curl -s ${NGINX_URL} | grep "Active" | awk -F ":" '{print $2}'} function get_reading {     curl -s ${NGINX_URL} | grep "Reading" | awk -F ":" '{print $2}' | awk -F " " '{print $1}'} function get_writing {     curl -s ${NGINX_URL} | grep "Writing" | awk -F ":" '{print $3}' | awk -F " " '{print $1}'} function get_waiting {     curl -s ${NGINX_URL} | grep "Waiting" | awk -F ":" '{print $4}' | awk -F " " '{print $1}'} function get_accepts {     curl -s ${NGINX_URL} | awk NR==3 | awk -F " " '{print $1}'} function get_handled {     curl -s ${NGINX_URL} | awk NR==3 | awk -F " " '{print $2}'} function get_requests {     curl -s ${NGINX_URL} | awk NR==3 | awk -F " " '{print $3}'}#获取用户的输入参数得到对应的值case $1 in      active)          get_active          ;;     reading)          get_reading          ;;     writing)          get_writing              ;;     waiting)          get_waiting          ;;     accepts)          get_accepts           ;;     handled)          get_handled          ;;     requests)          get_requests              ;;     *)         echo "Usage: $0 {active | reading | writing | waiting | accepts | handled | requests}"esac1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465

7.完成脚本并且进行测试后,需要修改/etc/zabbix/zabbix-agentd.conf文件添加对应的UserParameter:

这里写图片描述

8.在重新启动zabbix-agent服务: 

这里写图片描述

9.在使用zabbix_get命令进行测试,查看是否能够顺利的获取数据,如果次操作可以执行,说明采集状态正常: 

这里写图片描述

我们这里随机对四个数据尽心了测试发现是正常的。


添加到zabbix的监控项items

如果数据的采集都没有问题,那么就可以在web控制台进行items的添加。 

这里写图片描述

我们以nginx.active为例,其他的类似操作: 

这里写图片描述

可以看到所需要的items都已经生成完成,而且这些items都是属于nginx这个应用的: 

这里写图片描述


生成graphs

我们可以对于nginx的服务状态进行可视化操作(生成对应的graphs): 

这里写图片描述

创建screen进行多个graphs的显示: 

这里写图片描述

创建agent1.example.com节点的nginx condition状态的screens完成: 

这里写图片描述

可以看到nginx的accpets、requests、handled状态: 

这里写图片描述


小结:

使用zabbix对于服务的监控步骤都很类似: 

1.首先要手动的获取服务的状态; 
2.然后编写脚本自动获取,然后写入agent的/etc/zabbix/zabbix-agentd.conf文件 
3.在监控服务端zabbix-server进行相关的采集测试,如果能够成功则在web界面进行items和graphs的监控。

本文出自 “Null” ,请务必保留此出处http://kongshuai.blog.51cto.com/10178307/1737193

http://www.07net01.com/2016/01/1171292.html

 

你可能感兴趣的文章
POJ 2019 Cornfields 二维线段树的初始化与最值查询
查看>>
P1133 教主的花园
查看>>
web站点和windows服务项目发布时如何排除指定文件
查看>>
九度 1138 - 大数除余 - 进制转换
查看>>
Sql Server中集合的操作(并集、差集、交集)学习
查看>>
Linux文字分段裁剪命令cut(转)
查看>>
linux下mysql的root密码忘记解决方
查看>>
onClickRow 事件
查看>>
学习图像算法阶段性总结 (附一键修图Demo)
查看>>
SpringMVC hibernate增加多数据源 (SSHE/SYPRO增加多数据源为例)
查看>>
MS SQL批量生成作业脚本方法介绍总结
查看>>
mongodb中批量将时间戳转变通用日期格式
查看>>
es5.0 安装ik中文分词器 mac
查看>>
挖一挖C#中那些我们不经常使用的东西之系列(4)——GetHashCode,ExpandoObject
查看>>
jquery选择div下的ul下的li下的a
查看>>
老鼠毒药问题和它的扩展
查看>>
JAVA -- 内省 Introspector
查看>>
EntityFramework Core问题处理集锦(一)
查看>>
Windows10上搭建Kinect 2 开发环境
查看>>
免费开源分布式系统日志收集框架 Exceptionless
查看>>