web-dev-qa-db-ja.com

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

当初、これはシェルから手動コマンドを実行したためだと思っていましたが、nagiosユーザーはシェルとして/ bin/falseを使用しています。しかし、私はnagiosにbashを(一時的に)使用しようとしましたが、コマンドはnagiosユーザーとして正常に実行されます。

自動的に実行されたときにプラグインが失敗する原因は他に何ですか?

Mailmanコマンド、サービス、ホストグループの定義、およびプラグインへのリンクを下に貼り付けました。

また、これはDebianwheezyで実行されているIcinga1.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
user8162

あなたの問題は、埋め込まれたPerlインタープリターです(ePN =埋め込まれたPerlnagios)。そのプラグインは(明らかにそうではない)ePNセーフではないかもしれません。

グローバルに無効にする(メモリリークがひどいため)、または ドキュメントに従ってそのスクリプトに対してのみ無効にする

また、手動テストと一致させるには、チェックコマンドをcheck_mailman_qfiles!mail.example.comにする必要があります。

2
Keith