如何编写 Nagios 插件
2013-05-27 18:11
316 查看
Nagios 插件可以由自己编写,就不用在网上找了,具体工作过程如下:
Nagios 的最激动人心的方面是可以轻松地编写您自己的插件,只需要了解一些简单的指导原则即可。为了管理插件,Nagios 每次在查询一个服务的状态时,产生一个子进程,并且它使用来自该命令的输出和退出代码来确定具体的状态。退出状态代码的含义如下所示:
OK ―退出代码 0―表示服务正常地工作。
WARNING ―退出代码 1―表示服务处于警告状态。
CRITICAL ―退出代码 2―表示服务处于危险状态。
UNKNOWN ―退出代码 3―表示服务处于未知状态。
最后一种状态通常表示该插件无法确定服务的状态。例如,可能出现了内部错误。
下面提供了一个 Python 示例脚本,用于检查 UNIX® 平均负载。它假定 2.0 以上的级别表示警告状态,而 5.0 以上的级别表示危险状态。这些值都采用了硬编码的方式,并且始终使用最近一分钟的平均负载。
清单 5. Python 插件―示例工作插件
在编写了这个小的可执行插件之后,接下来是使用 Nagios 注册该插件,并创建一个检查平均负载的服务定义。
这项工作也是非常简单的:使用下面的内容创建一个名为 /etc/nagios-plugins/config/mygetloadavg.cfg 的文件,根据下面的示例,向 services.cfg 文件添加一个服务。请记住,必须在 hosts.cfg 配置文件中定义 localhost。
清单 6. 示例插件―使用 Nagios 进行注册
清单 7. 创建一个使用示例插件的服务
通过阅读文章,你只要按上面步骤一步一步来,就能为自己的 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 做几个有用插件!
相关文章推荐
- 如何编写 Nagios 插件
- 如何编写nagios插件
- 如何编写nagios插件--示例
- 如何编写 Nagios 插件 (http://zener.blog.51cto.com/937811/727685)
- 如何编写 Nagios 插件
- 如何编写javascript的gulp插件
- 如何编写一个gulp插件
- 如何编写一个gulp插件
- Qt中如何 编写插件 加载插件 卸载插件
- MySQL:如何编写Audit Plugin审计插件
- 如何编写一个gulp插件
- 如何编写NopCommerce插件(一)建立一个MVC的项目
- 如何编写Maven插件
- 如何编写一个使用Store更新复选框的CheckboxGroup的插件
- nagios自写插件如何通过pnp4nagios绘图
- 如何编写JQuery 插件详解
- 在Qt中如何编写插件,加载插件和卸载插件。
- 如何编写一个gulp插件
- 如何编写一个gulp插件
- 如何编写firefox插件