设为首页 收藏本站
查看: 1610|回复: 0

Nagios的进程监控及eventhandler之实战

[复制链接]

尚未签到

发表于 2015-9-8 09:14:57 | 显示全部楼层 |阅读模式
  Nagios自身是不带任何功能的,要实现监控功能,我们必须安装插件(plugins),幸好,现在只要安装一个通用的plugin,就能实现大部分的
  监控功能。
以下是安装plugin的步骤,一般在正常安装的时候都已经装上了。
wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.7.tar.gz
cd ~/downloads
tar xzf nagios-plugins-1.4.7.tar.gz
cd nagios-plugins-1.4.7
./configure –with-nagios-user=nagios –with-nagios-group=nagios
make
make install
  这时候在/usr/local/nagios/下就会出现一个libexec文件夹,有很多自带的功能程序。我们自定义的功能,也可以放在这个文件夹下面。
较常用的有chekc_http,check_disk,等等,如果我们想了解其用法,可以用./check_http -h的命令。
这一次我要实现的功能,是监控某个进程是否还存在,如果不存在了,就执行某个shell,使之启动。在此处,要用到check_procs和
  eventhandler,与eventhandler例子中的检查apache的状态略有不同,故记录下来,与有需要的朋友分享。
  首先,因为check_procs要去检查进程,所以我们要给他root的权限。
chown root check_procs
chmod 555 check_procs
接下来运行:
./check_procs
(应该显示为: PROCS OK: XX processes)
我用ps aux|grep cypress,查找我想监控的进程,里面带有/usr/local/cypressTemp/javasdk/bin/java
  再用./check_procs -h查看check_procs的用法。以下是几个sampler。
Examples:
check_procs -w 2:2 -c 2:1024 -C portsentry
  Warning if not two processes with command name portsentry.
  Critical if < 2 or > 1024 processes
  check_procs -w 10 -a &#8216;/usr/local/bin/perl&#8217; -u root
  Warning alert if > 10 processes with command arguments containing
  &#8216;/usr/local/bin/perl&#8217; and owned by root
  check_procs -w 50000 -c 100000 &#8211;metric=VSZ
  Alert if vsz of any processes over 50K or 100K
  check_procs -w 10 -c 20 &#8211;metric=CPU
  Alert if cpu of any processes over 10%% or 20%%
  根据以上的sampler,我就能写出service和command了。
define service{
        host_name               localhost
        service_description     check-cypress
        check_command           check_cypress
        event_handler       restart-cypress
        max_check_attempts      4
        normal_check_interval   3
        retry_check_interval    2
        check_period            24&#215;7
       }
define command{
        command_name    check_cypress
        command_line    $USER1$/check_procs -c 1:1 -a &#8216;/usr/local/cypressTemp/javasdk/bin/java&#8217;
        }
check_procs -c 1:1 -a &#8216;/usr/local/cypressTemp/javasdk/bin/java&#8217;的意思为:如果进程中没有一条包
  含&#8217;/usr/local/cypressTemp/javasdk/bin/java&#8217;,则状态为critical(c)。
因为我们还需要对这个做出动作,所以要用到eventhandler。
define command{
    command_name    restart-cypress
    command_line    /usr/local/nagios/libexec/eventhandlers/restart-cypress  $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$
    }
然后去/usr/local/nagios/libexec/eventhandlers/ 编辑restart-cypress 文件,如下:
  #!/bin/sh
#
# Event handler script for restarting the cypress server on the local machine
#
#
  # What state is the search service in?
/usr/bin/printf "We enter" >> /usr/local/nagios/var/Cypress.log
yourdate=`date   +%Y%m%d%H%M%S`
case "$1" in
OK)
         
    # The service just came back up, so don&#8217;t do anything&#8230;
    /usr/bin/printf "check OK $yourdate \n" >> /usr/local/nagios/var/Cypress.log
    ;;   
CRITICAL)
    # Aha!  The cypress service appears to have a problem &#8211; perhaps we should restart the server&#8230;
    /usr/bin/printf " The cypress service appears to have a problem $yourdate \n " >> /usr/local/nagios/var/Cypress.log
    /usr/local/cypressTemp/runsearch.sh
    ;;
esac
exit 0
  以上的shell文件很简单,就是运行一个已经写好的shell脚本。这个例子很简单,如果学习过www.nagios.org上的eventhandler例子后,会非
  常容易理解,我把完整的过程写出来,只是想提供一个实际的例子给各位朋友参考。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-110883-1-1.html 上篇帖子: RHEL 5.5 安装 Nagios 3.2.3 下篇帖子: nagios二次开发(五)---nagios和nagiosql的关系
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表