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注册该命令,添加如下内容: