首页 男生 其他 跟老男孩学Linux运维:Web集群实战

14.8.2 编写Nagios插件的规则

  您可以在百度里搜索“跟老男孩学Linux运维:Web集群实战 艾草文学(www.321553.xyz)”查找最新章节!

  

  14.8.2 编写Nagios插件的规则

  1.编写Nagios插件说明

  Nagios插件是Nagios提供的一种通过可扩展的方式部署的程序组件,该插件可通过Shell、Java、CC++、PHP等多种语言开发,运维或系统架构人员只要通过修改Nagios配置文件和相应参数,就能很方便地将该插件集成到Nagios中,实现对目标系统的监控。

  Nagios服务为插件程序提供了两个返回值接口和插件交互:一个是插件执行后的退出状态码,另一个是插件执行过程中在控制台打印的第一行数据。退出状态码可以被Nagios主程序作为判断被监控系统服务状态的依据,控制台打印的第一行数据可以被Nagios主程序作为被监控系统服务状态的补充说明,会显示在Web管理页面里,图14-30中方框为显示的内容。

  图14-30 Nagios界面报警显示的内容

  为了管理Nagios插件,Nagios每查询一个服务的状态时,就会产生一个子进程,并使用来自该命令的输出和退出代码来确定其具体的状态。Nagios主程序可识别的插件的推出状态码和说明如下:

  ·OK:退出代码,0表示服务工作正常。

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

  ·CRITICAL:退出代码,2表示服务处于紧急,严重状态。

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

  注意:此处数字代码的含义曾经有公司面试时考过。

  最后一种状态通常表示该插件无法确定服务的状态。例如,可能出现了网络或内部错误。相关状态可以从如下文件中看到:

  [root@nagios-server libexec]# head -7 utils.sh #! /bin/shSTATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 STATE_UNKNOWN=3STATE_DEPENDENT=4

  提示:结尾处比前文列举的还多了个状态,但不常用。

  2.Nagios插件开发原理

  Nagios插件程序中需要调用监控服务规定的操作序列,并根据预先定义的规则,对返回结果进行分析,判断服务的当前状态,然后以指定的状态码退出程序,同时将对该状态的说明不换行输出到控制台。

  不同语言的系统退出函数的示例如下:

  Java System.exit(int status) php exit(status) pythonsys.exit(int status) c/c++ return int status bash exit intstatus

  不同语言的控制台打印函数的示例如下:

  Java System.out.println(String msg) php echo msg python printmsg c/c++ printf("%s",msg) bash echo msg(printf)

  3.Nagios插件开发语言

  Nagios的插件开发不限制任何开发语言,只要该插件能被Nagios调用,并获取到相应业务数据就OK,如能在命令行执行输出结果也可以,常用的插件语言有Shell、Perl、Python、PHP、C/C++。 跟老男孩学Linux运维:Web集群实战

目录
设置
手机
书架
书页
评论