今日、nut
をUbuntuサーバー(Ubuntu 14.04 LTS)にインストールしました。
$ uname -a
Linux boson 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
UPSは別のサーバー(neutronと呼ばれる)に接続されているので、nut-client
を使用してUPSの状態を監視します。
Sudo upsc [email protected]
を実行すると、次のメッセージが表示されます。
Init SSL without certificate database
battery.charge: 15
battery.charge.low: 10
battery.charge.warning: 50
battery.date: not set
battery.mfr.date: 2012/11/27
:
出力の最初の行は私に関するものです。 Debianベースのサーバー上のnut
の他のインストールでは、これを見たことはありません。
その行を削除するにはどうすればよいですか?
編集:この「証明書データベースなしのSSLの初期化」は、upsc
の出力の一部ではなく、したがってgrep
を出力できないため、非常に面倒です。
EDIT(2):明確にするために、 (Synology)サーバー(UPSと直接通信する)がSSLまたは証明書でセットアップされていない。ネットワーク上の他の(Debian/Raspbian)クライアントには、上記の問題はありません。 SSL証明書がインストールされていません(私が知る限り)。
サーバーまたはクライアントのfind / |grep cert_db
は結果を生成しません。
問題は2.7.1で追加されたnutの新しいNSSバックエンドが原因です( 2.6.5から2.7.1への変更 )。クライアントは最初にSTARTTLSコマンドでtcp/3943に接続しようとし、upsdからERR FEATURE-NOT-CONFIGUREDを取得するため、その警告が表示されます。
この変更の理由は、パスワードを平文でネットワーク経由で送信し、それを防ぐために開発者がSSL証明書サポートを追加したことです。結局のところ、クライアントはうるさいです。
エラーメッセージは実際にはクライアントからですが、エラー出力(stderr)からのものであるため、grepで除外できません。
問題を解決する最も簡単な方法は、適切にパイプすることです。
upsc [email protected] 2>&1 | grep -v '^Init SSL'
または、出力の一部だけを使用している場合など。 RRDグラフでcron出力にゴミが入っていた場合は、2>&1を追加するだけで、通常の行になります。
upsc [email protected] 2>&1 | grep 'battery.charge:' | awk ...
これを修正するそれほど簡単ではない方法は、 9。NUTの保護に関する注意| SSLの構成| NSSバックエンドの使用法 で説明されているように、SSL証明書とその他のものを実際に構成することです。
(私のような他の人がGoogle経由でアクセスする場合)
適切な出力リダイレクトを実行して、警告メッセージを除外します。
upsc [email protected] > /dev/stdout 2> /dev/null
証明書データベースの場所を強調し、クライアントが使用する証明書と(公開)キーに関連付けられた秘密キーを解読するためのパスワードをupsd.confを編集して伝える必要があります。