Nagios监控/报警Java程序(一) 通过Shell监控/报警
? ? ? ?Nagios监控/预警Java程序网上资料貌似不多,只能自己一步步尝试.经过今天一天的尝试,终于搞定.这里贴出来跟大家分享,希望抛砖引玉!
? ? ? ?这里需要两个步骤,一个是安装好Naigos,我之前博客有说明:http://guoyunsky.iteye.com/blog/1399330?,以及生成Java程序并且Shell可执行:http://guoyunsky.iteye.com/blog/1401757.
? ?1.Java程序
? ? ? ?由于Nagios规定了四种状态,所以我这里需要修改一下Java程序.四种状态分别为:
- OK?—退出代码 0—表示服务正常地工作。
- WARNING?—退出代码 1—表示服务处于警告状态。
- CRITICAL?—退出代码 2—表示服务处于危险状态。
- UNKNOWN?—退出代码 3—表示服务处于未知状态.
? ? ? 修改后的Java程序:
? ?/home/guoyun/workspace/shell-run-java-by-ant/dist/shell-run-java-by-ant-0.1是我通过ant package生成的
Java程序具体你根据你的路径更改,然后我这里传入三个参数a,b,c.按照之前Java里代码的话,Nagios应该报警OK,并且返回OK(输出是OK).
? ?2)在commands.cfg注册该命令,添加如下内容:
define service{uselocal-servicehost_namelocalhostservice_descriptionmonitor java_testcheck_commandcheck_nagios_java_test}
?
? 4)以上修改完成后,程序部署完成.先通过命令验证配置文件是否正确:
? ?/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
?
? 5)重启Nagios
? ? ?sudo /etc/init.d/nagios restart
? 6)最后通过浏览器进入http://localhost/nagios中查看Services,就可以看到java_test.同时Status是OK,Status Information是OK.或者你可以修改shell-java-ant这个shell文件中的参数,来观察Nagios中java_test状态是否变化.
? ?以上只能针对localhost,也就是Java程序要和Nagios在同一台机器.如果Java程序和Nagios不在同一台机器,不知道是否可以通过SSH远程执行shell脚本执行.具体待下一次测试.不过可以在Java程序中建立Socket,通过TCP来发送请求.正在尝试中...