如何编写 Nagios 插件
Nagios 插件可以由自己编写,就不用在网上找了,具体工作过程如下:
Nagios 的最激动人心的方面是可以轻松地编写您自己的插件,只需要了解一些简单的指导原则即可。为了管理插件,Nagios 每次在查询一个服务的状态时,产生一个子进程,并且它使用来自该命令的输出和退出代码来确定具体的状态。退出状态代码的含义如下所示:
OK —退出代码 0—表示服务正常地工作。
WARNING —退出代码 1—表示服务处于警告状态。
CRITICAL —退出代码 2—表示服务处于危险状态。
UNKNOWN —退出代码 3—表示服务处于未知状态。
最后一种状态通常表示该插件无法确定服务的状态。例如,可能出现了内部错误。
下面提供了一个 Python 示例脚本,用于检查 UNIX® 平均负载。它假定 2.0 以上的级别表示警告状态,而 5.0 以上的级别表示危险状态。这些值都采用了硬编码的方式,并且始终使用最近一分钟的平均负载。
清单 5. Python 插件—示例工作插件
#!/usr/bin/env python
import os,sys
(d1, d2, d3) = os.getloadavg()
if d1 >= 5.0:
print "GETLOADAVG CRITICAL: Load average is %.2f" % (d1)
sys.exit(2)
elif d1 >= 2.0:
print "GETLOADAVG WARNING: Load average is %.2f" % (d1)
sys.exit(1)
else:
print "GETLOADAVG OK: Load average is %.2f" % (d1)
sys.exit(0)
在编写了这个小的可执行插件之后,接下来是使用 Nagios 注册该插件,并创建一个检查平均负载的服务定义。
这项工作也是非常简单的:使用下面的内容创建一个名为 /etc/nagios-plugins/config/mygetloadavg.cfg 的文件,根据下面的示例,向 services.cfg 文件添加一个服务。请记住,必须在 hosts.cfg 配置文件中定义 localhost。
清单 6. 示例插件—使用 Nagios 进行注册
define command{
command_name check_mygetloadavg
command_line /path/to/check_getloadavg
}
清单 7. 创建一个使用示例插件的服务
define service{
use service-template
host_name localhost
service_description LoadAverage
check_period 24x7
contact_groups server-admins
notification_options c,r
check_command check_mygetloadavg
}
通过阅读文章,你只要按上面步骤一步一步来,就能为自己的 Nagios 做几个有用插件!
转载于:https://blog.51cto.com/fccwcom/1211467
如何编写 Nagios 插件相关推荐
- 如何编写 Nagios 插件 (http://zener.blog.51cto.com/937811/727685)
如何编写 Nagios 插件 Nagios 的最激动人心的方面是可以轻松地编写您自己的插件,只需要了解一些简单的指导原则即可.为了管理插件,Nagios 每次在查询一个服务的状态时,产生一个子进程,并 ...
- 使用Qt编写模块化插件式应用程序
动态链接库技术使软件工程师们兽血沸腾,它使得应用系统(程序)可以以二进制模块的形式灵活地组建起来.比起源码级别的模块化,二进制级别的模块划分使得各模块更加独立,各模块可以分别编译和链接,模块的升级不会 ...
- 分享一个监控MFS的nagios插件
最近线上刚好有监控MFS服务器的需求,本来准备自己完全写一个nagios插件出来的,但是又懒不想写就搜了一下,还真有网友分享出来了.他的连接地址是:http://blog.csdn.net/liuyu ...
- skywalking原理_Skywalking系列博客6手把手教你编写 Skywalking 插件
点击上方 IT牧场 ,选择 置顶或者星标技术干货每日送达! 前置知识 在正式进入编写环节之前,建议先花一点时间了解下javaagent(这是JDK 5引入的一个玩意儿,最好了解下其工作原理):另外,S ...
- 编写OD插件将IDA中分析出来的函数名导入到OD中
逆向程序的时候,喜欢用IDA静态分析,用OD动态调试,如果把IDA分析出来的函数名称都导入到OD中,调试的时候就知道哪些函数不需要再看了.以前我一直用GODUP的map loader,但是有些时候感觉 ...
- 使用Lua编写whireshark插件
whireshark支持Lua.C.C++编写的插件 在这里,我简单介绍如何使用Lua编写whireshark插件. 一.插件的存放位置 whireshark插件分为个人插件和全局插件,在window ...
- 自己编写jQuery插件之表单验证
自己编写jQuery插件之表单验证 吐个嘈先:最近状态不咋滴,真是什么都不想干,不想上班,做什么都没动力,觉得没意思.不想这样,不想这样,快让这种情绪消失吧,忽忽.... 表单验证在项目中用的还是比较 ...
- maven插件编写_编写Maven插件的提示
maven插件编写 最近,我花了很多时间为Maven编写插件或在其中工作. 它们简单,有趣且有趣. 我以为我会分享一些技巧,使编写它们时的生活更轻松. 提示1:将任务与Mojo分开 最初,您将把moj ...
- 编写Maven插件的提示
最近,我花了很多时间来编写或为Maven开发插件. 它们简单,有趣且有趣. 我以为我会分享一些技巧,使他们在编写时变得更轻松. 提示1:将任务与Mojo分开 最初,您将把mojo的所有代码放入mojo ...
最新文章
- Spring MVC 基础注解之@RequestMapping、@Controller、(二)
- HDU - 2859 Phalanx(动态规划/哈希表)
- 利用小工具instsrv和srvany 创建windows服务
- mysql事务基础+基于innodb的行锁+间隙锁+如何锁定行
- 智能客户端研究笔记(三)
- python asyncio_Python 中的异步编程:Asyncio
- Gulp新手入门教程
- mysql计算折纸_mysql数据库的创建和授权
- 自己动手实现STL 02:构造析构的基本工具construct()和destroy()(stl_construct.h)
- JavaScript创建页面节点
- 10米精度NPP净初级生产力数据/NDVI数据/植被类型数据/土地利用数据/降雨气温分布数据/太阳辐射分布数据
- 请教大家, 关于 $0118 号消息
- 2015年两化融合管理体系贯标试点企业
- linux如何从 命令行 将普通文件打印到 pdf
- 解决:Firefox添加xpi扩展组件提示“此附件组件无法安装,未通过验证”
- (四)keycloak 自定义用户(SPI)开发
- C#调用C++类库dll,无法找到函数入口(无法在“***.dll“中找到名为“***“的入口点)
- 止损的意义是什么?我们为何要止损这个操作?
- Maple希腊字母按键查表
- Bit、Byte、KB、MB(M)、GB(G)关系
热门文章
- 深蓝学院《从零开始手写VIO》作业三
- 【阿里云课程】神经网络:从生物学机制到全连接神经网络的局限性
- Lazada专业代运营服务商,手把手教你从0到1做好跨境电商
- 全球及中国卸妆条行业发展规模与营销前景分析报告2022版
- 安全中间件与应用服务间如用session
- 用户自定义类型(User-defined Type)参数的传递
- html5 文件转byte[],JS 文件base64、File、Blob、ArrayBuffer互转
- “AI+”农业向农民致敬-丰收节交易会:谋定工业反哺农业
- IBM informix .net provider
- 1090 危险品装箱 (25 分)