如何编写 nagios 插件 nagios 的最激动人心的方面是可以轻松地编写您自己的插件,只需要了解一些简单的指导原则即可。为了管理插件,nagios 每次在查询一个服务的状态时,产生一个子进程,并且它使用来自该命令的输出和退出代码来确定具体的状态。退出状态代码的含义如下所示: ok —退出代码 0—表示服务正常地工作。 warning —退出代码 1—表示服务处于警告状态。 critical —退出代码 2—表示服务处于危险状态。 unknown —退出代码 3—表示服务处于未知状态。 最后一种状态通常表示该插件无法确定服务的状态。例如,可能出现了内部错误。 下面提供了一个 python 示例脚本,用于检查 unix® 平均负载。它假定 2.0 以上的级别表示警告状态,而 5.0 以上的级别表示危险状态。这些值都采用了硬编码的方式,并且始终使用最近一分钟的平均负载。 python 插件—示例工作插件 在编写了这个小的可执行插件之后,接下来是使用 nagios 注册该插件,并创建一个检查平均负载的服务定义。 这项工作也是非常简单的:使用下面的内容创建一个名为 /etc/nagios-plugins/config/mygetloadavg.cfg 的文件,根据下面的示例,向 services.cfg 文件添加一个服务。请记住,必须在 hosts.cfg 配置文件中定义 localhost。 示例插件—使用 nagios 进行注册 创建一个使用示例插件的服务 编写一个完整的插件 前面的示例说明了一个采用“硬编码”方式插件的限制,它不支持运行时配置。在实际中,通常最好的方式是创建一个可配置的插件。通过这种方式,您可以创建和维护一个插件,使用 nagios 将其注册为单个插件,并且传递参数以便为特定的情况自定义警告和危险水平。下一个示例还包括一则使用消息;经过证实,对于由几个不同的开发人员或者管理员所使用或维护的插件,这是非常有价值的。 另一个好的实践是捕获所有的异常,并后退以报告 unknown 服务状态,以便 nagios 能够正确地管理有关这个情况的通知。那些允许异常“失败”的插件通常会退出,并返回值 1;对于 nagios,这表示一个 warning 状态。请确保您的插件能够正确地区分 warning 和 unknown。请注意,例如,在将其作为 unknown 结果处理可能出现错误的情况下,通常可以禁用至少某些 warning 通知。 用 python 编写一个插件 上述的建议—运行时参数化、一则使用消息,以及经过改进的异常处理—将得到示例插件的源代码,这段代码要比前面的长几倍。但是您可以更安全地对错误进行处理,并且能够在更广泛的范围内重用该插件。 python 插件—获取平均负载的完整插件 为了使用这个新的插件,需要使用下面的方法来注册 /etc/nagios-plugins/config/mygetloadavg2.cfg: python 插件—使用 nagios 进行注册 另外,根据下面的示例,在 services.cfg 文件中添加或者更改服务条目。请注意,使用感叹号 ! 来分隔插件参数。与前面一样,必须在 hosts.cfg 配置文件中定义 localhost。 创建一个使用 python 插件的服务
1 2 下一页>> 内容导航 第 1 页:python插件的示例工作 第 2 页:使用tcl 编写一个插件
原文:如何编写nagios插件(1) 返回操作系统首页 (责任编辑:admin) |