nagios的自动事务处理测试.doc_第1页
nagios的自动事务处理测试.doc_第2页
nagios的自动事务处理测试.doc_第3页
nagios的自动事务处理测试.doc_第4页
nagios的自动事务处理测试.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

今天对nagios的自动事务处理做了测试,过程很艰辛。不过还好最后搞定了。现在分享一下:一、客户端的配置A、编写自动事务处理的脚本,此处测试的是httpd进程。也就是检测到http进程不在了会触发自动重启服务脚本。脚本名称:http_handler,存放路径:/usr/local/nagios/libexec/http_handler脚本属性:脚本内容:#!/bin/sh# eventhander to restart httpddate=date#test the script #echo $date /tmp/mylog#echo $1,$2,$3 /tmp/mylogcase $1 inOK) ;WARNING) ;UNKNOWN) ;CRITICAL) case $2 in SOFT) case $3 in 3) #echo -en Restarting httpd service (3rd soft critical state).n echo OK- httpd had restart! #for test use /tmp/mylog for print the info for script run! /usr/bin/sudo /etc/init.d/httpd restart /dev/null 2 &1 # /usr/bin/sudo /etc/init.d/httpd restart /tmp/mylog 2&1 echo $date - restart BLAH - SOFT /tmp/eventhandlers ; esac ; HARD) case $3 in 1) echo ok-httpd had restart! #echo -en Restarting httpd service.n # Call the init script to restart the NRPE server echo $date - restart BLAH - HARD /tmp/eventhandlers #for test use /tmp/mylog for print the info for script run! /usr/bin/sudo /etc/init.d/httpd restart /dev/null 2 &1 # /usr/bin/sudo /etc/init.d/httpd restart /tmp/mylog 2&1 ; esac ; esac ;esacexit 0脚本说明:此脚本接受服务器端发送来的event_handler命令,带有三个参数,分别是:$SERVICESTATE$ 检测服务的状态,有“ok”,“Warning”,“Unknow” ,“CRITICAL”$SERVICESTATETYPE$ 检测是软还是硬 也就是“SOFT”、“HARD”$SERVICEATTEMPT$ 检测的次数以上脚本的意思是:1、检测http服务处于CRITICAL SOFT 3 (http服务不可用、轻微、3次)会触发脚本重启httpd服务。2、检测http服务处于CRITICAL HARD 1(http服务不可用、严重、1次)触发脚本重启httpd服务。脚本要运行需要配置/etc/sudoers,也就是将nagios用户加入其中,同时屏蔽掉 Defaults requiretty加入 nagios ALL=(root) NOPASSWD: ALL以便nagios可以有重启httpd的权限。脚本创建后最好使用nagios执行以下脚本,脚本的测试执行命令是:/usr/local/nagios/libexec/http_handler CRITICAL HARD 1如果脚本可以正常重启httpd进程就表示成功了B、配置nrpe测试中发现我的nrpe不支持参数传递,因此会看到/var/log/message中有如下报错:Nov 14 16:12:48 domino nrpe31021: Client request was invalid, bailing out.Nov 14 16:13:02 domino nrpe31027: Error: Request contained command arguments!解决此问题需要做两步:1、就是需要重新编译nrpe:remotehost# tar xvfz nrpe-2.12.tar.gzremotehost# cd nrpe-2.12remotehost# ./configure -enable-command-args这个是开启支持nrpe参数的命令remotehost# make allremotehost# make install-pluginremotehost# make install-daemonremotehost# make install-daemon-config2、修改配置文件nrpe.confdont_blame_nrpe=1#这个要改成1,就是开启支持命令传递参数。好像默认是不开启也就是0.应该是处于安全考虑3、为增加的handler增加命令定义commandrestart_http=/usr/local/nagios/libexec/http_handler $ARG1$ $ARG2$ $ARG3$4、最后一定要记得重启nrpe,否则配置的设置不能生效。半天也找不出问题二、服务器端配置1、检查nagios.conf配置检查nagios.conf配置文件中是否开启enable_event_handlers,配置完成后如下:enable_event_handlers=12、配置command.conf增加event_handler的触发命令在这里暂且定义为:check_http_remote#check_http_remote event handlerdefine command command_name check_remote_http command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c restart_http -a $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ 命令中使用check_nrpe调用客户端上的restart_http命令。这个restart_http我们已经在客户端配置好了。传递参数已经要在参数前加上 “-a”,我测试过程中就在这里费了好久的时间不知道哪里的问题。运行命令后总是报错:NRPE: Unable to read output。加上“-a“好使了。在写这个命令之前,可以自己先测试一下:/usr/local/nagios/libexec/check_nrpe -H 客户端ip -c restart_http -a CRITICAL HARD 1。可以看到最后的三个参数使我们手动赋值的,就是传递给客户端让他能触发重启httpd。3、给指定的主机的http监控配置event_handler命令。样例:define service use generic-service host_name nagios_test_server_linux service_description HTTP max_check_attempts 4 check_command check_http!-u/index.html notifications_enabled 1 event_handler check_remote_http 4、利用nagios的检查程序先检查一下是否有问题。/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.conf执行没有报错后,重启nagios/etc/init.d/nagios restart5、停止客户端的httpd服务,然后测试是否

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论