このBash NRPEプラグインがNagiosに変数を返さないのはなぜですか?

このBash NRPEプラグインがNagiosに変数を返さないのはなぜですか?

ここにローカルでうまく動作するスクリプトがあります。

#! /bin/bash
volts=`sudo vcgencmd measure_volts core|sed 's/volt=\([0-9\.]*\)V/\1/'`
echo -n "BCM2835 SoC Voltage is ${volts}V "
echo "| volts=$volts;1.5;1.5;0;1.5"

ただし、Nagiosがその情報を取得しようとすると、変数が定義されていないように、「BCM2835 SoC電圧はVです」のみが得られます。

ファイルから情報を抽出して作業できる他のプラグインもあります。そのため、情報を一時ファイルに書き込んで変数に書き戻すことができました。

#! /bin/bash
sudo vcgencmd measure_volts core|sed 's/volt=\([0-9\.]*\)V/\1/'>/tmp/volts
volts=$(</tmp/volts)
echo -n "BCM2835 SoC Voltage is ${volts}V "
echo "| volts=$volts;1.5;1.5;0;1.5"

これでNagiosの価値がわかりますが、なぜこれはリモートではなくローカルでのみ機能するのですか?一時ファイルなしで作成できますか?

ベストアンサー1

Nagiosを実行しているユーザーには、通常のsudoアカウントと同じ権限が必要です。次のコマンドを使用して、sudoユーザーがどの権限を持っているかを確認できます。

 $ su - nagios -c "sudo -l"
Matching Defaults entries for nagios on this host:
    requiretty, !visiblepw, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS MAIL PS1 PS2 QTDIR USERNAME LANG
    LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME
    LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", !requiretty

User nagios may run the following commands on this host:
    (root) NOPASSWD: /etc/init.d/nagios* restart
    (root) NOPASSWD: /etc/init.d/nagios restart
    (root) NOPASSWD: /etc/init.d/nagios* reload
    (root) NOPASSWD: /etc/init.d/nagios reload
    (root) NOPASSWD: /usr/bin/nagios* -v *
    (root) NOPASSWD: /usr/bin/nagios -v *
    (root) NOPASSWD: /usr/bin/nagios* -s *
    (root) NOPASSWD: /usr/bin/nagios -s *
    (root) NOPASSWD: /etc/init.d/snmptrapd restart
    (root) NOPASSWD: /etc/init.d/centstorage restart
    (root) NOPASSWD: /etc/init.d/centstorage stop
    (root) NOPASSWD: /etc/init.d/centstorage start

Nagiosがsudovoltsコマンドを実行する権限を持っていると仮定すると、Nagiosがコマンドを実行でき、パスワードを必要としないようにvcgencmd measure_voltssudo権限が上記と似ていることを確認する必要があります()。ファイルは次のようにする必要があります。rootNOPASSWD/etc/sudoers

nagios   ALL = NOPASSWD: /path/to/vcgencmd measure_volts core

おすすめ記事