自定义脚本使nagios监控window的DNS服务

一.配置被监控端window:

在被监控的windows主机上,写一个简单的bat脚本,然后添加到nsclient++的配置文件里面.;

(1.编写的bat脚本内容如下:

wKioL1Mul6yx6gXuAADBwa2L77I976.jpg

(对于上图中bat脚本的解释:其中@表示放在命令的前面。可以用来关闭某个命令的回显。无论此时echo 是On还是Off都将生效。意思就是说将@放在哪个命令的前面那么此命令在执行的时候不显示回显执行的内容。具体的自己可以亲自编写试试)----*(对于命令中的if是用来做条件判断的,errorlevel相当于shell脚本的$?的作用。用来对命令的执行状态做判断默认为0即执行成功,1执行失败。goto语句用来结合:标记使用。上图脚本中的内容表示对ping后面的命令作判断如果为1则执行goto语句跳至:err执行,如果为0则跳至:ok执行还要注意的是exit 0和exit 1是为了匹配nagios的状态exit 0则表示nagios的状态为Ok,exit 1表示匹配waring状态)如果看了以上的解释还是不明白脚本内容的那么自己去看Bat脚本的编写吧!

(2.把以上脚本保存到nsclient++安装目录的Scripts子目录中,并命名为check_dns.bat,然后更改nsclient++的主配置文件NSC.ini,开户以下选项:

wKiom1MumDjRwdB-AAA5G8MHFGM398.jpg

(3.在NSC.ini文件中[External Scripts]下面添加如下行,注意是Excentrnal Scripts,不是Excentrnal Script,一个带s一个不带,不要放错了。-----(注意:此命令添加到此处不要添加错地方了不然可能nagios会报错UNKNOWN: No handler for that command)如下图所示:

wKiom1MvvvODBBuJAAC_pHXT7c8572.jpg


wKiom1MumHiAupZLAAAo6P9QbPg645.jpg

(添加此命令行的意思是为了使NSClient++可以识别自定义的bat脚本。)

(4.然后重启nsclient++服务,使用命令能看到有5666端口起,表示配置成功如下图所示:

wKioL1MumM6y13iBAABAkX3lPHQ455.jpg

注意:上述命令中的find "5666"的双引号一定要加上,否则就会报错如下图:

wKioL1MvjdHyGWwJAAA_uivxlkU135.jpg

二:配置nagios主控端(nagios服务器):

(1.编辑windows.cfg文件,并添加一个监控DNS的服务如下图所示:

wKioL1MumTKCHt_1AAB44J8dy-w582.jpg

(2.为了能监控成功,可以先测试一下能不能监控到被监控端的nrpe版本信息,运行以下命令:

wKiom1MumeWB7ZNhAABdCGjd750451.jpg

(3.如果运行以上命令,出现timeout,提示信息如下所示:

wKiom1MumjfQxTNNAABKO9sT4ZA903.jpg

可以检查一下到目标主机的端口是不是通的 telnet windows主机ip  5666,如果通的,可以加上-t参数,指定超时的时间,可以设置的长一些:

wKiom1Mump_QliLGAABiiVfbwzg157.jpg

如果指定超时时间为60s还不行,那就可能是网络问题了,端口不通或者防火墙没有开户5666端口。有些情况下,使用默认的时间10s可能会出现超时的情况。所以如果出现超时的话,我们可以改一下command.cfg文件再添加一个nrpe命令的定义,自己定义一个超时时间长一些的命令:wKioL1MumzeC3Dq8AAByPTDrOII846.jpg

(如果你使用这个超时时间长的Nrpe命令的话,那么也要同时修改windows.cfg文件将check_command命令后面的check_nrpe改为上图中定义的check_long_nrpe。)

然后再使用自己定义的这个命令去检测服务,应该就没什么问题了。

wKioL1Mum7bDCCaDAABSeC1Qqd8559.jpg

实验完毕。

下面是可能配置过程中出现的问题,其实这些都是可以忽略的。因为这些错误可能是因为超时时间太短了,所以失败。这些错误根本不会影响监控的运行。直接调长超时时间即可解决!

wKioL1MunLHiWCdKAAPhHuovaiA241.jpg


到此整个实验思路完毕。

本文出自 “Anna--linux之家” 博客,谢绝转载!

你可能感兴趣的:(监控windowDNS服务)