我正在尝试在我们的 Nagios 环境中实施 NetApp 监控。当我运行命令时
perl /usr/local/nagios/libexec/check_netapp_ontap.pl -n <IP_ADDRESS> -u sysrb7 -p <password>
我明白了
Failed test query: NaServer::parse_xml - Error in parsing xml:
syntax error at line 1, column 49, byte 49:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
================================================^
<html><head>
<title>404 Not Found</title>
at /usr/lib64/perl5/XML/Parser.pm line 187
知道解析器不喜欢什么吗?尽管我是 Linux 管理员,但我不会说流利的 Perl。任何帮助都将非常有用。
答案1
此错误似乎表明它不喜欢它正在解析的文档第 1 行行尾附近的引号,并且它似乎正在将其解析为 XML。文档是 XML 吗?尝试使用 wget 或 curl 手动获取它以查看正在检索的内容。
根据您的帖子,您确实访问了一个不存在的页面 ( 404 Not Found
),并且响应是 HTML。这不是脚本所期望的。
如果您不知道 URL,请检查 check_netapp_ontap.pl。
您可以转到 /usr/lib64/perl5/XML/Parser.pm 的第 187 行,查看 perl 脚本究竟想做什么。这是您系统上的 XML 模块,实际上不是 netapp 脚本的一部分。
调试(尽管可能没有必要):
您可以使用 调试 perl 脚本perl -d script.pl
。调试器启动后,您可以执行各种操作,或者继续n
逐行执行。
资源:
https://stackoverflow.com/questions/8923266/how-to-run-through-a-perl-program-step-by-step http://www.thegeekstuff.com/2010/05/perl-debugger/