Nagios 插件手动运行,自动运行时返回错误

Nagios 插件手动运行,自动运行时返回错误

为了监控 Mailman 邮件列表,我将 check_mailman_qfiles 插件添加到 Icinga 主机。

仅使用主机名作为参数,插件在手动运行时就可以正常工作:

user@icinga:~$ /usr/lib/nagios/plugins/check_mailman_qfiles mail.example.com 

all normal

但是,当作为 Icinga 的一部分定期运行时,该插件会抱怨它无法统计“存档”,即 qfiles 目录中的第一个文件:

Notification Type: PROBLEM
Service: Mailman
Host: example.com mail server
Address: 10.1.2.3
State: UNKNOWN
Date/Time: Fri Jun 26 16:09:16 PDT 2015

Additional Info:
**ePN /usr/lib/nagios/plugins/check_mailman_qfiles: Cant stat /usr/local/mailman/qfiles/archive: No such file or directory

最初我以为这是因为我从 shell 运行了 manual 命令,而 nagios 用户的 shell 是 /bin/false。但我尝试使用 bash 运行 nagios(暂时),命令以 nagios 用户身份正常运行。

还有什么原因会导致插件自动运行时失败?

我已将 mailman 命令、服务和主机组定义以及插件的链接粘贴在下面。

另外,这是针对在 Debian wheezy 上运行的 Icinga 1.7.1-7。谢谢!

命令定义,来自 /etc/icinga/commands.cfg:

define command{
    command_name    check_mailman_qfiles
    command_line    $USER1$/check_mailman_qfiles $ARG1$
    }

服务定义,来自 /etc/icinga/objects/services_icinga.cfg:

define service{
    service_description     Mailman
    use                     generic-service
    hostgroup_name          mailman-servers
    is_volatile             0
    check_period            24x7
    max_check_attempts      3
    normal_check_interval   3
    retry_check_interval    1
    contact_groups          admins
    notification_interval   120
    notification_period     24x7
    notification_options    w,u,c,r
    check_command           check_mailman_qfiles
    }

主机组定义,来自 /etc/icinga/objects/hostgroups_icinga.cfg:

define hostgroup{
    hostgroup_name  mailman-servers ; The name of the hostgroup
    alias           Mailman servers ; Long name of the group
    members         mail.example.com
}

插件位于https://exchange.nagios.org/directory/Plugins/Email-and-Groupware/Mailman/check_mailman_qfiles/details

答案1

您的问题是嵌入式 perl 解释器 (ePN = 嵌入式 perl nagios)。该插件可能不是 (显然不是) ePN 安全的。

全局禁用它(因为它有严重的内存泄漏),或者根据文档仅针对该脚本禁用它

此外,您的检查命令应该check_mailman_qfiles!mail.example.com与您的手动测试相匹配。

相关内容