Nagios 插件可以由自己编写,就不用在网上找了,具体工作过程如下:

Nagios 的最激动人心的方面是可以轻松地编写您自己的插件,只需要了解一些简单的指导原则即可。为了管理插件,Nagios 每次在查询一个服务的状态时,产生一个子进程,并且它使用来自该命令的输出和退出代码来确定具体的状态。退出状态代码的含义如下所示:

OK —退出代码 0—表示服务正常地工作。

WARNING —退出代码 1—表示服务处于警告状态。

CRITICAL —退出代码 2—表示服务处于危险状态。

UNKNOWN —退出代码 3—表示服务处于未知状态。

最后一种状态通常表示该插件无法确定服务的状态。例如,可能出现了内部错误。

下面提供了一个 Python 示例脚本,用于检查 UNIX® 平均负载。它假定 2.0 以上的级别表示警告状态,而 5.0 以上的级别表示危险状态。这些值都采用了硬编码的方式,并且始终使用最近一分钟的平均负载。

清单 5. Python 插件—示例工作插件

  1. #!/usr/bin/env python

  2. import os,sys

  3. (d1, d2, d3) = os.getloadavg()

  4. if d1 >= 5.0:

  5. print "GETLOADAVG CRITICAL: Load average is %.2f" % (d1)

  6. sys.exit(2)

  7. elif d1 >= 2.0:

  8. print "GETLOADAVG WARNING: Load average is %.2f" % (d1)

  9. sys.exit(1)

  10. else:

  11. print "GETLOADAVG OK: Load average is %.2f" % (d1)

  12. sys.exit(0)

在编写了这个小的可执行插件之后,接下来是使用 Nagios 注册该插件,并创建一个检查平均负载的服务定义。

这项工作也是非常简单的:使用下面的内容创建一个名为 /etc/nagios-plugins/config/mygetloadavg.cfg 的文件,根据下面的示例,向 services.cfg 文件添加一个服务。请记住,必须在 hosts.cfg 配置文件中定义 localhost。

清单 6. 示例插件—使用 Nagios 进行注册

  1. define command{

  2. command_name check_mygetloadavg

  3. command_line /path/to/check_getloadavg

  4. }

清单 7. 创建一个使用示例插件的服务

  1. define service{

  2. use service-template

  3. host_name localhost

  4. service_description LoadAverage

  5. check_period 24x7

  6. contact_groups server-admins

  7. notification_options c,r

  8. check_command check_mygetloadavg

  9. }

通过阅读文章,你只要按上面步骤一步一步来,就能为自己的 Nagios 做几个有用插件!

转载于:https://blog.51cto.com/fccwcom/1211467

如何编写 Nagios 插件相关推荐

  1. 如何编写 Nagios 插件 (http://zener.blog.51cto.com/937811/727685)

    如何编写 Nagios 插件 Nagios 的最激动人心的方面是可以轻松地编写您自己的插件,只需要了解一些简单的指导原则即可.为了管理插件,Nagios 每次在查询一个服务的状态时,产生一个子进程,并 ...

  2. 使用Qt编写模块化插件式应用程序

    动态链接库技术使软件工程师们兽血沸腾,它使得应用系统(程序)可以以二进制模块的形式灵活地组建起来.比起源码级别的模块化,二进制级别的模块划分使得各模块更加独立,各模块可以分别编译和链接,模块的升级不会 ...

  3. 分享一个监控MFS的nagios插件

    最近线上刚好有监控MFS服务器的需求,本来准备自己完全写一个nagios插件出来的,但是又懒不想写就搜了一下,还真有网友分享出来了.他的连接地址是:http://blog.csdn.net/liuyu ...

  4. skywalking原理_Skywalking系列博客6手把手教你编写 Skywalking 插件

    点击上方 IT牧场 ,选择 置顶或者星标技术干货每日送达! 前置知识 在正式进入编写环节之前,建议先花一点时间了解下javaagent(这是JDK 5引入的一个玩意儿,最好了解下其工作原理):另外,S ...

  5. 编写OD插件将IDA中分析出来的函数名导入到OD中

    逆向程序的时候,喜欢用IDA静态分析,用OD动态调试,如果把IDA分析出来的函数名称都导入到OD中,调试的时候就知道哪些函数不需要再看了.以前我一直用GODUP的map loader,但是有些时候感觉 ...

  6. 使用Lua编写whireshark插件

    whireshark支持Lua.C.C++编写的插件 在这里,我简单介绍如何使用Lua编写whireshark插件. 一.插件的存放位置 whireshark插件分为个人插件和全局插件,在window ...

  7. 自己编写jQuery插件之表单验证

    自己编写jQuery插件之表单验证 吐个嘈先:最近状态不咋滴,真是什么都不想干,不想上班,做什么都没动力,觉得没意思.不想这样,不想这样,快让这种情绪消失吧,忽忽.... 表单验证在项目中用的还是比较 ...

  8. maven插件编写_编写Maven插件的提示

    maven插件编写 最近,我花了很多时间为Maven编写插件或在其中工作. 它们简单,有趣且有趣. 我以为我会分享一些技巧,使编写它们时的生活更轻松. 提示1:将任务与Mojo分开 最初,您将把moj ...

  9. 编写Maven插件的提示

    最近,我花了很多时间来编写或为Maven开发插件. 它们简单,有趣且有趣. 我以为我会分享一些技巧,使他们在编写时变得更轻松. 提示1:将任务与Mojo分开 最初,您将把mojo的所有代码放入mojo ...

最新文章

  1. Spring MVC 基础注解之@RequestMapping、@Controller、(二)
  2. HDU - 2859 Phalanx(动态规划/哈希表)
  3. 利用小工具instsrv和srvany 创建windows服务
  4. mysql事务基础+基于innodb的行锁+间隙锁+如何锁定行
  5. 智能客户端研究笔记(三)
  6. python asyncio_Python 中的异步编程:Asyncio
  7. Gulp新手入门教程
  8. mysql计算折纸_mysql数据库的创建和授权
  9. 自己动手实现STL 02:构造析构的基本工具construct()和destroy()(stl_construct.h)
  10. JavaScript创建页面节点
  11. 10米精度NPP净初级生产力数据/NDVI数据/植被类型数据/土地利用数据/降雨气温分布数据/太阳辐射分布数据
  12. 请教大家, 关于 $0118 号消息
  13. 2015年两化融合管理体系贯标试点企业
  14. linux如何从 命令行 将普通文件打印到 pdf
  15. 解决:Firefox添加xpi扩展组件提示“此附件组件无法安装,未通过验证”
  16. (四)keycloak 自定义用户(SPI)开发
  17. C#调用C++类库dll,无法找到函数入口(无法在“***.dll“中找到名为“***“的入口点)
  18. 止损的意义是什么?我们为何要止损这个操作?
  19. Maple希腊字母按键查表
  20. Bit、Byte、KB、MB(M)、GB(G)关系

热门文章

  1. 深蓝学院《从零开始手写VIO》作业三
  2. 【阿里云课程】神经网络:从生物学机制到全连接神经网络的局限性
  3. Lazada专业代运营服务商,手把手教你从0到1做好跨境电商
  4. 全球及中国卸妆条行业发展规模与营销前景分析报告2022版
  5. 安全中间件与应用服务间如用session
  6. 用户自定义类型(User-defined Type)参数的传递
  7. html5 文件转byte[],JS 文件base64、File、Blob、ArrayBuffer互转
  8. “AI+”农业向农民致敬-丰收节交易会:谋定工业反哺农业
  9. IBM informix .net provider
  10. 1090 危险品装箱 (25 分)