zabbixでリモートコマンドが動作しない

memcachedをウェブサーバの内部キャッシュとして使用しています。こいつあまり安定性がよろしくなくて、時々おちるんです。
そこで、zabbixで動作をチェックして、死んだときには叩き起こすことにしました。

トリガ、アクションを設定して動作しているmemcachedをkillすると、アクションで設定したメール送信は実施されるが、/etc/init.d/memcachedが動作していない。

zabbixエージェントがリモートコマンドを実行できないのかな

zabbix_agent.confでリモートコマンド実施は有効になってる。

EnableRemoteCommands=1

問題なし。

sudoが悪いのかな

アクション中のリモートコマンドは以下の用に設定。

{HOSTNAME}:sudo -u root /etc/init.d/memcached

当該ホストでzabbixで以下を実施。問題ないみたい。

$ sudo -u root /etc/init.d/memcached

標準エラーになにか出てないかな?

アクションを以下に設定。

{HOSTNAME}:sudo -r root /etc/init.d/memcached > /tmp/memcached.log 2>&1

うーん、なにも出てこない。

/etc/init.d/memcachedが悪いのかな

/etc/init.d/memcachedを使わないでmemcachedを起動してみよう。
当該ホストで以下を実施。

$ sudo -r root /usr/local/bin/memcached -u root
libevent-1.4.so.2 がないとかなんとか

おう、共有ライブラリが見えないのか。上の標準エラーでなにか出てほしかったなぁ。/etc/init.d/memcachedperlスクリプトだったのでなにも出てこなかったんでしょうか。
ということで/usr/libへリンクをはって解決。
crontabとかsudoっとかttyを使わないスクリプトはこういうことがよくあるから注意がいります。