Zabbixサーバーから要求されたリモートコマンドは、各監視対象のホストで実行されているZabbixエージェントプログラムによって実行されます。
このとき、デフォルトの状態ではZabbixエージェントはユーザ"zabbix"の権限で動作しているため、root権限が必要なコマンド実行するとパーミッションエラーとなり、コマンドの実行に失敗します。 これを避けるためには、実行するコマンドをsudoを使って実行すれば良いのですが、その場合、sudoに切り替えるパスワードの指定をどのように行うかの検討が必要になります。 本資料では、/etc/sudoers ファイルにおいて、zabbixから受け付けるコマンドを NOPASSWORDとして実行するようにしています。
この場合、実行するリモートコマンド数とホスト数分の設定が必要となり運用面のコストが増大する可能性が高くなります。
専任の運用管理者が維持できないような場合には、sudoを使わずにzabbixからのリモートコマンドが実行できた方が良いかも知れません。 それには、監視対象のホストで実行されている"zabbix_agentd"をroot権限で実行させるのが近道です。
"zabbix_agentd"をroot権限で実行させるには、/etc/zabbix/zabbix_agentd.confに次の変更を加えます。
(/etc/zabbix/zabbix_agentd.conf)
# This is config file for zabbix_agentd
# in case the agent is started standalone from init.d (not via inetd).
#
# To get more information about ZABBIX, go http://www.zabbix.com
############ GENERAL PARAMETERS #################
AllowRoot=1 # 1でユーザ"root"、0(または指定なし) とするとユーザ"zabbix"で実行される
# List of comma delimited IP addresses (or hostnames) of ZABBIX servers.
# No spaces allowed. First entry is used for sending active checks.
# Note that hostnames must resolve hostname->IP address and
# IP address->hostname.
# Server=localhost
Server=192.168.100.155
::
::