リモートコマンド実行
お世話になってます、広瀬です。
SQLで異常が発生した場合、リモートコマンド機能で登録したシェルを実行させようとしていますが、うまく行かず悩んでおります。
以下が、エラー時のログです。
4628:20110405:143618.331 Processing request.
4628:20110405:143618.332 Requested [system.run["sudo /root/failover.sh","nowait"]]
4628:20110405:143618.332 Sending back [ZBX_NOTSUPPORTED]
4629:20110405:143619.036 In send_buffer() host:'172.18.205.8' port:10051 values:0/100
実行結果の失敗内容がZBX_NOTSUPPORTEDだけでしか無く、原因がつかめません。
当該サーバのエージェントにはEnableRemoteCommandsは有効にしてあるので、以下の様にログに出る事を確認しています。
6337:20110405:144432.453 cfg: para: [EnableRemoteCommnads] val [1]
当然ですが、visudoも許可済み(UserParameterでsudoが必要なパラメータは問題無く動いているので)です。
動かそうとしているシェル自体のパーミッションなども色々と変えては見ましたが変化がありません。
上記のような状態で他に何か確認すべき点はあるか、ご教授頂ければ幸いです。
※ZABBIXのVerは1.8.4です。
TNK - 投稿数: 4769
/var/log/secureなどにsudo関連のエラーログはでていませんでしたか?
wakaba - 投稿数: 228
広瀬です。
はい。/var/log/配下のログで確認すべきだろうと思われるものには一通り目は通しました(secure含む)。
UserParameterに設定していたものに関しての出力は確かにありますが、Failしているのは設定直後の1回のみ(sudo設定忘れていたのが原因)で、それ以降は出ていません。
今回設定したリモートアクションの実行に関して言えば、zabbix-agentd.log以外に出力されている形跡はありませんでした。
kodai - 投稿数: 1341
まずはUserParameterに記載したコマンドが、該当サーバ上のコマンドラインから動作するかどうかを確認してみてください。(すでに確認されているかもしれませんが)
方法としては、
- /etc/passwdを修正し、zabbixユーザのログインシェルを/bin/shに変更
- rootアカウントからsu - zabbix
- UserParameterのコマンドをsudo付きで実行し、実行できるかを確認
これで実行できる場合は、/etc/sudoersの"Defaults requiretty"の行がコメントアウトされているかを確認してみてください。