web-dev-qa-db-ja.com

パッシブチェックがNSCAデーモンに送信された場合、コマンドファイル 'nagios.cmd#015'が存在しない問題

はじめに

Opsviewが再起動された場合、/ usr/local/nagios/etc/nsca.cfgがデフォルトの構成に置き換えられるため、/ etc/init.d/opsviewにあるこのファイルへの参照が/ usr/local/nagios /に変更されました。 etc /nsca_puppet.cfgおよび後者はPuppetERBテンプレートを使用してデプロイされます。

目的

目的は、nscaを使用してパッシブチェックをOpsviewに送信することです。

仮説は、実行することでした:

echo -e "Host\tService\t0\tRemote File does not exist" | \
Sudo /usr/local/nagios/bin/send_nsca -H Host -c \
/usr/local/nagios/etc/send_nsca.cfg

opsviewにある(パッシブ)チェックを更新します。

結果

/ var/log/messagesをテーリングすると、次のことがわかります。

Jan 24 14:27:37 Host nsca[X]: 
Handling the connection for <ip>...
Jan 24 14:27:37 Host nsca[X]: 
Command file '/usr/local/nagios/var/rw/nagios.cmd#015' 
does not exist, attempting to use alternate dump file 
'/dev/null' for output
Jan 24 14:27:37 Host nsca[X]: 
SERVICE CHECK -> Host Name: 'Host', Service Description: 
'Service', Return Code: '0', Output: 'Remote File does 
not exist' client <ip>
Jan 24 14:27:37 Host nsca[X]: End of connection for <ip>...

問題の解決を試みます

1)おそらく、nscaコマンドはnagiosユーザーとして発行する必要があります

Sudo -u nagios /usr/local/nagios/bin/send_nsca

問題を解決しません

2)ncsaは実行されますか?

はい

user@Host:~$ ps -ef | grep nsca
nagios   PID     1  0 13:38 ?        00:00:00 
/usr/local/nagios/bin/nsca -c 
/usr/local/nagios/etc/nsca.cfg --single

3)ローカルホストからncsaコマンドを送信することは機能しますか

いいえ、どちらも機能しません

4)不正な権限nagios.cmd?

大丈夫そうです

user@Host:~$ ls -ltr /usr/local/nagios/var/rw/
total 4
-rw-rw-r--. 1 nagios nagios 1321 Jan 23 22:13 config_output.last_okay
srw-rw----. 1 nagios nagcmd    0 Jan 24 13:38 nagios.qh
prw-rw----. 1 nagios nagcmd    0 Jan 24 13:38 nagios.cmd
srw-rw----. 1 nagios nagcmd    0 Jan 24 13:38 opsviewd.cmd

5)nscaを使用して他のチェックを送信してからパッシブチェックをOpsviewに送信することは機能しますか

この問題は、あらゆる種類のチェックで発生します

6)nagios.cmd#015 does not exist...? nagios.cmdが設定されましたか?か否か?

はい、これは正しいです

7)このバージョンのNSCAに関連するバグ?

user@Host:~$ Sudo /usr/local/nagios/bin/nsca --version

NSCA - Nagios Service Check Acceptor
Copyright (c) 2000-2007 Ethan Galstad (www.nagios.org)
Version: 2.7.2
Last Modified: 07-03-2007
License: GPL v2
Encryption Routines: AVAILABLE

インターネット上で問題が見つからなかったので、問題ないようです。

8)誰がnagios.cmdに書き込むことができますか?

ユーザーは次のように書くことはできません。

user@Host:~$ echo hello >> /usr/local/nagios/var/rw/nagios.cmd
-bash: /usr/local/nagios/var/rw/nagios.cmd: Permission denied

nagiosは:

user@Host:~$ Sudo su - nagios
nagios@Host:~$ echo hello >> /usr/local/nagios/var/rw/nagios.cmd
nagios@Host:~$

/ usr/local/nagios/etc/nsca.cfg

command_file=/usr/local/nagios/var/rw/nagios.cmd

質問

いくつかの質問をすることができますが、現時点では、これらはnagios.cmdに書き込まれていないため、チェックを処理できなかったと想定しています。

  1. #015はどこから来たのですか?
1
030

this Q&A によると、syslogの_#015_は_\r_に対応します。

この問題は、CRがPuppetERBテンプレートによって追加されたために発生しました。

次のコマンド の実行:

_Sudo sed -i 's/\r//' /usr/local/nagios/etc/nsca.cfg 
_

opsviewを再起動すると問題が解決しました。

PuppetのCRテンプレートerbの問題 を解決するには、content => regsubst(template("opsview/nsca.cfg.erb"), '\r', '', 'G'),を使用します。

0
030