Ubuntu Linuxサーバー(Amazon EC2上)で何かを監視するためのmuninのプラグインを書いています。プラグインでは、Sudo
を介してプログラム/usr/sbin/rabbitmqctl
を実行する必要があります。
/etc/sudoers
に次の行があります。
munin ALL = NOPASSWD: /usr/sbin/rabbitmqctl list_queues
ご覧のとおり、munin
ユーザー(スクリプトを実行するユーザー)は、パスワードなしでSudo経由でコマンド/usr/sbin/rabbitmqctl list_queues
を実行できます。 Sudo -u munin -s
で動作することを確認し、実行しています。
ただし、muninログ(/var/log/munin/munin-node.log
)には、次のようなプラグインの出力がたくさんあります。
2013/06/28-11:35:26 [28107] Sudo: no tty present and no askpass program specified
そして、グラフにはデータがありません。
/etc/sudoers
ファイルの最後に、これがあります。これは、一般的に解決策として提案されています。
Defaults !requiretty
しかし、それはそれを修正しません。 「/ etc/sudoersのその行のコメントを解除する」という一般的な提案は、そのファイルに何も含まれていないため、機能しません。
MuninプラグインがSudo
を介して何かを呼び出せるようにする方法はありますか?
更新№1:muninプラグインはサーバー上のmunin-nodeによって実行されます。これはmuninユーザーとして実行されます。すべてをrootとして実行するようにすべてのmuninを変更することはできません。
これは特定の質問に対する答えではありませんが、特定の問題に対する解決策です。
Sudo
を使用するのではなく、他のmuninプラグインが行うことを実行し、特定のプラグインを実行するユーザーをroot
にオーバーライドします。
詳細情報 ここ 。
このようなセクションを追加します、
[<plugin name>]
user <user>
group <group>
to munin-node
の中に plugin-conf.d
ディレクトリ(通常は/etc/munin
)。
Muninプラグインのいくつかはすでにrootとして実行されているため、muninを実行する準備ができている場合、これはすでに標準的な方法です。