はじめに
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に書き込まれていないため、チェックを処理できなかったと想定しています。
#015
はどこから来たのですか?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'),
を使用します。