是什么原因导致这个插件失败?

是什么原因导致这个插件失败?

我正在尝试在我们的 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/

相关内容