由同事提供4个需要监控的url地址

GET类型:

http://10.15.24.61:809/UserCenterService.svc/getAccountInfo/563/9638

POST类型:

http://10.15.24.61:809/ProductService/userInvestVarietyYjsList/4/0/563/1/9638/1.0

http://10.15.24.61:809/ProductService/userInvestVarietyYjsList/3/0/563/1/9638/1.0

http://10.15.24.61:809/ProductService/userInvestVarietyYjsList/2/0/563/1/9638/1.0

url的返回值

  以下操作,统一是在10.25.4.7服务器上操作。由于curl的是SLB IP地址,下面的操作,其实在任何1台CentOS服务器都可以进行。

  其中,通过执行curl命令,获取的返回值,GET类型正确的结果如下:

[root@iZ23kdZ ~]# curl http://10.15.24.61:809/UserCenterService.svc/getAccountInfo/563/9638
"{\"state\":\"1\",\"data\":{\"AccountInfo\":{\"Uid\":\"563\",\"Recieving\":\"0\",\"Collect\":\"0\",\"Reading\":\"0\",\"Recommends\":\"0\",\"Bankcards\":\"0\",\"userName\":\"加加林\",\"IsQuickReg\":\"0\",\"UNameComplete\":\"0\",\"PwdComplete\":\"0\",\"IsOwner\":\"1\",\"IsRecommended\":\"1\",\"IsBindBankCard\":\"1\",\"MyBanks\":[{\"CardPadRightNum\":\"7471\",\"CardStatus\":\"2\"}],\"Email\":\"1550348062@qq.com\",\"EmailVerify\":\"\",\"isVip\":0}},\"errorInfo\":\"\",\"versionCode\":\"\"}"

POST类型的正确结果如下:

[root@iZ23kdZ ~]# curl -d -XPOST http://10.15.24.61:809/ProductService/userInvestVarietyYjsList/4/0/563/1/9638/1.0
"{\"state\":\"1\",\"data\":{\"productlist\":null,\"rowCount\":0,\"ProSource\":4},\"errorInfo\":\"\",\"versionCode\":\"\"}"

  3个POST类型的url返回结果是一致的。

  其中,以上4个url的返回结果,只需要关注返回值前面的“state”值后面为“1”,就说明接口是正常的。

  因此,后面的监控都是围绕这个结果进行。

awk命令获取url返回值

GET类型:

[root@iZ23kdZ ~]# curl http://10.15.24.61:809/UserCenterService.svc/getAccountInfo/563/9638  2>/dev/null|grep state|cut -d":" -f 2|cut -d "\"" -f 2|cut -d "\\" -f 1
1

POST类型:

[root@iZ23kdZ ~]# curl -d-XPOST http://10.15.24.61:809/ProductService/userInvestVarietyYjsList/4/0/563/1/9638/1.02>/dev/null|grep state|cut -d ":" -f 2|cut -d "\""-f 2|cut -d "\\" -f 1
1

  虽然同样是curl命令,但是,不同类型,参数不太一样。

  只要这条命令的返回值不是1,就让zabbix报警。

确认自定义监控脚本的位置

  创建自定义监控项,需要确认自定义监控脚本的位置。有的使用者会把自定义监控命令直接写到配置文件里,但是,推荐把监控脚本放在配置文件的include目录里。

