【发布时间】:2015-12-16 13:10:13
【问题描述】:
我正在使用 AS400 Nagios 插件来管理 AS400 服务器。对于一台服务器,我得到以下返回(异常):
java.lang.NumberFormatException: For input string: "01 % S"
全额回报:
Exception in thread "main" java.lang.NumberFormatException: For input string: "01 % S"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.<init>(Integer.java:677)
at check_as400.parseWrkSysSts(check_as400.java:1048)
at check_as400.parse(check_as400.java:626)
at check_as400.main(check_as400.java:470)
命令:
./check_as400 -H xxx.xxx.xxx.xxx -v JOBS -w 21000 -c 23000
我已经在 Nagios 交流论坛中找到了类似的问题和解决方案,但没有访问权限或了解有关 AS400 的信息,我不知道该怎么做:
https://exchange.nagios.org/directory/Plugins/Hardware/Server-Hardware/IBM/Check_as400/details(见业主回复)。
知道如何解决这个问题吗?
提前谢谢你
编辑:使用 -d 选项的附加输出
Establishing connection to server...done.
Logging in...
waiting for screen...
waiting for token IBM CORP...
token received.
sending login information for QPGMR...
waiting for login to process...
waiting for token ===>...
responding to allocated to another job message...
token received.
Login completed.
Sending command (0)...
waiting for token ===>...
token received.
Command sent.
Parsing results...
Exception in thread "main" java.lang.NumberFormatException: For input st ring: "01 % S"
at java.lang.NumberFormatException.forInputString(NumberFormatEx ception.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.<init>(Integer.java:677)
at check_as400.parseWrkSysSts(check_as400.java:1048)
at check_as400.parse(check_as400.java:626)
at check_as400.main(check_as400.java:470)
【问题讨论】:
-
你能把你的命令编辑成 ./check_as400 -d -H xxx.xxx.xxx.xxx -v JOBS -w 21000 -c 23000 (注意 -d,这会输出到底发生了什么您的连接)
-
你可以使用大写的 D 吗?这将提供完整的输出,包括 check_as400 执行的屏幕抓取。可能也值得管道输出: ./check_as400 -H xxx.xxx.xxx.xxx -D -v JOBS -w 21000 -c 23000 > as400.log
-
并且显然掩盖了日志中的任何个人内容:)
-
我通过“D”选项发现了错误 - 脚本 greps 屏幕输出并对其进行解析,并尝试使用 grep 为一定数量的“:”-signs 查找值(请参阅 findToken功能)。问题是旧版本有附加的“:”所以结果是另一个位置,然后是预期的位置。客户尝试更新系统 (
-
你可以修改它正在计数的“:”的数量,在文件 check_as400.java 的第 811 行你会看到“start=findToken(buffer,":",11)+1 ;" - 将 11 更改为您需要的值并重新编译 java 代码(我认为使用 javac)它会正确 grep。
标签: java exception ibm-midrange nagios network-monitoring