手动编译安装LAMP架构,并且实现nagios图形化监控(十二)

十一、Nagios插件的开发与整合

         本来LAMP+Nagios架构已经写完,但是觉得还是有些内容没有写完整,心里一直纠结啊。确实,关于nagios还有最重要的一点,手动开发插件,这样对于以后的生产使用会是事半功倍的。所以我觉得还是要把插件开发的相关内容好好研究一下,可能不能精通,但是至少也要入门。最近今天比较忙,所以也就没来得及补充。这两天在学cacti进阶课程,本想先把cacti总结整理以后再写Nagios,但是不想文章标题中坚被打断,强烈的完美主义。所以,先留个标题,我把cacti总结好以后再来写这个。

这里使用了“写代码的小孩——nagios插件开发demo版”的开发脚本为示例

  1. #!/bin/bash  
  2. STATE_OK=0  
  3. STATE_WARNING=1  
  4. STATE_CRITICAL=2  
  5. STATE_UNKNOWN=3  
  6. TOTAL=`/bin/netstat -n | awk '/^tcp/ {++S[$NF]}END {for(a in S) print a, S[a]}' 
  7. |grep "ESTABLISHED" | awk '{print$NF}'`  
  8. if [ $TOTAL -lt 100 ];then  
  9.     echo "TEST OK : The established status id $TOTAL"  
  10.     exit $STATE_OK  
  11. elif [ $TOTAL -gt 100 -a $total -lt 200];then  
  12.     echo "TEST WARNING : The established status id $TOTAL"  
  13.     exit $STATE_WARNING  
  14. elif [ $TOTAL -gt 201 ];then  
  15.     echo "TEST CRITICAL : The established status id $TOTAL"  
  16.     exit $STATE_CRITICAL  
  17. else  
  18.     echo "UNKNOWN STATE"  
  19.     exit $STATE_UNKNOWN  
  20. fi  

STATE_OK=0、STATE_WARNING=1、STATE_CRITICAL=2、STATE_UNKNOWN=3这是nagios能识别的四种状态码。
每种状态定义了显示在监控页面的不同颜色,以及是否发送警告信息等。因此Nagios的插件,必须要首先定义这四
种状态, 且在脚本进行判断中,必须使用exit返回相应状态值。而在exit上面的这句一般是用来显示当前状态信息,
不能太大,默认是4K。
比如我下面就是使用这个脚本来进行本地的连接测试,如下图:


Nagios插件开发的语法其实就是这么简单,难点还是在于脚本的开发上,如何能实现脚本的健壮性、稳定性等特点,就是长期积累的结果了。
另外还有一点需要注意:
脚本在开发完成之后,可能有些是需要root权限才能正常执行的,而我们又不想nagios的执行用户拥有root权限,因此可以使用sudo命令,当然这里必须使用sudo的 免密码特征,而且只给固定的执行某条命令(例如:smartctl)的权限,即只有在执行该条命令的时候是以root身份执行的,且不需要输入执行用户密码来实现用户切换,需要在visudo中修改一行,如下:

nagios  ALL=(ALL)       NOPASSWD:/usr/sbin/smartctl -H /dev/sda (这比网上的好多教程,直接把第三段改成ALL安全多了)

这样就保证了执行该条语句的时候,只要这样写就可以了:$ sudo smartctl -H /dev/sda
如果执行其他命令,则会提示:Sorry, user nagios is not allowed to execute '/usr/sbin/smartctl -H /dev/sdb' as root on centos3.

大概能想到的只有这么多了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值