[root@iZ23kdZ ~]# head -12 /etc/zabbix/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=10.25.4.8
#ServerActive=10.25.4.6
ServerActive=10.25.4.8
Hostname=10.25.4.8
#Hostname=iZ23kdZ
RefreshActiveChecks=300
BufferSend=5
BufferSize=1000
MaxLinesPerSecond=200
Timeout=10
Include=/etc/zabbix/zabbix_agentd.d/*.conf

  就是上面最后1行配置文件指定的目录。注意,监控脚本的后缀要求必须是.conf,否则,zabbix不会识别。

相关自定义监控脚本

[root@iZ23kdZ ~]# ll -tr /etc/zabbix/zabbix_agentd.d/curl*
-rw-r--r-- 1 root root 215Jun 23 14:20 /etc/zabbix/zabbix_agentd.d/curl_post_1.conf
-rw-r--r-- 1 root root 215Jun 23 15:23 /etc/zabbix/zabbix_agentd.d/curl_post_2.conf
-rw-r--r-- 1 root root 215Jun 23 15:28 /etc/zabbix/zabbix_agentd.d/curl_post_3.conf
-rw-r--r-- 1 root root 190 Jun 23 16:11 /etc/zabbix/zabbix_agentd.d/curl_get.conf

  如下是自定义的监控脚本,curl_post_3.conf没有列出,和前2个几乎一样。

[root@iZ23kdZ ~]# cat /etc/zabbix/zabbix_agentd.d/curl_get.conf
UserParameter=curl_get,/usr/bin/curl http://10.15.24.61:809/UserCenterService.svc/getAccountInfo/563/9638  2>/dev/null|grep state|cut -d":" -f 2|cut -d "\"" -f 2|cut -d "\\" -f 1
[root@iZ23kdZ ~]# cat /etc/zabbix/zabbix_agentd.d/curl_post_1.conf
UserParameter=curl_post_1,/usr/bin/curl -d -XPOST http://10.15.24.61:809/ProductService/userInvestVarietyYjsList/4/0/563/1/9638/1.02>/dev/null|grep state|cut -d ":" -f 2|cut -d "\""-f 2|cut -d "\\" -f 1
[root@iZ23kdZ ~]# cat /etc/zabbix/zabbix_agentd.d/curl_post_2.conf
UserParameter=curl_post_2,/usr/bin/curl -d -XPOST http://10.15.24.61:809/ProductService/userInvestVarietyYjsList/3/0/563/1/9638/1.02>/dev/null|grep state|cut -d ":" -f 2|cut -d "\""-f 2|cut -d "\\" -f 1

自定义脚本重启zabbix agent服务才能生效

#检查zabbix agent服务进程

[root@iZ23kdZ ~]# ps -ef|grep zabbix|grep -v "zabbix_server"
root      7847 26915  0 16:57 pts/0    00:00:00 grep --color=auto zabbix
root     18956    1  0 16:12 ?        00:00:00 zabbix_agentd -c/etc/zabbix/zabbix_agentd.conf
root     18957 18956  0 16:12 ?        00:00:00 zabbix_agentd: collector [idle1 sec]
root     18958 18956  0 16:12 ?        00:00:00 zabbix_agentd: listener #1[waiting for connection]
root     18959 18956  0 16:12 ?        00:00:00 zabbix_agentd: listener #2[waiting for connection]
root     18960 18956  0 16:12 ?       00:00:00 zabbix_agentd:listener #3 [waiting for connection]
root     18961 18956  0 16:12 ?        00:00:00 zabbix_agentd: active checks#1 [idle 1 sec]

#杀死zabbix agent服务

[root@iZ23kdZ ~]# pkill -f /etc/zabbix/zabbix_agentd.conf

#查看进程结果

[root@iZ23kdZ ~]# ps -ef|grep zabbix|grep -v "zabbix_server"
root     7934 26915  0 16:57 pts/0    00:00:00 grep --color=auto zabbix

#启动zabbix agent服务

[root@iZ23kdZ ~]#zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf

#查看启动服务结果

[root@iZ23kdZ ~]# ps -ef|grep zabbix|grep -v "zabbix_server"
root      7941    1  0 16:57 ?        00:00:00 zabbix_agentd -c/etc/zabbix/zabbix_agentd.conf
root      7942 7941  0 16:57 ?        00:00:00 zabbix_agentd: collector [idle1 sec]
root      7943 7941  0 16:57 ?        00:00:00 zabbix_agentd: listener #1[waiting for connection]
root      7944 7941  0 16:57 ?        00:00:00 zabbix_agentd: listener #2[waiting for connection]
root      7945 7941  0 16:57 ?        00:00:00 zabbix_agentd: listener #3[waiting for connection]
root      7946 7941  0 16:57 ?        00:00:00 zabbix_agentd: active checks#1 [idle 1 sec]
root     7967 26915  0 16:58 pts/0    00:00:00 grep --color=auto zabbix

  请按照文档的杀死进程和启动服务的命令来执行,否则,后果自负。

zabbix_get命令测试结果

[root@iZ23kdZ ~]# zabbix_get -s 10.25.4.8 -p 10050 -k "curl_post_1"
1
[root@iZ23kdZ ~]# zabbix_get -s 10.25.4.8 -p 10050 -k "curl_get"
1

  现在,就可以去zabbix的web页面添加监控项了。

增加Item项

  依次点击“Configuration”→“Host”

  在页面下面找到“10.253.4.8”服务,点击“Items”

  4个监控项已经添加

  4个监控项的任意1个,点击查看的结果:

  只有4个位置需要修改。其中,“Key”值就是“zabbix_get -s 10.25.4.7 -p 10050 -k "curl_get"”命令最后的参数“-k”的值。

  “Name”值建议和“Key”值保持一致。

  “Description”的值是由前面提到的同事提供,就是这个4个url的中文说明。

  “Applications”值是因为前面创建过这个监控组。

  再列出1个作为参考:

触发值的创建

  在zabbix的WEB界面,很多位置都可以找到这个触发值,只要是同一台需要监控的服务器。

  “Triggers”创建后的列表:

  每个“Triggers”项基本一致:

  “Expression”框里的表达式,需要点击右边的“Add”按纽:

  在弹出的对话框点击“Item”右边的“Select”按纽:

  找到对应的监控项,点击确认。

  在返回的对话框里,点击“Function”项,选中“Last (most recent) T value is NOT N”项。

  最后的“N”项,输入“1”。

  点击“Insert”按纽完成表达式的创建。

  在“Trigger”配置页面里,Severity项的意思是报警级别。

  截图中最下面的“Clone”按纽,可以通过它来创建参数相近的触发值。前面的Items监控项,也有这样的按纽。

图形的创建

  点击“Graphs”按纽,注意是不是对应的服务器。

  我把4个监控项的图形页面放在了一起,其实,分开也可以。

  细节如下:

  “Graph type”是图形类型,一般选择默认。

  每1个监控项是通过“Add”按纽来添加。

  点击“Preview”可以看到预览图。

  注意:所有修改,必须点击“Update”按纽才能生效。

  目前已经把4个url地址的监控分开配置图形:

curl_get配置:

curl_post_1配置:

curl_post_2配置:

  最后1个也差不多。

  现在,要把4张图放在一个界面显示:

  依次点击“Monitoring”→“Screens”

  点击“Create screen”按纽

  配置的内容如下:

  “Columns”:纵列数

  “Rows”:排数

  点击“Add”按纽后,在列表里点击刚创建的“curl_4”

  点击右上角的“Edit screen”按纽

  在弹出的页面里点击左上角的“Change”按纽。

  在弹出的页面里,点击“Graph”选项的“Select”按纽

  在弹出的对话框里,选择“curl_get”

  “Resource”就是“Graph”即可。

  “Dynamic item”的意思是“动态获取”,应该勾选。

  点击“Add”按纽完成添加。

  其它3个添加方法相同。

  回到zabbix主界面,找到左侧的“Favorite screens”,点击“Action”按纽,在弹出的快捷菜单点击“Add”

  在弹出的对话框选中刚才创建的“curl_4”,点击“Select”按纽

  最后的结果:

  这样,就可以在zabbix主界面通过点击“Favorite screens”添加的screens,同时展示4个url的监控状态。

补充1:screen显示报错可能是有地方没有选择正确

  今天(2017年6月27日)无意间发现图中的问题:

细节图

  此现象,是因为右上角的监控主机选择的其它服务器。

  自定义的监控脚本在那台服务器上,就选择那台存放自定义监控脚本的服务器即可解决。

参考文档

https://www.abcdocker.com/abcdocker/1453——Zabbix 3.0 部署监控 [二]

转载于:https://blog.51cto.com/gagarin/1942089

zabbix增加手机端4个url地址的返回值相关推荐

  1. ECOLOGY9增加手机端新建流程

    新增了一个流程YS_XS_04 运输公司临时运输业务承接流程需要在手机端发起流程. 操作步骤: 1.在移动应用配置中心 2.找到新建流程 点编辑进入编辑应用,在新建流程应用设置中点开: 3.选择需要增 ...

  2. 手机端在不同手机上的返回键返回位置

    手机端在不同手机上的返回键返回位置 在实际的应用中,我们常常需要实现在移动app和浏览器中点击返回.后退.上一页等按钮实现自己的关闭页面.调整到指定页面或执行一些其它操作的 需求,那在代码中怎样监听当 ...

  3. 2021新版在线客服|来客客服|新增加手机端客服|带非常完整的搭建教程

    介绍 [淘宝买的,亲测分享,可直接运营使用,附带安装教程说明] 来客php在线客服系统,新添加了手机端客服对话,修复诸多BUG,比如:用户发送图片无法接收等问题,更新到2021年1月8日,V5.0.7 ...

  4. php 请求url并且获取返回值

    $opts = array('http'=>array('header' => "User-Agent:MyAgent/1.0\r\n")); $context = s ...

  5. java 地址传递 返回值_Java中的值传递和引用传递

    这几天一直再纠结这个问题,今天看了这篇文章有点思路了,这跟C++里函数参数为引用.指针还是有很大区别. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里 ...

  6. golang 对字符串按照长度划分,每隔固定长度增加一个指定字符,传参修改对比返回值修改的典型优势

    func split(key string,temp *string){if len(key)<=64 {*temp = *temp+key+"\n"}for i:=0;i& ...

  7. Python实现十六进制字符计算。案例计算终端连接华为无线AP,对应BSSID。手机端显示虚拟MAC地址

    BSSID(虚拟mac)生成规则:BSSID =物理MAC+(射频IDx16+WLANID-1) 双频AP,射频ID只有0(2.4G) 1(5G)三频AP,射频ID有0(2.4G)1(5G) 2(5G ...

  8. Java手写线程池(不带返回值、带返回值)

    文章目录 不带返回值 带返回值 不带返回值 public class MyThreadPool {private static final int DEFAULT_THREAD_NUM = 10;pr ...

  9. zabbix===》微信报警、聚合图形、自动发现自动注册、监控NFS、MySQL、web服务、URL地址

    一.企业微信号申请 https://work.weixin.qq.com/ 1.注册 因为我们没有企业,所以我们选择组织. 下一步, 按需填好相应信息 2.配置微信企业号 设置好相应信息,后记录下企业 ...

最新文章

  1. 9行Python代码搭建神经网络
  2. 北京关于领取2021年上半年合格证书的通知
  3. java httpclient 302_httpclient如何处理302重定向
  4. 脚本语言+文档对象模型基于浏览器客户端的编程
  5. vue-cli@2的原理解析
  6. 打开 igv java_必备可视化Integrative Genomic Viewer(IGV)
  7. springsecurity 认证之密码模式
  8. 这本Python算法书有点火~
  9. String和StringBuffer与StringBuilder的区别
  10. 雷达信号处理---线性调频信号脉冲压缩MATLAB实现
  11. JVM之JVM运行时内存结构, JDK1.7 JVM内存结构, JDK1.8 JVM内存结构, JVM堆内存结构
  12. Windows7系统提示当前页面的脚本发生错误怎么办
  13. [UE4] LogicDriver状态机基于管线(Conduit)的状态选择器
  14. mfw 攻防世界web题 (Git泄露)
  15. 《海上钢琴师》斗琴部分的曲子
  16. 【IRP】Windows 驱动之IRP
  17. ora-12505 监听程序当前无法识别sid
  18. 窃取信息的新恶意软件通过假冒的破解网站感染使用者
  19. 非线性规划 - 数学建模
  20. python私活平台_【Python兼职】,Python开发接单接私活,Python程序员外包平台-程序员客栈...

热门文章

  1. linux环境下安装多个任意版本的python环境
  2. fastjson 不转某些字段_全面总结Fastjson过滤字段、排除字段的5种方法(含示例)...
  3. 杭电2005题c语言答案,杭电2005
  4. 单片机红绿灯电路灯有几种_新农村建设的太阳能路灯如何选择?
  5. mysql warning 日志_Mysql5.7.19安装后错误日志中有警告
  6. 5s的app显示无法连接服务器,苹果iphone5s手机无法连接App Store问题解决方法汇总...
  7. oracle01537,ORACLE REUSE实验
  8. mysql考勤系统设计函数_Mysql实战之员工考勤系统数据库建立
  9. es6判断对象key是否存在,ES6中获取对象的key
  10. 安卓mysql插入数据_【11-25求助】关于Android 的SQLite数据库插入数据报错问题