监控思路:通过url访问某一接口文件的具体返回内容,正则匹配某一接口存活必定含有的字符,若有则证明接口存活,若无则接口有问题。

废话不多说,上插件:

#!/usr/bin/env python
# -*- coding: utf-8 -*-import re
import urllib
import sys
import getoptdef usage():print """Usage: check_api [-h|--help] [-u|--url url] [-S|--Str String]
"
Url: the url that you want to check;
String: the string that you want to match;
"
For example,#/usr/local/nagios/libexec/check_api -u 'http://xxx.com/ch1.ashx?jsoncallback=jQuery111104933076921983046_1479864376576&classid=12&systemtype=2&dataType=json&cityid=129&videoid=36065812&pageid=1&_=1479864376577' -S AdList
"""sys.exit(3)def getHtml(url):page = urllib.urlopen(url)html = page.read()return htmldef getString(Str, html):matchObj = re.search(Str, html, re.M)if matchObj:print("GET API OK:get %s successfully!" % Str)sys.exit(0)elif not matchObj:print("GET API CRITICAL:the API was error!")sys.exit(2)else:print("GET API UNKNOWN:the API was unknow!")sys.exit(3)try:options, args = getopt.getopt(sys.argv[1:],"hu:S:","--help --url= --Str=",)
except getopt.GetoptError:usage()sys.exit(3)for name, value in options:if name in ("-h", "--help"):usage()if name in ("-u", "--url"):url = valueif name in ("-S", "--Str"):Str = valuehtml = getHtml(url)
getString(Str, html)

返回结果:

[root@M-WEB-065 ~]# /usr/local/nagios/libexec/check_api -u 'http://xxx.com/ch1.ashx?jsoncallback=jQuery111104933076921983046_1479864376576&classid=12&systemtype=2&dataType=json&cityid=129&videoid=36065812&pageid=1&_=1479864376577' -S AdList
GET API OK:get AdList successfully!

一、上述插件在客户机上部署,将此插件放入/usr/local/nagios/libexec/  赋予可执行权限和属主组,修改/usr/local/nagios/etc/nrpe.cfg配置文件,添加

command[check_api]=/usr/local/nagios/libexec/check_api -u 'http://xxx.com/ch1.ashx?jsoncallback=jQuery111104933076921983046_1479864376576&classid=12&systemtype=2&dataType=json&cityid=129&videoid=36065812&pageid=1&_=1479864376577' -S AdList

重启nagios客户端。

二、修改监控主机/usr/local/nagios/etc/objects/commands.cfg文件,添加

define command{command_name check_apicommand_line $USER1$/check_api -u $ARG1$ -S $ARG2$}

修改监控主机/usr/local/nagios/etc/objects/services.cfg文件,添加

##############################M-WEB-065 check_api#####################################
define service{host_name               M-WEB-065service_description     check_apicheck_command           check_nrpe!check_apimax_check_attempts      5normal_check_interval   5retry_check_interval    2check_period            24x7notification_interval   10notification_period     24x7notification_options    u,c,rcontact_groups          yunwei
}

最后重启nagios,查看监控结果

转载于:https://blog.51cto.com/linuxerxy/1875893

nagios自定义监控API插件相关推荐

  1. nagios自定义监控脚本

    在客户端以下位置编辑配置文件 1.vim /usr/lib64/nagios/plugins/check_disk.sh #!/bin/bash #!/bin/bash row=`df -h |wc ...

  2. 通过案例学功能 自定义监控功能初探

    IT系统千差万别,即便是通用的Java.PHP也会由于版本的差异,配置和接口存在大同而小异,但往往就是这些小差别,会对系统的稳定性和性能产生大影响.市面上的IT监控产品都只能对标准应用的流行版本进行准 ...

  3. nagios(icinga)借助check_hp插件监控惠普服务器硬件信息

    nagios(icinga)借助check_hp插件监控惠普服务器硬件信息 http://cpan.metacpan.org/authors/id/D/DT/DTOWN/Net-SNMP-v6.0.1 ...

  4. DELL服务器结合nagios硬件监控、报警

    此次安装的dell硬件监控所支持的dell服务器为1950.2950.R410公司服务器有限暂且测试dell这3款服务器型号,测试硬件监控系统程序为Centos 5.4\5.3\5.2 Windows ...

  5. check_mk自定义监控实践之powershell

    最近在学习check_mk,这是一款基于nagios监控工具,但比nagios更易使用,引起了我的兴趣,我最关注的依然是对自定义监控脚本的支持度.在windows下的实践,其支持的客户端脚本或插件可以 ...

  6. Debian 系统安装 Nagios 服务器监控端

    安装 apt-get update apt-get install nagios* perl apt-get install --no-install-recommends pnp4nagios ap ...

  7. 2017年11月最新Nagios4.3.4部署 邮件音频告警 自定义监控脚本

    一 ,需下载的安装包 2017-11-22 1,nagios-4.3.4.tar.gz, 2, nagios-plugins-2.2.1.tar.gz  3,nrpe-2.15.tar.gz ,4,p ...

  8. Nagios远程监控软件的安装与配置详解

    Nagios远程监控软件的安装与配置详解 作者:redhat_hu Nagios是一款功能强大的网络监视工具,它可以有效的监控windows.linux.unix主机状态以及路由器交换机的网络设置,打 ...

  9. AS 自定义 Gradle plugin 插件 案例 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

最新文章

  1. 计算机wrod初级考试题及答案,计算机基础知识+Word基础知识+Excel基础知识试题答案解析.doc...
  2. sj 网页前端与后台数据交互的3种方式
  3. 安卓9全局圆角_三星S9+升级最新系统ONE UI体验,安卓9.0带来哪些惊喜?
  4. boost::hana::cycle用法的测试程序
  5. 常用的 16 个 Sublime Text 快捷键
  6. apicloud,aliyunlive,测试成功
  7. 2022春招马蜂窝旅游网第一轮面试 面经
  8. maven项目pom.xml中parent标签的使用
  9. STM32F103单片机PWM单脉冲输出模式
  10. shell 备份并删除几日内的历史文件
  11. IE6不支持position:fixed解决方法
  12. Android加载自定义字体出错,盘点Android使用自定义字体遇到的坑
  13. 有没有不收费的恢复数据软件下载 分享人性化数据恢复工具
  14. SDAU信息学院LaTeX模板使用指南
  15. 前后端分离图片验证码session获取问题
  16. java 迭代_java迭代是什么意思
  17. MyEclipse中怎么修改项目访问路径
  18. ERDAS 2015 64位破解安装教程
  19. 不能打开到主机的连接,在端口1521:连接失败的解决方法
  20. 没有gpedit.msc这个文件获取管理员权限

热门文章

  1. Python的正则表达式
  2. Jboss RestEasy构建简单的RESTful Web Services示例(1)
  3. Windows7操作系统自定义运行命令(简单方法之二)
  4. jQuery 学习笔记一(认识jQuery jQuery选择器 jQuery中的DOM操作)
  5. HTTP协议通信原理 (资源)
  6. Java实现的简单神经网络(基于Sigmoid激活函数)
  7. engine中调整Element的上下显示顺序(遮盖)
  8. Unix的标准I/O与重定向的若干概念解析
  9. 让Maven项目使用Nexus作为远程仓库的settings.xml配置
  10. Linux下解决用户不能执行sudo的方法