2014年第一篇哦,nagios插件开发demo版

2014年元旦,,下班回来,洗涮完毕,床上一躺,腿一盘,笔记本一放,开搞,必须整明白nagios的很多方面的东西。昨晚搞定安装配置,报警等东西,今天搞定了自定义添加服务用的是nagios已有的插件check_mysql,接下来是自定义插件,扯淡完毕,开搞~~~

nagios自带了一些监控服务,但是有的时候因为业务或者是特殊的需求,需要自己去写,下面是我写的一个demo,不断的google,百度去搜索去学习,基本弄明白了,然后就是怎么写出牛逼的监控脚本了,以后要多逼迫自己写python的而不是shell的

首先,看看nagios自定义脚本的样式:

[root@Git ~]# cd /usr/lib/nagios/plugins/check_breezecheck_file_agecheck_ircdcheck_mysql_query check_nwstatcheck_simapcheck_upscheck_by_sshcheck_flexlmcheck_jabbercheck_nagioscheck_oraclecheck_smtpcheck_userscheck_clamdcheck_fpingcheck_ldapcheck_nntpcheck_overcrcheck_snmpcheck_wavecheck_clustercheck_ftpcheck_ldapscheck_nntpscheck_pgsqlcheck_spopeventhandlers/check_dhcpcheck_gamecheck_loadcheck_nrpecheck_pingcheck_sshnegatecheck_digcheck_hpjdcheck_logcheck_ntcheck_popcheck_ssmtpnetstat.shcheck_diskcheck_httpcheck_mailqcheck_ntpcheck_procscheck_swapurlizecheck_disk_smbcheck_icmpcheck_mrtgcheck_ntp_peercheck_realcheck_tcputils.pmcheck_dnscheck_ide_smart check_mrtgtrafcheck_ntp.plcheck_rpccheck_timeutils.shcheck_dummycheck_imapcheck_mysqlcheck_ntp_timecheck_sensorscheck_udp[root@Git ~]# cd /usr/lib/nagios/plugins/目录下有个utils.sh的脚本,这就是一个nagios自带的简单的demo,netstat.sh是我写的一个demo

声明nagios的stat value

#! /bin/shSTATE_OK=0STATE_WARNING=1STATE_CRITICAL=2STATE_UNKNOWN=3STATE_DEPENDENT=4然后就是普通的脚本了,需要在退出的时候,exit 相应的value

一个监控连接的脚本

#!/bin/bashpath=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHSTATE_OK=0STATE_WARNING=1STATE_CRITICAL=2STATE_UNKNOWN=3total=`netstat -n | awk ‘/^tcp/ {++S[$NF]}END {for(a in S) print a, S[a]}’ |grep "ESTABLISHED" | awk ‘{print$NF}’`if [ $total -lt 100 ];thenecho "TEST OK : The established status id $total"exit $STATE_OKelif [ $total -gt 100 -a $total -lt 200];thenecho "TEST WARNING : The established status id $total"exit $STATE_WARNINGelif [ $total -gt 201 ];thenecho "TEST CRITICAL : The established status id $total"exit $STATE_CRITICALelseecho "UNKNOWN STATE"exit $STATE_UNKNOWNfinetstat.sh (END) 很简单的一个测试脚本。

写完了之后放到和各种check_XXXX的东西在一起,名字自定义,我就用的原始脚本的名字

接下来是如何使用,其实这个使用和上一篇文章的check_mysql的使用是一样的,还是在墨迹的写一次吧

1.添加到commands.cfg里面

[root@Git objects]# lltotal 44-rw-rw-r– 1 root root 7982 Jan 1 00:33 commands.cfg-rw-rw-r– 1 root root 2275 Dec 31 18:40 contacts.cfgdrwxr-xr-x 2 root root 4096 Jan 1 00:34 hosts-rw-rw-r– 1 root root 3124 Aug 31 06:28 printer.cfg-rw-rw-r– 1 root root 3293 Aug 31 06:28 switch.cfg-rw-rw-r– 1 root root 11247 Dec 31 22:44 templates.cfg-rw-rw-r– 1 root root 3208 Aug 31 06:28 timeperiods.cfg-rw-rw-r– 1 root root 4019 Aug 31 06:28 windows.cfg[root@Git objects]# vim commands.cfg 添加到文件的最后:#check netstatdefine command{command_name netstat_checkcommand_line $USER1$/netstat.sh}"commands.cfg" 252L, 7982C command_name自定义,别重复

command就是如何使用这条命令

2.使用命令

[root@Git objects]# cd hosts/[root@Git hosts]# lltotal 20-rw-r–r– 1 root root 5212 Jan 1 00:34 front.cfg-rw-r–r– 1 root root 143 Dec 30 22:37 group.cfg-rw-r–r– 1 root root 5403 Dec 30 21:49 localhost.cfg[root@Git hosts]#front.cfg 和localhost.cfg对应的是两台机器

修改front.cfg作为测试吧

define service{uselocal-servicehost_nameFront1.Webserverservice_descriptionnetstat_checkcheck_commandnetstat_check}"front.cfg" 153L, 5212C 在最后添加一个service,名字要和command.cfg里面的相符合

然后 重启nagios服务,这时候在nagios管理界面会看到相应的服务,但是显示的是pending,等一会就好了

这样一个简单的netstat插件写好了。真的很简单啊。

特别补充:

1.自定义的监控脚本放在server机器的plugin下面

2.默认的监控方式主动的监控

3.脚本必须chmod a+x sh 可执行————————————————————————————————————————————————————-

添加一个新的被监控节点

1.首先子节点安装nrpe-cient

[root@Front2 nagios]# yum install nagios-plugins-nrpe.i686 nrpe.i686 2.修改nrpe.cfg

allowed_hosts=192.168.74.1433.nagios-server,添加一个clientc.cfg

和其他的一样,cp一份已经存在的

把下面对应的修改掉就可以了host_nameFront2.WebserveraliasFront2.Webserveraddress192.168.74.128然后重启nagios,这样就添加上了

人生伟业的建立 ,不在能知,乃在能行。

2014年第一篇哦,nagios插件开发demo版

相关文章:

你感兴趣的文章:

标签云: