`
guoyunsky
  • 浏览: 863972 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
3d3a22a0-f00f-3227-8d03-d2bbe672af75
Heritrix源码分析
浏览量:208129
Group-logo
SQL的MapReduce...
浏览量:0
社区版块
存档分类
最新评论

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程序:

package com.guoyun.study.shell;

public class ShellJavaAnt {
    public static final int OK=0;
    public static final int WARNING=1;
    public static final int CRITICAL=2;
    public static final int UNKNOWN=3;

    /**
     * @param args
     */
    public static void main(String[] args) {
        if(args.length==0){
            System.out.println("CRITICAL");
            System.exit(CRITICAL);
        }else if(args.length==1){
            System.out.println("WARNING");
            System.exit(WARNING);
        }else if(args.length==2){
            System.out.println("UNKNOW");
        }else if(args.length>2){
            System.out.println("OK");
            System.exit(OK);
        }
    }

}

    修改代码后,通过ant package打包.得到该程序的目录,如这里是$PROJECT_HOME

 

  2.配置Nagios

     配置文件一般在你的$NAGIOS_HOME/etc/objects下.默认安装的话一般在/usr/local/nagios/etc/objects.

     我们这里需要修改commands.cfg和localhost.cfg

     commands.cfg是注册我们要执行的命令,这里还需将可执行的命令/插件放入$NAGISO_HOME/libexec目录下,否则会报,Return code of 127 is out of bounds - plugin may be missing 之类的错误,意思就是没有注册插件.

   1)注册插件,新建shell文件:check_nagios_java_test,放到$NAGISO_HOME/libexec目录下.内容如下:

#!/bin/bash
#

/home/guoyun/workspace/shell-run-java-by-ant/dist/shell-run-java-by-ant-0.1/bin/shell-java-ant "a" "b" "c"

   /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 command{
	command_name	check_nagios_java_test
	command_line	$USER1$/check_nagios_java_test
	}

   3)在localhost.cfg文件中注册service,添加如下内容:

define service{
	use			local-service
	host_name		localhost	
	service_description	monitor java_test
	check_command		check_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来发送请求.正在尝试中...

 

更多技术文章、感悟、分享、勾搭,请用微信扫描:

0
0
分享到:
评论

相关推荐

    目录监控 监控文件夹

    综上,目录监控是IT运维中不可或缺的一部分,通过有效的监控文件夹,我们可以更好地保障系统安全,提升运维效率,同时也能为问题解决提供重要线索。在实际应用中,选择合适的工具和方法,结合业务需求,定制化的目录...

    MonitorAgent

    - **监控脚本/程序**:执行监控任务的代码,可能包括Python、Shell、Java等语言编写的脚本。 - **配置文件**:设定监控频率、报警阈值、目标服务器等相关参数。 - **日志文件**:记录监控过程中的事件和错误信息,...

    tomcat监护程序

    在IT行业中,Tomcat是一个广泛使用的开源应用服务器,主要用于运行Java Servlet和JavaServer Pages(JSP)应用程序。Tomcat监护程序是一种系统工具,其主要功能是监控Tomcat服务器的运行状态,确保它能够持续稳定地...

    快捷运维,代号kjyw,项目基于shell、python,运维脚本工具库,收集各类运维常用工具脚本,实现快速安装经常使用的脚本

    Nagios监控系统** Nagios是一款开源的网络监控系统,用于监测网络服务、主机状态以及系统性能。kjyw的脚本可能包含Nagios的安装和基本配置,确保能够实时监控服务器的关键指标,及时发现并报警问题。 总的来说,...

    自动检测Tomcat是否正常运行.zip

    这可以是通过邮件、短信或者集成到其他IT监控工具(如Nagios、Zabbix)进行告警。 6. **性能优化**: - 除了基本的运行状况检查,高级的监控可能还会涉及到性能指标,如CPU使用率、内存占用、线程状态等。这些数据...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    由国内著名技术社区联合推荐的2012年IT技术力作:《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》,即将上架发行,此书从Web应用、数据备份与恢复、网络存储应用、运维监控与性能优化、集群高级应用等...

    上海Linux运维工程师-面试题-个人总结).docx

    针对w3wp进程CPU占用过高,可以通过查看IIS应用程序池、性能监控、日志分析等手段定位问题Web站点,然后进一步检查代码效率、资源泄漏或其他可能导致高CPU占用的原因。 【沪江理解】 沪江是一家知名的在线教育平台...

    上海Linux运维工程师-面试题-个人总结).pdf

    24. **Cacti与Nagios的区别**:Cacti侧重于图形化监控,Nagios侧重于服务状态报警。 25. **MySQL主从复制**:通过binlog、change master命令实现数据同步,提高数据冗余和容灾能力。 26. **RAID级别对比**:RAID 0...

Global site tag (gtag.js) - Google Analytics